<?xml version="1.0"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

       https://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->

<!--
This file is also used by the maven-changes-plugin to generate the release notes.
Useful ways of finding items to add to this file are:

1.  Add items when you fix a bug or add a feature (this makes the
release process easy :-).

2.  Do a JIRA search for tickets closed since the previous release.

3.  Use the report generated by the maven-changelog-plugin to see all
SVN commits. TBA how to use this with SVN.

To generate the release notes from this file:

mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=m.n]

The <action> type attribute can be add,update,fix,remove.
-->

<document xmlns="http://maven.apache.org/changes/2.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/changes/2.0.0 https://maven.apache.org/xsd/changes-2.0.0.xsd">
  <properties>
    <title>Apache Commons Codec Release Notes</title>
    <author>Apache Commons Developers</author>
  </properties>
  <body>
    <release version="1.22.0" date="YYYY-MM-DD" description="This is a feature and maintenance release. Java 8 or later is required.">
      <!-- FIX -->
      <action type="fix" dev="ggregory" due-to="Shalu Jha, Andrey, Gary Gregory" issue="CODEC-249">Fix Incorrect transform of CH digraph according Metaphone basic rules #423.</action>
      <action type="fix" dev="ggregory" due-to="DRUser123, Shalu Jha, Gary Gregory" issue="CODEC-317">ColognePhonetic can create duplicate consecutive codes in some cases.</action>
      <action type="fix" dev="ggregory" due-to="fancying, Gary Gregory">Add boundary tests for BinaryCodec.fromAscii partial-bit inputs #425.</action>
      <action type="fix" dev="ggregory" due-to="Partha Paul, Gary Gregory" issue="CODEC-336">Base64.Builder.setUrlSafe(boolean) Javadoc incorrectly states null is accepted for primitive boolean parameter.</action>
      <!-- ADD -->
      <action type="add" dev="ggregory" due-to="Inkeet, Gary Gregory, Wolff Bock von Wuelfingen" issue="CODEC-326">Add Base58 support.</action>
      <action type="add" dev="ggregory" due-to="Gary Gregory">Add BaseNCodecInputStream.AbstracBuilder.setByteArray(byte[]).</action>
      <action type="add" issue="CODEC-335" dev="pkarwasz" due-to="Piotr P. Karwasz, Gary Gregory">Add GitIdentifiers to compute Git blob and tree object identifiers.</action>
      <!-- UPDATE -->
      <action type="update" dev="ggregory" due-to="Gary Gregory">Bump org.apache.commons:commons-parent from 96 to 98.</action>
    </release>
    <release version="1.21.0" date="2026-01-23" description="This is a feature and maintenance release. Java 8 or later is required.">
      <!-- FIX -->
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Fix oak leaf icon references in overview.html when running `mvn clean javadoc:javadoc`.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Fix Apache RAT plugin console warnings.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Fix malformed Javadoc comments.</action>
      <!-- ADD -->
      <action type="add" dev="ggregory" due-to="Aleksandr Beliakov, Gary Gregory" issue="CODEC-333">Add distinct Base64 decoding for standard and URL-safe formats.</action>
      <!-- UPDATE -->
      <action type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">Bump org.apache.commons:commons-parent from 91 to 96 #415, #418.</action>
      <action type="update" dev="ggregory" due-to="Gary Gregory">Bump commons-io:commons-io from 2.20.0 to 2.21.0.</action>
      <action type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">Bump org.apache.commons:commons-lang3 from 3.19.0 to 3.20.0.</action>
    </release>
    <release version="1.20.0" date="2025-10-30" description="This is a feature and maintenance release. Java 8 or later is required.">
      <!-- FIX -->
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Deprecate all but one Base32 constructor in favor of the builder added in version 1.17.0.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Deprecate all but one Base64 constructor in favor of the builder added in version 1.17.0.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">BaseNCodecInputStream subclasses are now type-safe to match its matching BaseNCodec.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">BaseNCodecOutputStream subclasses are now type-safe to match its matching BaseNCodec.</action>
      <!-- ADD -->
      <action type="add" dev="ggregory" due-to="Fredrik Kjellberg, Gary Gregory">Add org.apache.commons.codec.digest.Crc16.</action>
      <action type="add" dev="ggregory" due-to="Gary Gregory">Add builders to org.apache.commons.codec.digest streams and deprecate some old constructors.</action>
      <action type="add" dev="ggregory" due-to="Gary Gregory">Add builder to Base16 streams and deprecate some old constructors.</action>
      <action type="add" dev="ggregory" due-to="Gary Gregory">Add support for SHAKE128-256 and SHAKE256-512 to `DigestUtils` and `MessageDigestAlgorithms` on Java 25 and up.</action>
      <action type="add" dev="ggregory" due-to="Gary Gregory">Add BaseNCodec.AbstractBuilder.setDecodeTable(byte[]) and refactor subclasses.</action>
      <!-- UPDATE -->
      <action type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">Bump org.apache.commons:commons-parent from 85 to 91.</action>
      <action type="update" dev="ggregory" due-to="Gary Gregory">[test] Bump org.apache.commons:commons-lang3 from 3.18.0 to 3.19.0.</action>
    </release>
    <release version="1.19.0" date="2025-07-19" description="This is a feature and maintenance release. Java 8 or later is required.">
      <!-- FIX -->
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Remove -nouses directive from maven-bundle-plugin. OSGi package imports now state 'uses' definitions for package imports, this doesn't affect JPMS (from org.apache.commons:commons-parent:80).</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Refactor DigestUtils.updateDigest(MessageDigest, File) to use NIO.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory" issue="CODEC-328" >Clarify Javadoc for org.apache.commons.codec.digest.UnixCrypt.crypt(byte[],String).</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Precompile regular expressions in DaitchMokotoffSoundex.Rule.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Precompile regular expressions in DaitchMokotoffSoundex.parseRules(Scanner, String, Map, Map).</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Precompile regular expressions in Lang.loadFromResource(String, Languages).</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Precompile regular expressions in PhoneticEngine.encode(String, LanguageSet).</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Precompile regular expressions in org.apache.commons.codec.language.bm.Rule.parse*(*).</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Remove redundant checks for whitespace in DaitchMokotoffSoundex.soundex(String, boolean).</action>
      <action type="fix" dev="ggregory" due-to="Sebastian Baunsgaard">Javadoc typo in Base16.java #380.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Deprecate unused constant org.apache.commons.codec.language.bm.Rule.ALL.</action>
      <action type="fix" dev="ggregory" issue="CODEC-331" due-to="IlikeCode, Gary Gregory">org.apache.commons.codec.language.bm.Rule.parsePhonemeExpr(String) adds duplicate empty phoneme when input ends with |.</action>
      <action type="fix" dev="ggregory" issue="CODEC-331" due-to="IlikeCode, Gary Gregory">org.apache.commons.codec.language.DaitchMokotoffSoundex.cleanup(String) does not remove special characters like punctuation.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Fix PMD multiple UnnecessaryFullyQualifiedName in org.apache.commons.codec.binary.StringUtils.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Fix PMD UnusedFormalParameter in private constructor in org.apache.commons.codec.binary.Base16.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Fix PMD multiple UnnecessaryFullyQualifiedName in org.apache.commons.codec.digest.Blake3.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Fix PMD UnnecessaryFullyQualifiedName in org.apache.commons.codec.digest.Md5Crypt.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Fix PMD EmptyControlStatement in org.apache.commons.codec.language.Metaphone.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Fix SpotBugs [ERROR] Medium: org.apache.commons.codec.binary.BaseNCodec$AbstractBuilder.setEncodeTable(byte[]) may expose internal representation by storing an externally mutable object into BaseNCodec$AbstractBuilder.encodeTable [org.apache.commons.codec.binary.BaseNCodec$AbstractBuilder] At BaseNCodec.java:[line 131] EI_EXPOSE_REP2.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">The method org.apache.commons.codec.binary.BaseNCodec.AbstractBuilder.setLineSeparator(byte...) now makes a defensive copy.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Avoid unnecessary String conversion in org.apache.commons.codec.language.bm.PhoneticEngine.applyFinalRules(PhonemeBuilder, Map).</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Fix SpotBugs [ERROR] High: Potentially dangerous use of non-short-circuit logic in org.apache.commons.codec.language.DaitchMokotoffSoundex.cleanup(String) [org.apache.commons.codec.language.DaitchMokotoffSoundex] At DaitchMokotoffSoundex.java:[line 350] NS_DANGEROUS_NON_SHORT_CIRCUIT.</action>
      <!-- ADD -->
      <action type="add" dev="ggregory" due-to="Gary Gregory">Add HmacUtils.hmac(Path).</action>      
      <action type="add" dev="ggregory" due-to="Gary Gregory">Add HmacUtils.hmacHex(Path).</action>      
      <action type="add" dev="ggregory" due-to="Gary Gregory">Add PMD check to the default Maven goal.</action>      
      <action type="add" dev="ggregory" due-to="Gary Gregory">Add SpotBugs check to the default Maven goal.</action>      
      <!-- UPDATE -->
      <action type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">Bump org.apache.commons:commons-parent from 79 to 85 #375.</action>
      <action type="update" dev="ggregory" due-to="Gary Gregory">[test] Bump commons-io:commons-io from 2.18.0 to 2.20.0.</action>
      <action type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">[test] Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0 #386.</action>
    </release>
    <release version="1.18.0" date="2025-01-24" description="This is a feature and maintenance release. Java 8 or later is required.">
      <!-- FIX -->
      <!-- ADD -->
      <action type="add" dev="ggregory" due-to="Gary Gregory, Julian Reschke">Add Base32.Builder.setHexDecodeTable(boolean).</action>
      <action type="add" dev="ggregory" due-to="Gary Gregory, Julian Reschke">Add Base32.Builder.setHexEncodeTable(boolean).</action>
      <!-- UPDATE -->
      <action type="update" dev="ggregory" due-to="Gary Gregory">Bump org.apache.commons:commons-parent from 78 to 79.</action>
    </release>
    <release version="1.17.2" date="2024-12-28" description="This is a feature and maintenance release. Java 8 or later is required.">
      <!-- FIX -->
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Rewrite DaitchMokotoffSoundex.soundex(String) using String.join().</action>
      <action type="fix" issue="CODEC-324" dev="ggregory" due-to="Michael Froh">Use Resource.class to load resources, rather than its class loader #353.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Deprecate CharSequenceUtils.CharSequenceUtils().</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Deprecate Sha2Crypt.Sha2Crypt().</action>
      <!-- ADD -->
      <!-- UPDATE -->
      <action type="update" dev="ggregory" due-to="Dependabot">Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0 #296, #305, #313.</action>
      <action type="update" dev="ggregory" due-to="Gary Gregory">Bump org.apache.commons:commons-parent from 71 to 78 #310, #312, #319, #323, #326, #333.</action>
      <action type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">[test] Bump commons-io:commons-io from 2.16.1 to 2.18.0 #318, #341.</action>
      <action type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">Bump org.codehaus.mojo:taglist-maven-plugin from 3.1.0 to 3.2.1 #332.</action> 
    </release>
    <release version="1.17.1" date="2024-07-12" description="Feature and fix release. Requires a minimum of Java 8.">
      <!-- FIX -->
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Md5Crypt now throws IllegalArgumentException on an invalid prefix.</action>
      <!-- ADD -->
      <!-- UPDATE -->
      <action type="update" dev="ggregory" due-to="Gary Gregory">Bump org.apache.commons:commons-parent from 69 to 71 #286.</action>
      <action               dev="ggregory" type="update" due-to="Dependabot">Bump org.codehaus.mojo:animal-sniffer-maven-plugin from 1.23 to 1.24 #293.</action> 
      <action               dev="ggregory" type="update" due-to="Dependabot">Bump org.codehaus.mojo:taglist-maven-plugin from 3.0.0 to 3.1.0 #292.</action> 
    </release>
    <release version="1.17.0" date="2024-04-20" description="Feature and fix release. Requires a minimum of Java 8.">
      <!-- FIX -->
      <action type="fix" issue="CODEC-320" dev="ggregory" due-to="Martin Frydl, Gary Gregory">Wrong output of DoubleMetaphone in 1.16.1.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Optimize memory allocation in PhoneticEngine.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">BCodec and QCodec encode() methods throw UnsupportedCharsetException instead of EncoderException.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Set Javadoc link to latest Java API LTS version.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Base32 constructor fails-fast with a NullPointerException if the custom alphabet array is null.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Base32 constructor makes a defensive copy of the line separator array.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Base64 constructor makes a defensive copy of the line separator array.</action>
      <action type="fix" dev="ggregory" due-to="Gary Gregory">Base64 constructor makes a defensive copy of a custom alphabet array.</action>
      <!-- ADD -->
      <action type="add" dev="ggregory" due-to="Gary Gregory">Add override org.apache.commons.codec.language.bm.Rule.PhonemeExpr.size().</action>
      <action type="add" dev="ggregory" due-to="Chris Kocel, Gary Gregory">Add support for Base64 custom alphabets #266.</action>
      <action type="add" dev="ggregory" due-to="Gary Gregory">Add Base64.Builder (allows custom alphabets).</action> 
      <action type="add" dev="ggregory" due-to="Gary Gregory">Add Base32.Builder (allows custom alphabets).</action>
      <action type="add" dev="ggregory" due-to="Gary Gregory">Add Base64 support for a custom padding byte (like Base32).</action> 
      <!-- UPDATE -->
      <action                   dev="ggregory" type="update" due-to="Dependabot, Gary Gregory">Bump org.apache.commons:commons-parent from 66 to 69 #250, #261.</action>
      <action                   dev="ggregory" type="update" due-to="Dependabot, Gary Gregory">Bump commons-io:commons-io from 2.15.1 to 2.16.1 #258, #265.</action>
    </release>
    <release version="1.16.1" date="2024-02-04" description="Feature and fix release. Requires a minimum of Java 8.">
      <!-- ADD -->
      <action type="add" dev="ggregory" due-to="Gary Gregory">Add Maven property project.build.outputTimestamp for build reproducibility.</action>
      <!-- FIX -->
      <action issue="CODEC-295" dev="ggregory" type="fix" due-to="Gary Gregory">Test clean ups.</action>
      <action                   dev="ggregory" type="fix" due-to="step-security-bot, Gary Gregory">[StepSecurity] ci: Harden GitHub Actions #187.</action>
      <action issue="CODEC-295" dev="ggregory" type="fix" due-to="Evan Saulpaugh">Correct error in Base64 Javadoc #188.</action>
      <action issue="CODEC-295" dev="ggregory" type="fix" due-to="Olivier Jaquemet, Gary Gregory">Add minimum Java version in changes.xml #186.</action>
      <action issue="CODEC-310" dev="ggregory" type="fix" due-to="Yakov Shafranovich">Documentation update for the org.apache.commons.codec.digest.* package #208.</action>
      <action                   dev="ggregory" type="fix" due-to="Gary Gregory">Precompile regular expression in UnixCrypt.crypt(byte[], String).</action>
      <action issue="CODEC-315" dev="ggregory" type="fix" due-to="Arthur Chan, Gary Gregory">Fix possible IndexOutOfBoundException in PhoneticEngine.encode method #223.</action>
      <action issue="CODEC-313" dev="ggregory" type="fix" due-to="Arthur Chan, Gary Gregory">Fix possible ArrayIndexOutOfBoundsException in QuotedPrintableCodec.encodeQuotedPrintable() method #221.</action>
      <action issue="CODEC-312" dev="ggregory" type="fix" due-to="Arthur Chan, Gary Gregory">Fix possible StringIndexOutOfBoundException in MatchRatingApproachEncoder.encode() method #220.</action>
      <action issue="CODEC-311" dev="ggregory" type="fix" due-to="Arthur Chan, Gary Gregory">Fix possible ArrayIndexOutOfBoundException in RefinedSoundex.getMappingCode() #219.</action>
      <action issue="CODEC-314" dev="ggregory" type="fix" due-to="Arthur Chan, Gary Gregory">Fix possible IndexOutOfBoundsException in PercentCodec.insertAlwaysEncodeChars() method #222.</action>
      <action                   dev="ggregory" type="fix" due-to="Gary Gregory">Deprecate UnixCrypt 0-argument constructor.</action>
      <action                   dev="ggregory" type="fix" due-to="Gary Gregory">Deprecate Md5Crypt 0-argument constructor.</action>
      <action                   dev="ggregory" type="fix" due-to="Gary Gregory">Deprecate Crypt 0-argument constructor.</action>
      <action                   dev="ggregory" type="fix" due-to="Gary Gregory">Deprecate StringUtils 0-argument constructor.</action>
      <action                   dev="ggregory" type="fix" due-to="Gary Gregory">Deprecate Resources 0-argument constructor.</action>
      <action                   dev="ggregory" type="fix" due-to="Gary Gregory">Deprecate Charsets 0-argument constructor.</action>
      <action                   dev="ggregory" type="fix" due-to="Gary Gregory">Deprecate CharEncoding 0-argument constructor.</action>
      <action                   dev="ggregory" type="fix" due-to="Gary Gregory">Add missing version for animal-sniffer-maven-plugin.</action>
      <!-- UPDATE -->
      <action                   dev="ggregory" type="update" due-to="Dependabot, Gary Gregory">Bump commons-parent from 58 to 66.</action>
      <action                   dev="ggregory" type="update" due-to="Gary Gregory">Bump commons-lang3 from 3.12.0 to 3.14.0.</action>      
      <action                   dev="ggregory" type="update" due-to="Gary Gregory">Bump commons-io from 2.13.0 to 2.15.1.</action>      
    </release>
    <release version="1.16.0" date="2023-06-17" description="Feature and fix release. Requires a minimum of Java 8.">
      <!-- FIX -->
      <action issue="CODEC-295" dev="ggregory" type="fix" due-to="Arturo Bernal">Minor improvements #67.</action> 
      <action                   dev="aherbert" type="fix" due-to="James Gan">Remove duplicated words from Javadocs.</action>
      <action issue="CODEC-301" dev="aherbert" type="fix" due-to="Alexander Pinske, Alex Herbert">Simplify assertion #84.</action>
      <action issue="CODEC-300" dev="ggregory" type="fix" due-to="Arturo Bernal">Simplify assertion #84.</action>
      <action issue="CODEC-298" dev="ggregory" type="fix" due-to="Arturo Bernal">Use Standard Charset object #82.</action>
      <action                   dev="ggregory" type="fix" due-to="Arturo Bernal">Use String.contains() functions #125.</action>
      <action                   dev="ggregory" type="fix" due-to="Arturo Bernal">Avoid use toString() or substring() in favor of a simplified expression #126.</action>
      <action issue="CODEC-305" dev="aherbert" type="fix" due-to="Florian">Fix byte-skipping in Base16 decoding #135.</action>
      <action                   dev="kinow" type="fix" due-to="Marc Wrobel">Fix several typos, improve writing in some javadocs #139.</action>
      <action                   dev="ggregory" type="fix" due-to="Gary Gregory">BaseNCodecOutputStream.eof() should not throw IOException.</action>
      <action                   dev="ggregory" type="fix" due-to="Gary Gregory">Javadoc improvements and cleanups.</action>
      <action                   dev="ggregory" type="fix" due-to="Gary Gregory">Deprecate BaseNCodec.isWhiteSpace(byte) and use Character.isWhitespace(int).</action>
      <!-- ADD -->
      <action issue="CODEC-296" dev="mattsicker" type="add" due-to="Matt Sicker">Add support for Blake3 family of hashes.</action>
      <action                   dev="ggregory" type="add">Add github/codeql-action.</action>
      <!-- UPDATE -->
      <action                   dev="ggregory" type="update" due-to="Dependabot, Gary Gregory">Bump actions/cache from v2 to v3.0.10 #75, #99, #119, #138, #149, #152.</action>
      <action                   dev="ggregory" type="update" due-to="Dependabot, Gary Gregory">Bump actions/setup-java from v1.4.1 to 3.5.1 #60, #62, #121.</action>
      <action                   dev="ggregory" type="update" due-to="Dependabot, Gary Gregory">Bump actions/checkout from 2.3.2 to 3.1.0 #65, #98, #114, #153.</action>
      <action                   dev="ggregory" type="update" due-to="Dependabot, Gary Gregory">Bump commons-parent from 52 to 58, #147, #165, #170.</action>
      <action issue="CODEC-285" dev="ggregory" type="update" due-to="Dependabot, John Patrick">Bump junit from 4.13.1 to 5.9.1 #76, #39, #140, #148.</action>
      <action                   dev="ggregory" type="update" due-to="Gary Gregory">Bump Java 7 to 8.</action>
      <action                   dev="ggregory" type="update" due-to="Gary Gregory">Bump japicmp-maven-plugin from 0.14.3 to 0.17.1.</action>
      <action                   dev="ggregory" type="update" due-to="Gary Gregory">Bump jacoco-maven-plugin from 0.8.5 to 0.8.8 (Fixes Java 15 builds).</action>
      <action                   dev="ggregory" type="update" due-to="Gary Gregory">Bump maven-surefire-plugin from 2.22.2 to 3.0.0-M7 #122, #134.</action>
      <action                   dev="ggregory" type="update" due-to="Gary Gregory">Bump maven-javadoc-plugin from 3.2.0 to 3.4.1.</action>
      <action                   dev="ggregory" type="update" due-to="Gary Gregory">Bump animal-sniffer-maven-plugin from 1.19 to 1.22.</action>
      <action                   dev="ggregory" type="update" due-to="Gary Gregory, Dependabot">Bump maven-pmd-plugin from 3.13.0 to 3.19.0, #133, #142, #145.</action>
      <action                   dev="ggregory" type="update" due-to="Gary Gregory">Bump pmd from 6.47.0 to 6.52.0.</action>
      <action                   dev="ggregory" type="update" due-to="Gary Gregory">Bump maven-checkstyle-plugin from 2.17 to 3.2.0 #143.</action>
      <action                   dev="kinow, ggregory" type="update" due-to="Dependabot">Bump checkstyle from 8.45.1 to 9.3 #97, #100, #101, #103.</action>
      <action                   dev="ggregory" type="update" due-to="Dependabot">Bump taglist-maven-plugin from 2.4 to 3.0.0 #102.</action>       
      <action                   dev="ggregory" type="update" due-to="Gary Gregory">Bump jacoco-maven-plugin from 0.8.7 to 0.8.8.</action>
    </release>

    <release version="1.15" date="2020-09-01" description="Feature and fix release.">
      <action issue="CODEC-264" dev="aherbert" due-to="Andy Seaborne" type="fix">MurmurHash3: Ensure hash128 maintains the sign extension bug.</action>
      <action issue="CODEC-280" dev="aherbert" type="update">Base32/Base64/BCodec: Added strict decoding property to control handling of trailing bits. Default lenient mode discards them without error. Strict mode raise an exception.</action>
      <action issue="CODEC-289" dev="aherbert" type="update">Base32/Base64 Input/OutputStream: Added strict decoding property to control handling of trailing bits. Default lenient mode discards them without error. Strict mode raise an exception.</action>
      <action                   dev="ggregory" type="update" due-to="Gary Gregory">Update tests from JUnit 4.12 to 4.13.</action>
      <action issue="CODEC-290" dev="aherbert" due-to="Adam Retter" type="add">Base16Codec and Base16Input/OutputStream.</action>
      <action issue="CODEC-291" dev="aherbert" due-to="Adam Retter" type="add">Hex encode/decode with existing arrays.</action>
      <action                   dev="ggregory" type="update" due-to="Dependabot">Update actions/checkout from v1 to v2.3.2 #50, #56.</action>
      <action                   dev="ggregory" type="update" due-to="Dependabot">Update actions/setup-java from v1.4.0 to v1.4.1 #57.</action>
    </release>

    <release version="1.14" date="2019-12-30" description="Feature and fix release.">
      <action issue="CODEC-261" dev="aherbert" type="fix">Hex: Allow encoding read-only ByteBuffer.</action>
      <action issue="CODEC-259" dev="aherbert" type="fix">Hex: Only use an available ByteBuffer backing array if the length equals the remaining byte count.</action>
      <action issue="CODEC-268" dev="aherbert" type="update">MurmurHash3: Deprecate hash64 methods and hash methods accepting a String that use the default encoding.</action>
      <action issue="CODEC-265" dev="aherbert" type="fix">BaseNCodec to expand buffer using overflow conscious code.</action>
      <action issue="CODEC-270" dev="aherbert" type="fix">Base32/64: Fixed decoding check that all the final trailing bits to discard are zero.</action>
      <action issue="CODEC-264" dev="aherbert" due-to="Claude Warren" type="add">Add MurmurHash3.hash128x64 methods to fix sign extension error during seeding in hash128 methods.</action>
      <action issue="CODEC-267" dev="aherbert" due-to="Claude Warren" type="add">Add MurmurHash3.hash32x86 methods and IncrementalHash32x86 to fix sign extension error in hash32 methods.</action>
      <action issue="CODEC-269" dev="aherbert" type="fix">Allow repeat calls to MurmurHash3.IncrementalHash32.end() to generate the same value.</action>
      <action issue="CODEC-272" dev="ggregory" type="add" due-to="Behrang, Alex Herbert, Gary Gregory">Add RandomAccessFile digest methods #31.</action>
      <action issue="CODEC-273" dev="ggregory" type="add" due-to="Gary Gregory">Add Path APIs to org.apache.commons.codec.digest.DigestUtils similar to File APIs.</action>
      <action issue="CODEC-274" dev="ggregory" type="add" due-to="Gary Gregory">Add SHA-512/224 and SHA-512/256 to DigestUtils for Java 9 and up.</action>
      <action issue="CODEC-275" dev="ggregory" type="add" due-to="Claude Warren">Add missing note in javadoc when sign extension error is present #34.</action>
      <action issue="CODEC-276" dev="ggregory" type="fix" due-to="Gary Gregory">Reliance on default encoding in MurmurHash2 and MurmurHash3.</action>
      <action issue="CODEC-277" dev="ggregory" type="update" due-to="Gary Gregory">Don't reload standard Charsets in org.apache.commons.codec.Charsets.</action>
      <action issue="CODEC-278" dev="ggregory" type="update" due-to="Gary Gregory">Deprecate Charset constants in org.apache.commons.codec.Charsets in favor of java.nio.charset.StandardCharsets.</action>
    </release>

    <release version="1.13" date="2019-07-20" description="Feature and fix release.">
      <action issue="CODEC-255" dev="sebb" due-to="Holger Grote" type="fix">ColognePhonetic handles x incorrectly</action>
      <action issue="CODEC-254" dev="sebb" due-to="Holger Grote" type="fix">ColognePhonetic does not treat the letter H correctly</action>
      <action issue="CODEC-134" dev="tmousaw-ptc" type="fix">Reject any decode request for a value that is impossible to encode to for Base32/Base64 rather than blindly decoding.</action>
      <action issue="CODEC-236" dev="melloware" due-to="Viliam Holub" type="add">MurmurHash2 for 32-bit or 64-bit value.</action>
      <action issue="CODEC-236" dev="melloware" due-to="Austin Appleby" type="add">MurmurHash3 for 32-bit or 128-bit value.</action>
      <action issue="CODEC-236" dev="ggregory" due-to=" Tomas Shestakov, Gary Gregory" type="update">Broken direct java.nio.ByteBuffer support in org.apache.commons.codec.binary.Hex.</action>
    </release>

    <release version="1.12" date="2019-02-04" description="Feature and fix release. Requires a minimum of Java 7.">
      <!-- The first attribute below should be the issue id; makes it easier to navigate in the IDE outline -->
      <action issue="CODEC-252" dev="chtompki" type="fix">B64 salt generator: Random -> ThreadLocalRandom</action>
      <action issue="CODEC-250" dev="sebb" type="fix" due-to="Alex Volodko">Wrong value calculated by Cologne Phonetic if a special character is placed between equal letters</action>
      <action issue="CODEC-244" dev="ggregory" type="update">Update from Java 6 to Java 7</action>
      <action issue="CODEC-240" dev="ggregory" type="add" due-to="Ioannis Sermetziadis">Add Percent-Encoding Codec (described in RFC3986 and RFC7578)</action>
      <action issue="CODEC-246" dev="ggregory" type="fix" due-to="Oscar Luis Vera Pérez">ColognePhoneticTest.testIsEncodeEquals missing assertions</action>
      <action issue="CODEC-251" dev="ggregory" type="add" due-to="Gary Gregory">Add SHA-3 methods in DigestUtils</action>
    </release>
    <release version="1.11" date="2017-10-20" description="Feature and fix release.">
      <!-- The first attribute below should be the issue id; makes it easier to navigate in the IDE outline -->
      <action issue="CODEC-241" type="add">Add support for XXHash32</action>
      <action issue="CODEC-234" dev="ggregory" type="update" due-to="Christopher Schultz, Sebb">Base32.decode should support lowercase letters</action>
      <action issue="CODEC-233" dev="sebb" type="update" due-to="Yossi Tamari">Soundex should support more algorithm variants</action>
      <action issue="CODEC-145" dev="sebb" type="fix" due-to="Jesse Glick">Base64.encodeBase64String could better use newStringUsAscii (ditto encodeBase64URLSafeString)</action>
      <action issue="CODEC-144" dev="sebb" type="fix">BaseNCodec: encodeToString and encodeAsString methods are identical</action>
      <action issue="CODEC-232" dev="sebb" type="fix">URLCodec is neither immutable nor threadsafe</action>
      <action issue="CODEC-231" dev="sebb" type="fix">StringUtils.equals(CharSequence cs1, CharSequence cs2) can fail with String Index OBE</action>
      <action issue="CODEC-230" dev="sebb" type="fix">URLCodec.WWW_FORM_URL should be private</action>
      <action issue="CODEC-229" dev="sebb" type="fix">StringUtils.newStringxxx(null) should return null, not NPE</action>
      <action issue="CODEC-220" dev="sebb" type="add">Fluent interface for DigestUtils</action>
      <action issue="CODEC-222" dev="sebb" type="add">Fluent interface for HmacUtils</action>
      <action issue="CODEC-225" dev="jochen" type="fix" due-to="Svetlin Zarev">Fix minor resource leaks</action>
      <action issue="CODEC-223" dev="sebb" type="remove">Drop obsolete Ant build</action>
      <action issue="CODEC-171" dev="sebb" type="add" due-to="Brett Okken">Add support for CRC32-C</action>
      <action issue="CODEC-221" dev="sebb" type="update">HmacUtils.updateHmac calls reset() unnecessarily</action>
      <action issue="CODEC-200" dev="sebb" type="fix" due-to="Luciano Vernaschi">Base32.HEX_DECODE_TABLE contains the wrong value 32</action>
      <action issue="CODEC-207" dev="ggregory" type="fix" due-to="Gary Gregory">Charsets Javadoc breaks build when using Java 8</action>
      <action issue="CODEC-199" dev="ggregory/sebb" type="fix" due-to="Yossi Tamari">Bug in HW rule in Soundex</action>
      <action issue="CODEC-209" dev="ggregory" type="fix" due-to="Gary Gregory">Javadoc for SHA-224 DigestUtils methods should mention Java 1.8.0 restriction instead of 1.4.0.</action>
      <action issue="CODEC-219" dev="ggregory" type="fix" due-to="Gary Gregory, Sebb">Don't deprecate Charsets Charset constants in favor of Java 7's java.nio.charset.StandardCharsets</action>
      <action issue="CODEC-217" dev="ggregory" type="add" due-to="Gary Gregory">Add HmacAlgorithms.HMAC_SHA_224 (Java 8 only)</action>
      <action issue="CODEC-213" dev="ggregory" type="add" due-to="Gary Gregory">Support JEP 287: SHA-3 Hash Algorithms</action>
      <action issue="CODEC-212" dev="ggregory" type="add" due-to="Gary Gregory">Create a minimal Digest command line utility: org.apache.commons.codec.digest.Digest</action>
      <action issue="CODEC-210" dev="ggregory" type="add" due-to="Gary Gregory">Add DigestUtils.getDigest(String, MessageDigest)</action>
      <action issue="CODEC-208" dev="ggregory" type="add" due-to="Gary Gregory">Make some DigestUtils APIs public</action>
      <action issue="CODEC-206" dev="ggregory" type="add" due-to="Gary Gregory">Add java.io.File APIs to MessageDigestAlgorithm</action>
      <action issue="CODEC-183" dev="ggregory" type="add" due-to="Steven Wurster">BaseNCodecOutputStream only supports writing EOF on close()</action>
      <action issue="CODEC-195" dev="ggregory" type="add" due-to="Gary Gregory">Support SHA-224 in DigestUtils on Java 8</action>
      <action issue="CODEC-194" dev="ggregory" type="add" due-to="Gary Gregory">Support java.nio.ByteBuffer in org.apache.commons.codec.binary.Hex</action>
      <action issue="CODEC-193" dev="ggregory" type="add" due-to="Michael Donaghy">Support java.nio.ByteBuffer in DigestUtils</action>
      <action issue="CODEC-202" dev="ggregory" type="add" due-to="Oleg Kalnichevski">Add BaseNCodec.encode(byte[], int, int) input with offset and length parameters for Base64 and Base32.</action>
      <action issue="CODEC-203" dev="ggregory" type="add" due-to="Gary Gregory">Add convenience method decodeHex(String).</action>
      <action issue="CODEC-205" dev="ggregory" type="add" due-to="Gary Gregory">Add faster CRC32 implementation.</action>
      <action issue="CODEC-224" dev="ggregory" type="add" due-to="Gary Gregory">Add convenience API org.apache.commons.codec.binary.Hex.encodeHexString(byte[]|ByteBuffer, boolean).</action>
      <action issue="CODEC-242" dev="ggregory" type="add" due-to="Gary Gregory">Add Automatic-Module-Name manifest entry for Java 9.</action>
    </release>
    <release version="1.10" date="5 November 2014" description="Feature and fix release.">
      <action dev="ggregory" type="add" issue="CODEC-192" due-to="Thomas Neidhart">Add Daitch-Mokotoff Soundex</action>
      <action dev="ggregory" type="add" issue="CODEC-121" due-to="Thomas Neidhart, Java John">QuotedPrintableCodec does not support soft line break per the 'quoted-printable' example on Wikipedia</action>
      <action dev="tn" type="fix" issue="CODEC-185" due-to="Sean Busbey">Added clarification to Javadoc of Base64 concerning the use of the urlSafe parameter</action>
      <action dev="tn" type="fix" issue="CODEC-191" due-to="Igor Savin">Added clarification to the Javadoc of Base[32|64]OutputStream that it is mandatory to call close()</action>
      <action dev="ggregory" type="fix" issue="CODEC-188" due-to="Hendrik Saly">Add support for HMAC Message Authentication Code (MAC) digests</action>
      <action dev="ggregory" type="fix" issue="CODEC-187" due-to="Michael Tobias, Thomas Neidhart">Beider Morse Phonetic Matching producing incorrect tokens</action>
      <action dev="ggregory" type="fix" issue="CODEC-184" due-to="Cyrille Artho">NullPointerException in DoubleMetaPhone.isDoubleMetaphoneEqual when using empty strings</action>
      <action dev="ggregory" type="add" issue="CODEC-181" due-to="Ivan Martinez-Ortiz">Make possible to provide padding byte to BaseNCodec in constructor</action>
      <action dev="ggregory" type="fix" issue="CODEC-180" due-to="Ville Skyttä">Fix Javadoc 1.8.0 errors</action>
      <action dev="ggregory" type="update" issue="CODEC-178">Deprecate Charsets Charset constants in favor of Java 7's java.nio.charset.StandardCharsets</action>
      <action dev="ggregory" type="fix" issue="CODEC-189">Fix Java 8 build Javadoc errors</action>
      <action dev="ggregory" type="update" issue="CODEC-190">Update from commons-parent 34 to 35</action>
    </release>
    <release version="1.9" date="20 December 2013" description="Feature and fix release.">
      <action dev="ggregory" type="update" issue="CODEC-174" due-to="Thomas Champagne">Improve performance of Beider Morse encoder</action>
      <action dev="ggregory" type="fix" issue="CODEC-175">Beider Morse does not close Scanners used to read config files</action>
      <action dev="sebb" type="fix" issue="CODEC-172" due-to="Matt Bishop">Base32 decode table has spurious value</action>
      <action dev="ggregory" type="fix" issue="CODEC-170" due-to="Ron Wheeler, Henri Yandell">Link broken in Metaphone Javadoc</action>
      <action dev="ggregory" type="fix" issue="CODEC-176" due-to="Ville Skyttä">Spelling fixes in Javadoc and comments</action>
    </release>
    <release version="1.8" date="19 April 2013" description="Feature and fix release. Requires a minimum of Java 6.">
      <action dev="ggregory" type="add" issue="CODEC-168" due-to="Daniel Cassidy">Add DigestUtils.updateDigest(MessageDigest, InputStream).</action>
      <action dev="julius" type="add" issue="CODEC-167">Add JUnit to test our decode with pad character in the middle.</action>
      <action dev="ggregory" type="add" issue="CODEC-161" due-to="crice">Add Match Rating Approach (MRA) phonetic algorithm encoder.</action>
      <action dev="ggregory" type="fix" issue="CODEC-163" due-to="leo141">ColognePhonetic encoder unnecessarily creates many char arrays on every loop run.</action>
      <action dev="sebb" type="fix" issue="CODEC-160">Base64.encodeBase64URLSafeString doesn't add padding characters at the end.</action>
    </release>
    <release version="1.7" date="11 September 2012" description="Feature and fix release. Requires a minimum of Java 6.">
      <action issue="CODEC-157" dev="ggregory" type="add" due-to="ggregory">
        DigestUtils: Add MD2 APIs.
      </action>
      <action issue="CODEC-156" dev="ggregory" type="add" due-to="ggregory">
        DigestUtils: add APIs named after standard algorithm name SHA-1.
      </action>
      <action issue="CODEC-155" dev="ggregory" type="add" due-to="ggregory">
        DigestUtils.getDigest(String) should throw IllegalArgumentException instead of RuntimeException.
      </action>
      <action issue="CODEC-153" dev="ggregory" type="add" due-to="ggregory">
        Create a class MessageDigestAlgorithms to define standard algorithm names.
      </action>
      <action issue="CODEC-152" dev="ggregory" type="add" due-to="ggregory">
        DigestUtils.getDigest(String) loses the original exception.
      </action>
      <action issue="CODEC-151" dev="ggregory" type="add" due-to="lathspell">
        Remove unnecessary attempt to fill up the salt variable in UnixCrypt.
      </action>
      <action issue="CODEC-150" dev="ggregory" type="add" due-to="lathspell">
        Remove unnecessary call to Math.abs().
      </action>
      <action issue="CODEC-148" dev="ggregory" type="add" due-to="lathspell">
        More tests and minor things.
      </action>
      <action issue="CODEC-146" dev="tn" type="add" due-to="Julius Davies">
        Added regression tests for PhoneticEngine based on Solr-3.6.0.
      </action>
      <action issue="CODEC-147" dev="tn" type="update">
        BeiderMorseEncoder/PhoneticEngine: make results deterministic by using a LinkedHashSet
        instead of a HashSet.
      </action>
      <action issue="CODEC-143" dev="sebb" type="update">
        StringBuffer could be replaced by StringBuilder for local variables.
      </action>
      <action issue="CODEC-139" dev="ggregory" type="add" due-to="dsebastien">
        DigestUtils: add updateDigest methods and make methods public.
      </action>
      <action issue="CODEC-133" dev="ggregory" type="add" due-to="lathspell">
        Add classes for MD5/SHA1/SHA-512-based Unix crypt(3) hash variants.
      </action>
      <action issue="CODEC-96" dev="ggregory" type="fix" due-to="sebb">
        Base64 encode() method is no longer thread-safe, breaking clients using it as a shared BinaryEncoder.
        Note: the fix breaks binary compatibility, however the changes are to a class (BaseNCodec) which is
        intended for internal use.
      </action>
      <action issue="CODEC-138" dev="sebb" type="fix">
        Complete FilterInputStream interface for BaseNCodecInputStream.
      </action>
      <action issue="CODEC-136" dev="ggregory" type="fix">
        Use Charset objects when possible, create Charsets for required character encodings.
      </action>
      <action issue="CODEC-132" dev="ggregory" type="fix" due-to="rcmuir">
        BeiderMorseEncoder OOM issues.
      </action>
      <action issue="CODEC-131" dev="tn" type="fix" due-to="smolav">
        DoubleMetaphone Javadoc contains dead links.
      </action>
      <action issue="CODEC-130" dev="ggregory" type="add" due-to="tn">
        Base64InputStream.skip skips underlying stream, not output.
      </action>
      <action issue="CODEC-63" dev="ggregory" type="add" due-to="tn">
        Implement NYSIIS phonetic encoder.
      </action>
    </release>
    <release version="1.6" date="20 November 2011" description="Feature and fix release. Requires a minimum of Java 5.">
      <action dev="ggregory" type="fix" issue="CODEC-129" due-to="ggregory">
        Use standard Maven directory layout.
      </action>
      <action dev="ggregory" type="fix" issue="CODEC-128" due-to="ville.skytta@iki.fi">
        Documentation spelling fixes.
      </action>
      <action dev="ggregory, sebb" type="fix" issue="CODEC-127">
        Fix various character encoding issues in comments and test cases.
      </action>
      <action dev="ggregory, matthewpocock" type="update" issue="CODEC-125" due-to="Matthew Pocock">
        Implement a Beider-Morse phonetic matching codec.
      </action>
      <action dev="ggregory" type="update" issue="CODEC-119">
        Migrate to Java 5.
      </action>
      <action dev="ggregory" type="update" issue="CODEC-120">
        Migrate to JUnit 4.
      </action>
      <action dev="ggregory" type="fix" issue="CODEC-123">
        ColognePhonetic Javadoc should use HTML entities for special characters.
      </action>
    </release>
    <release version="1.5" date="29 March 2011" description="Feature and fix release. Requires a minimum of Java 1.4.">
      <action dev="sebb" type="add" issue="CODEC-88">
        Added new Base32 encoder.
      </action>
      <action dev="sebb" type="fix" issue="CODEC-89">
        new Base64().encode() appends a CRLF, and chunks results into 76 character lines.
      </action>
      <action dev="sebb" type="fix" issue="CODEC-92">
        Many test cases use getBytes() which uses the default platform encoding so tests may fail on some platforms.
      </action>
      <action dev="sebb, julius, ggregory" type="add" issue="CODEC-93" due-to="sebb">
        Add test(s) to check that encodeBase64() does not chunk output.
      </action>
      <action dev="sebb" type="fix" issue="CODEC-97" due-to="mjryall">
        Base64 default constructor behavior changed to enable chunking in 1.4.
      </action>
      <action dev="ggregory" type="fix" issue="CODEC-99" due-to="julius">
        Base64.encodeBase64String() shouldn't chunk.
      </action>
      <action dev="julius" type="fix" issue="CODEC-101" due-to="balusc">
        Base64InputStream#read(byte[]) incorrectly returns 0 at end of any stream which is multiple of 3 bytes long.
      </action>
      <action dev="bayard" type="fix" issue="CODEC-103" due-to="gnuf">
        Typo in DecoderException message thrown from Hex.decodeHex.
      </action>
      <action dev="julius, ggregory" type="add" issue="CODEC-105" due-to="zak">
        ArrayIndexOutOfBoundsException when doing multiple reads() on encoding Base64InputStream.
      </action>
      <action dev="bayard" type="add" issue="CODEC-106" due-to="it2mmeyerfa">
        Add the "Kölner Phonetik" encoder (Cologne Phonetic) to codec.lang.
      </action>
      <action dev="ggregory" type="add" issue="CODEC-111" due-to="ggregory">
        org.apache.commons.codec.net.URLCodec.ESCAPE_CHAR isn't final but should be.
      </action>
      <action dev="sebb" type="add" issue="CODEC-112" due-to="sebb">
        Base64.encodeBase64(byte[] binaryData, boolean isChunked, boolean urlSafe, int maxResultSize) throws IAE for valid maxResultSize if isChunked is false.
      </action>
      <action dev="ggregory" type="add" issue="CODEC-113" due-to="ggregory">
        org.apache.commons.codec.language.RefinedSoundex.US_ENGLISH_MAPPING should be package protected MALICIOUS_CODE.
      </action>
      <action dev="ggregory" type="add" issue="CODEC-114" due-to="ggregory">
        org.apache.commons.codec.language.Soundex.US_ENGLISH_MAPPING should be package protected MALICIOUS_CODE.
      </action>
      <action dev="ggregory" type="add" issue="CODEC-115" due-to="sebb">
        DoubleMetaphone.maxCodeLen should probably be private.
      </action>
      <action dev="ggregory" type="remove" issue="CODEC-116" due-to="ggregory">
        Remove deprecated package private method Base64.discardWhitespace(byte[])
      </action>
      <action dev="ggregory" type="fix" issue="CODEC-117" due-to="ggregory">
        Caverphone encodes names starting and ending with "mb" incorrectly.
      </action>
      <action dev="ggregory" type="add" issue="CODEC-118" due-to="ggregory">
        Split Caverphone class into two classes for Caverphone 1.0 and 2.0.
      </action>
    </release>
    <release version="1.4" date="9 August 2009" description="Feature and fix release. Requires a minimum of Java 1.4.">
      <action dev="ggregory" type="fix" issue="CODEC-80" due-to="Julius Davies">
        Regression: Base64.encode(chunk=true) has a bug when input length is multiple of 76.
      </action>
      <action dev="ggregory" type="fix" issue="CODEC-77" due-to="Julius Davies">
        Base64 bug with empty input (new byte[0]).
      </action>
      <action dev="ggregory" type="fix" issue="CODEC-75" due-to="Julius Davies">
        Make Base64 URL-safe.
      </action>
      <action dev="ggregory" type="add" issue="CODEC-74">
        Allow for uppercase letters output in Hex.encodeHex().
      </action>
      <action dev="bayard" type="fix" issue="CODEC-72" due-to="Sebb">
        Soundex and RefinedSoundex issues with character arrays.
      </action>
      <action dev="bayard" type="fix" issue="CODEC-71" due-to="Sebb">
        Base64.isArrayByteBase64() method is inefficient for large byte arrays.
      </action>
      <action dev="bayard" type="fix" issue="CODEC-70" due-to="Sebb">
        Thread safety and malicious code safety improvements.
      </action>
      <action dev="bayard" type="fix" issue="CODEC-68" due-to="Robert Rodewald">
        isBase64 throws ArrayIndexOutOfBoundsException on some non-BASE64 bytes.
      </action>
      <action dev="bayard" type="fix" issue="CODEC-65" due-to="Benjamin Bentmann">
        Fix case-insensitive string handling.
      </action>
      <action dev="ggregory" type="fix" issue="CODEC-61" due-to="Igor Slepchin">
        Base64.encodeBase64() throws NegativeArraySizeException on large files.
      </action>
      <action dev="bayard" type="add" issue="CODEC-60">
        Implement Caverphone.
      </action>
      <action dev="ggregory" type="fix" issue="CODEC-58" due-to="Julius Davies">
        Character set used by Base64 not documented.
      </action>
      <action dev="bayard" type="fix" issue="CODEC-56" due-to="Sebb">
        RefinedSoundex creates instance before al fields have been initialized.
      </action>
      <action dev="bayard" type="add" issue="CODEC-52" due-to="Niklas Gustavsson">
        Digest on InputStreams.
      </action>
      <action dev="bayard" type="fix" issue="CODEC-51">
        2 Test failures in SoundexTest.
      </action>
      <action dev="bayard" type="add" issue="CODEC-40" due-to="Chris Black">
        Patch to add crypto-compatible BigInteger encoding support to Base64.
      </action>
      <action dev="ggregory" type="add" issue="CODEC-39" due-to="Jamie Flournoy" due-to-email="jamie@white-mountain.org">
        DigestUtils: Add methods for SHA-256, SHA-384, and SHA-512.
      </action>
      <action dev="tobrien" type="fix" issue="CODEC-10" due-to="Reggie Riser" due-to-email="rriser@informs.com">
        Using US_ENGLISH in Soundex caused an NullPointerException.
      </action>
      <action dev="tobrien" type="fix" issue="CODEC-6" due-to="David Tonhofer">
        Source tarball spews files all over the place.
      </action>
      <action dev="ggregory" type="fix" issue="CODEC-22" due-to="Piero Ottuzzi">
        Base64.isArrayByteBase64() throws an ArrayIndexOutOfBoundsException for negative octets
      </action>
      <action dev="jochen" type="add" issue="CODEC-69" due-to="Julius Davies">
        Streaming Base64 (Base64InputStream and Base64OutputStream added).
      </action>
      <action dev="ggregory" type="fix" issue="CODEC-78" due-to="Julius Davies">
        Base64: Improve Code Coverage.
      </action>
      <action dev="ggregory" type="add" issue="CODEC-59" due-to="Julius Davies">
        Add methods to Base64 which work with String instead of byte[].
      </action>
      <action dev="ggregory" type="fix" issue="CODEC-81" due-to="Julius Davies">
        Base64's new constructor parameters ignored.
      </action>
      <action dev="niallp" type="fix" issue="CODEC-83">
        Improve Double Metaphone test coverage.
      </action>
      <action dev="niallp" type="fix" issue="CODEC-84">
        Double Metaphone bugs in alternative encoding.
      </action>
      <action dev="ggregory" type="fix" issue="CODEC-73" due-to="Benjamin Bentmann">
        Make string2byte conversions independent of platform default encoding.
      </action>
    </release>
    <release version="1.3" date="10 July 2004" description="Feature and fix release.">
      <action dev="ggregory, tobrien" type="add" issue="CODEC-21" due-to="Alex Karasulu">
        BinaryCodec: Encodes and decodes binary to and from Strings of 0s and 1s.
      </action>
      <action dev="ggregory" type="add" issue="CODEC-41" due-to="Oleg Kalnichevski" due-to-email="olegk@apache.org">
        QuotedPrintableCodec: Codec for RFC 1521 MIME (Multipurpose Internet
        Mail Extensions) Part One. Rules #3, #4, and #5 of the quoted-printable spec
        are not implemented yet. See also issue CODEC-46.
      </action>
      <action dev="ggregory" type="add" issue="CODEC-41" due-to="Oleg Kalnichevski" due-to-email="olegk@apache.org">
        BCodec: Identical to the Base64 encoding defined by RFC 1521 and allows a
        character set to be specified.
      </action>
      <action dev="ggregory" type="add" issue="CODEC-41" due-to="Oleg Kalnichevski" due-to-email="olegk@apache.org">
        QCodec: Similar to the Quoted-Printable content-transfer-encoding defined
        in RFC 1521 and designed to allow text containing mostly ASCII characters to
        be decipherable on an ASCII terminal without decoding.
      </action>
      <action dev="ggregory" type="add" issue="CODEC-45" due-to="Matthew Inger" due-to-email="mattinger@yahoo.com">
        Soundex: Implemented the DIFFERENCE algorithm.
      </action>
      <action dev="ggregory" type="add" issue="CODEC-45" due-to="Matthew Inger" due-to-email="mattinger@yahoo.com">
        RefinedSoundex: Implemented the DIFFERENCE algorithm.
      </action>
      <action dev="ggregory" type="update">
        This version is released under the
        &lt;a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0&lt;/a>
        , please see LICENSE.txt. Previous versions were released under the
        &lt;a href="https://www.apache.org/licenses/LICENSE-1.1">Apache License 1.1&lt;/a>
      </action>
      <action dev="ggregory" type="update">
        The Board recommendation to remove Javadoc author tags has been
        implemented. All author tags are now "Apache Software Foundation".
      </action>
      <action dev="ggregory" type="fix" issue="CODEC-25" due-to="Oleg Kalnichevski" due-to-email="olegk@apache.org">
        The default URL encoding logic was broken.
      </action>
      <action dev="ggregory" type="fix" issue="CODEC-31" due-to="Gary D. Gregory">
        Base64 chunked encoding not compliant with RFC 2045 section 2.1 CRLF.
      </action>
      <action dev="ggregory" type="fix" issue="CODEC-5">
        Hex converts illegal characters to 255.
      </action>
      <action dev="tobrien" type="fix" issue="CODEC-17">
        Metaphone now correctly handles a silent B in a word that ends in MB.
        "COMB" is encoded as "KM", before this fix "COMB" was encoded as "KMB".
      </action>
      <action dev="ggregory" type="fix">
        Added missing tags in Javadoc comments.
      </action>
      <action dev="ggregory" type="fix">
        General Javadoc improvements.
      </action>
    </release>
    <release version="1.2" date="24 Nov 2003" description="Feature and fix release.">
      <action dev="tobrien" type="add" due-to="Oleg Kalnichevski" due-to-email="olegk@apache.org">
        URLCodec: Implements the www-form-urlencoded encoding scheme.
      </action>
      <action dev="tobrien" type="add" due-to="Dave Dribin, David Graham">
        DigestUtils: Calculates MD5 and SHA digests.
      </action>
      <action dev="tobrien" type="fix" issue="CODEC-26" due-to="Brian Ewins">
        Modified Base64 to remedy non-compliance with RFC
        2045. Non-Base64 characters were not being discarded during the
        decode. RFC 2045 explicitly states that all characters outside of the
        base64 alphabet are to be ignored.
      </action>
      <action dev="ggregory" type="fix" issue="CODEC-4">
        Hex.decode(Object) throws a ClassCastException when a String argument is passed in.
      </action>
      <action dev="ggregory" type="fix" issue="CODEC-3">
        Soundex: The HW rule is not applied; hyphens and apostrophes are not ignored.
      </action>
      <action dev="ggregory" type="fix" issue="CODEC-29">
        Soundex.setMaxLength causes bugs and is not needed.
        Calling Soundex.setMaxLength() with a value of 2 or less causes the wrong
        answer to be returned. Since the encoding returned by Soundex is always
        of length 4 by definition (we do not use the '-' in as a letter-nnn
        separator) the need for a maxLength attribute is not needed. Deprecate
        the field and accessor methods.
      </action>
      <action dev="Members" type="fix">
        Fix in Metaphone relating to the handling of the maximum code length.
      </action>
    </release>
    <release version="1.1" date="29 April 2003"
      description="The first official release. Numerous projects had been depending on version 1.0-dev while in the Sandbox.">
      <action dev="Members" type="add">
        A newer version of the Base64 class reflecting improvements from
        both the commons-httpclient and xml-rpc versions of code forked
        from catalina.
      </action>
      <action dev="Members" type="add">
        Base64 class from commons-httpclient in org.apache.commons.codec.base64
        has been retained for backwards compatibility but has been deprecated.
      </action>
      <action dev="Members" type="add">
        Soundex class from commons-util in org.apache.commons.codec.
      </action>
      <action dev="Members" type="add">
        Metaphone class from commons-util in org.apache.commons.codec.
      </action>
      <action dev="tobrien" type="add">
        RefinedSoundex class in org.apache.commons.codec.
      </action>
      <action dev="Members" type="add">
        Encoder/Decoder interfaces in org.apache.commons.
      </action>
      <action dev="Members" type="add">
        String and Binary specific Encoder/Decoder interfaces in org.apache.commons.
      </action>
      <action dev="Members" type="add">
        StringEncoderComparator replaces the SoundexComparator from the language package.
      </action>
      <action dev="Members" type="fix">
        Base64 now discards whitespace characters when decoding encoded content.
      </action>
    </release>
    <release version="1.0-dev" date="25 April 2003" description="Last release from the Sandbox.">
      <action dev="tobrien" type="add">
        Base64 class from commons-httpclient in org.apache.commons.codec.base64.
      </action>
      <action dev="tobrien" type="add">
        Soundex class from commons-util in org.apache.commons.codec.
      </action>
      <action dev="tobrien" type="add">
        Metaphone class from commons-util in org.apache.commons.codec.
      </action>
      <action dev="Members" type="add">
        SoundexComparator class from commons-util in org.apache.commons.codec.
      </action>
    </release>
  </body>
</document>
