Author: ggregory
Date: Thu Jan 29 19:04:07 2026
New Revision: 82172
Log:
Publish commons-codec 1.21.0 Release
Added:
release/commons/codec/binaries/commons-codec-1.21.0-bin.tar.gz
- copied unchanged from r82171,
dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.tar.gz
release/commons/codec/binaries/commons-codec-1.21.0-bin.tar.gz.asc
- copied unchanged from r82171,
dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.tar.gz.asc
release/commons/codec/binaries/commons-codec-1.21.0-bin.tar.gz.sha512
- copied unchanged from r82171,
dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.tar.gz.sha512
release/commons/codec/binaries/commons-codec-1.21.0-bin.zip
- copied unchanged from r82171,
dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.zip
release/commons/codec/binaries/commons-codec-1.21.0-bin.zip.asc
- copied unchanged from r82171,
dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.zip.asc
release/commons/codec/binaries/commons-codec-1.21.0-bin.zip.sha512
- copied unchanged from r82171,
dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.zip.sha512
release/commons/codec/source/commons-codec-1.21.0-src.tar.gz
- copied unchanged from r82171,
dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.tar.gz
release/commons/codec/source/commons-codec-1.21.0-src.tar.gz.asc
- copied unchanged from r82171,
dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.tar.gz.asc
release/commons/codec/source/commons-codec-1.21.0-src.tar.gz.sha512
- copied unchanged from r82171,
dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.tar.gz.sha512
release/commons/codec/source/commons-codec-1.21.0-src.zip
- copied unchanged from r82171,
dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.zip
release/commons/codec/source/commons-codec-1.21.0-src.zip.asc
- copied unchanged from r82171,
dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.zip.asc
release/commons/codec/source/commons-codec-1.21.0-src.zip.sha512
- copied unchanged from r82171,
dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.zip.sha512
Replaced:
release/commons/codec/RELEASE-NOTES.txt
- copied unchanged from r82171,
dev/commons/codec/1.21.0-RC1/RELEASE-NOTES.txt
Deleted:
dev/commons/codec/1.21.0-RC1/RELEASE-NOTES.txt
dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.tar.gz
dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.tar.gz.asc
dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.tar.gz.sha512
dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.zip
dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.zip.asc
dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.zip.sha512
dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.tar.gz
dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.tar.gz.asc
dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.tar.gz.sha512
dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.zip
dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.zip.asc
dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.zip.sha512
Copied: release/commons/codec/RELEASE-NOTES.txt (from r82171,
dev/commons/codec/1.21.0-RC1/RELEASE-NOTES.txt)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ release/commons/codec/RELEASE-NOTES.txt Thu Jan 29 19:04:07 2026
(r82172, copy of r82171, dev/commons/codec/1.21.0-RC1/RELEASE-NOTES.txt)
@@ -0,0 +1,417 @@
+Apache Commons Codec 1.21.0 Release Notes
+-----------------------------------------
+
+The Apache Commons Codec team is pleased to announce the release of Apache
Commons Codec 1.21.0.
+
+The Apache Commons Codec component contains encoders and decoders for
+formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition
to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+This is a feature and maintenance release. Java 8 or later is required.
+
+
+New features
+------------
+
+* CODEC-333: Add distinct Base64 decoding for standard and URL-safe formats.
Thanks to Aleksandr Beliakov, Gary Gregory.
+
+Fixed Bugs
+----------
+
+* Fix oak leaf icon references in overview.html when running `mvn
clean javadoc:javadoc`. Thanks to Gary Gregory.
+* Fix Apache RAT plugin console warnings. Thanks to Gary Gregory.
+* Fix malformed Javadoc comments. Thanks to Gary Gregory.
+
+Changes
+-------
+
+* Bump org.apache.commons:commons-parent from 91 to 96 #415, #418.
Thanks to Gary Gregory, Dependabot.
+* Bump commons-io:commons-io from 2.20.0 to 2.21.0. Thanks to Gary
Gregory.
+* Bump org.apache.commons:commons-lang3 from 3.19.0 to 3.20.0.
Thanks to Gary Gregory, Dependabot.
+
+
+For complete information on Apache Commons Codec, including instructions on
how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page:
https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------
+Apache Commons Codec 1.20.0 Release Notes
+-----------------------------------------
+
+The Apache Commons Codec team is pleased to announce the release of Apache
Commons Codec 1.20.0.
+
+The Apache Commons Codec component contains encoders and decoders for
+formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition
to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+This is a feature and maintenance release. Java 8 or later is required.
+
+
+New features
+------------
+
+* Add org.apache.commons.codec.digest.Crc16. Thanks to Fredrik
Kjellberg, Gary Gregory.
+* Add builders to org.apache.commons.codec.digest streams and
deprecate some old constructors. Thanks to Gary Gregory.
+* Add builder to Base16 streams and deprecate some old
constructors. Thanks to Gary Gregory.
+* Add support for SHAKE128-256 and SHAKE256-512 to `DigestUtils`
and `MessageDigestAlgorithms` on Java 25 and up. Thanks to Gary Gregory.
+* Add BaseNCodec.AbstractBuilder.setDecodeTable(byte[]) and
refactor subclasses. Thanks to Gary Gregory.
+
+
+Changes
+-------
+
+* Deprecate all but one Base32 constructor in favor of the builder
added in version 1.17.0. Thanks to Gary Gregory.
+* Deprecate all but one Base64 constructor in favor of the builder
added in version 1.17.0. Thanks to Gary Gregory.
+* BaseNCodecInputStream subclasses are now type-safe to match its
matching BaseNCodec. Thanks to Gary Gregory.
+* BaseNCodecOutputStream subclasses are now type-safe to match its
matching BaseNCodec. Thanks to Gary Gregory.
+* Bump org.apache.commons:commons-parent from 85 to 91. Thanks to
Gary Gregory, Dependabot.
+* [test] Bump org.apache.commons:commons-lang3 from 3.18.0 to
3.19.0. Thanks to Gary Gregory.
+
+
+For complete information on Apache Commons Codec, including instructions on
how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page:
https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------
+Apache Commons Codec 1.19.0 Release Notes
+-----------------------------------------
+
+The Apache Commons Codec team is pleased to announce the release of Apache
Commons Codec 1.19.0.
+
+The Apache Commons Codec component contains encoders and decoders for
+formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition
to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+This is a feature and maintenance release. Java 8 or later is required.
+
+
+New features
+------------
+
+* Add HmacUtils.hmac(Path). Thanks to Gary Gregory.
+* Add HmacUtils.hmacHex(Path). Thanks to Gary Gregory.
+* Add PMD check to the default Maven goal. Thanks to Gary Gregory.
+* Add SpotBugs check to the default Maven goal. Thanks to Gary
Gregory.
+
+Fixed Bugs
+----------
+
+* 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). Thanks to Gary Gregory.
+* Refactor DigestUtils.updateDigest(MessageDigest, File) to use
NIO. Thanks to Gary Gregory.
+* CODEC-328: Clarify Javadoc for
org.apache.commons.codec.digest.UnixCrypt.crypt(byte[],String). Thanks to Gary
Gregory.
+* Precompile regular expressions in DaitchMokotoffSoundex.Rule.
Thanks to Gary Gregory.
+* Precompile regular expressions in
DaitchMokotoffSoundex.parseRules(Scanner, String, Map, Map). Thanks to Gary
Gregory.
+* Precompile regular expressions in Lang.loadFromResource(String,
Languages). Thanks to Gary Gregory.
+* Precompile regular expressions in PhoneticEngine.encode(String,
LanguageSet). Thanks to Gary Gregory.
+* Precompile regular expressions in
org.apache.commons.codec.language.bm.Rule.parse*(*). Thanks to Gary Gregory.
+* Remove redundant checks for whitespace in
DaitchMokotoffSoundex.soundex(String, boolean). Thanks to Gary Gregory.
+* Javadoc typo in Base16.java #380. Thanks to Sebastian Baunsgaard.
+* Deprecate unused constant
org.apache.commons.codec.language.bm.Rule.ALL. Thanks to Gary Gregory.
+* CODEC-331:
org.apache.commons.codec.language.bm.Rule.parsePhonemeExpr(String) adds
duplicate empty phoneme when input ends with |. Thanks to IlikeCode, Gary
Gregory.
+* CODEC-331:
org.apache.commons.codec.language.DaitchMokotoffSoundex.cleanup(String) does
not remove special characters like punctuation. Thanks to IlikeCode, Gary
Gregory.
+* Fix PMD multiple UnnecessaryFullyQualifiedName in
org.apache.commons.codec.binary.StringUtils. Thanks to Gary Gregory.
+* Fix PMD UnusedFormalParameter in private constructor in
org.apache.commons.codec.binary.Base16. Thanks to Gary Gregory.
+* Fix PMD multiple UnnecessaryFullyQualifiedName in
org.apache.commons.codec.digest.Blake3. Thanks to Gary Gregory.
+* Fix PMD UnnecessaryFullyQualifiedName in
org.apache.commons.codec.digest.Md5Crypt. Thanks to Gary Gregory.
+* Fix PMD EmptyControlStatement in
org.apache.commons.codec.language.Metaphone. Thanks 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. Thanks to Gary Gregory.
+* The method
org.apache.commons.codec.binary.BaseNCodec.AbstractBuilder.setLineSeparator(byte...)
now makes a defensive copy. Thanks to Gary Gregory.
+* Avoid unnecessary String conversion in
org.apache.commons.codec.language.bm.PhoneticEngine.applyFinalRules(PhonemeBuilder,
Map). Thanks 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. Thanks to
Gary Gregory.
+
+Changes
+-------
+
+* Bump org.apache.commons:commons-parent from 79 to 85 #375.
Thanks to Gary Gregory, Dependabot.
+* [test] Bump commons-io:commons-io from 2.18.0 to 2.20.0. Thanks
to Gary Gregory.
+* [test] Bump org.apache.commons:commons-lang3 from 3.17.0 to
3.18.0 #386. Thanks to Gary Gregory, Dependabot.
+
+
+For complete information on Apache Commons Codec, including instructions on
how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page:
https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------
+Apache Commons Codec 1.18.0 Release Notes
+-----------------------------------------
+
+The Apache Commons Codec team is pleased to announce the release of Apache
Commons Codec 1.18.0.
+
+The Apache Commons Codec component contains encoders and decoders for
+formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition
to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+This is a feature and maintenance release. Java 8 or later is required.
+
+
+New features
+------------
+
+* Add Base32.Builder.setHexDecodeTable(boolean). Thanks to Gary
Gregory, Julian Reschke.
+* Add Base32.Builder.setHexEncodeTable(boolean). Thanks to Gary
Gregory, Julian Reschke.
+
+
+Changes
+-------
+
+* Bump org.apache.commons:commons-parent from 78 to 79. Thanks to
Gary Gregory.
+
+
+For complete information on Apache Commons Codec, including instructions on
how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page:
https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------
+
+Apache Commons Codec 1.17.2 Release Notes
+-----------------------------------------
+
+The Apache Commons Codec component contains encoders and decoders for
+formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition
to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+This is a feature and maintenance release. Java 8 or later is required.
+
+
+Fixed Bugs
+----------
+
+* Rewrite DaitchMokotoffSoundex.soundex(String) using
String.join(). Thanks to Gary Gregory.
+* CODEC-324: Use Resource.class to load resources, rather than its class
loader #353. Thanks to Michael Froh.
+* Deprecate CharSequenceUtils.CharSequenceUtils(). Thanks to Gary
Gregory.
+* Deprecate Sha2Crypt.Sha2Crypt(). Thanks to Gary Gregory.
+
+Changes
+-------
+
+* Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0
#296, #305, #313. Thanks to Dependabot.
+* Bump org.apache.commons:commons-parent from 71 to 78 #310, #312,
#319, #323, #326, #333. Thanks to Gary Gregory.
+* [test] Bump commons-io:commons-io from 2.16.1 to 2.18.0 #318,
#341. Thanks to Gary Gregory, Dependabot.
+* Bump org.codehaus.mojo:taglist-maven-plugin from 3.1.0 to 3.2.1
#332. Thanks to Gary Gregory, Dependabot.
+
+
+For complete information on Apache Commons Codec, including instructions on
how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page:
https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------
+
+Apache Commons Codec 1.17.1 Release Notes
+-----------------------------------------
+
+The Apache Commons Codec component contains encoders and decoders for
+various formats such as Base16, Base32, Base64, digest, and Hexadecimal. In
addition to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+Feature and fix release. Requires a minimum of Java 8.
+
+
+Fixed Bugs
+----------
+
+* Md5Crypt now throws IllegalArgumentException on an invalid
prefix. Thanks to Gary Gregory.
+
+Changes
+-------
+
+* Bump org.apache.commons:commons-parent from 69 to 71 #286.
Thanks to Gary Gregory.
+* Bump org.codehaus.mojo:animal-sniffer-maven-plugin from 1.23 to
1.24 #293. Thanks to Dependabot.
+* Bump org.codehaus.mojo:taglist-maven-plugin from 3.0.0 to 3.1.0
#292. Thanks to Dependabot.
+
+
+For complete information on Apache Commons Codec, including instructions on
how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page:
https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------
+
+Apache Commons Codec 1.17.0 Release Notes
+-----------------------------------------
+
+The Apache Commons Codec component contains encoders and decoders for
+various formats such as Base16, Base32, Base64, digest, and Hexadecimal. In
addition to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+Feature and fix release. Requires a minimum of Java 8.
+
+
+New features
+------------
+
+* Add override
org.apache.commons.codec.language.bm.Rule.PhonemeExpr.size(). Thanks to Gary
Gregory.
+* Add support for Base64 custom alphabets #266. Thanks to Chris
Kocel, Gary Gregory.
+* Add Base64.Builder (allows custom alphabets). Thanks to Gary
Gregory.
+* Add Base32.Builder (allows custom alphabets). Thanks to Gary
Gregory.
+* Add Base64 support for a custom padding byte (like Base32).
Thanks to Gary Gregory.
+
+Fixed Bugs
+----------
+
+* CODEC-320: Wrong output of DoubleMetaphone in 1.16.1. Thanks to Martin
Frydl, Gary Gregory.
+* Optimize memory allocation in PhoneticEngine. Thanks to Gary
Gregory.
+* BCodec and QCodec encode() methods throw
UnsupportedCharsetException instead of EncoderException. Thanks to Gary Gregory.
+* Set Javadoc link to latest Java API LTS version. Thanks to Gary
Gregory.
+* Base32 constructor fails-fast with a NullPointerException if the
custom alphabet array is null. Thanks to Gary Gregory.
+* Base32 constructor makes a defensive copy of the line separator
array. Thanks to Gary Gregory.
+* Base64 constructor makes a defensive copy of the line separator
array. Thanks to Gary Gregory.
+* Base64 constructor makes a defensive copy of a custom alphabet
array. Thanks to Gary Gregory.
+
+Changes
+-------
+
+* Bump org.apache.commons:commons-parent from 66 to 69 #250, #261.
Thanks to Dependabot, Gary Gregory.
+* Bump commons-io:commons-io from 2.15.1 to 2.16.1 #258, #265.
Thanks to Dependabot, Gary Gregory.
+
+
+For complete information on Apache Commons Codec, including instructions on
how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page:
https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------
+
+Apache Commons Codec 1.16.1 Release Notes
+-----------------------------------------
+
+The Apache Commons Codec component contains encoders and decoders for
+various formats such as Base16, Base32, Base64, digest, and Hexadecimal. In
addition to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+Feature and fix release. Requires a minimum of Java 8.
+
+New features
+------------
+
+* Add Maven property project.build.outputTimestamp for build
reproducibility. Thanks to Gary Gregory.
+
+Fixed Bugs
+----------
+
+* CODEC-295: Test clean ups. Thanks to Gary Gregory.
+* [StepSecurity] ci: Harden GitHub Actions #187. Thanks to
step-security-bot, Gary Gregory.
+* CODEC-295: Correct error in Base64 Javadoc #188. Thanks to Evan Saulpaugh.
+* CODEC-295: Add minimum Java version in changes.xml #186. Thanks to Olivier
Jaquemet, Gary Gregory.
+* CODEC-310: Documentation update for the org.apache.commons.codec.digest.*
package #208. Thanks to Yakov Shafranovich.
+* Precompile regular expression in UnixCrypt.crypt(byte[],
String). Thanks to Gary Gregory.
+* CODEC-315: Fix possible IndexOutOfBoundException in PhoneticEngine.encode
method #223. Thanks to Arthur Chan, Gary Gregory.
+* CODEC-313: Fix possible ArrayIndexOutOfBoundsException in
QuotedPrintableCodec.encodeQuotedPrintable() method #221. Thanks to Arthur
Chan, Gary Gregory.
+* CODEC-312: Fix possible StringIndexOutOfBoundException in
MatchRatingApproachEncoder.encode() method #220. Thanks to Arthur Chan, Gary
Gregory.
+* CODEC-311: Fix possible ArrayIndexOutOfBoundException in
RefinedSoundex.getMappingCode() #219. Thanks to Arthur Chan, Gary Gregory.
+* CODEC-314: Fix possible IndexOutOfBoundsException in
PercentCodec.insertAlwaysEncodeChars() method #222. Thanks to Arthur Chan, Gary
Gregory.
+* Deprecate UnixCrypt 0-argument constructor. Thanks to Gary
Gregory.
+* Deprecate Md5Crypt 0-argument constructor. Thanks to Gary
Gregory.
+* Deprecate Crypt 0-argument constructor. Thanks to Gary Gregory.
+* Deprecate StringUtils 0-argument constructor. Thanks to Gary
Gregory.
+* Deprecate Resources 0-argument constructor. Thanks to Gary
Gregory.
+* Deprecate Charsets 0-argument constructor. Thanks to Gary
Gregory.
+* Deprecate CharEncoding 0-argument constructor. Thanks to Gary
Gregory.
+* Add missing version for animal-sniffer-maven-plugin. Thanks to
Gary Gregory.
+
+Changes
+-------
+
+* Bump commons-parent from 58 to 66. Thanks to Dependabot, Gary
Gregory.
+* Bump commons-lang3 from 3.12.0 to 3.14.0. Thanks to Gary Gregory.
+* Bump commons-io from 2.13.0 to 2.15.1. Thanks to Gary Gregory.
+
+
+For complete information on Apache Commons Codec, including instructions on
how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page:
https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------
+
+ Apache Commons Codec 1.16.0
+
+The Apache Commons Codec package contains simple encoder and decoders for
+various formats such as Base64 and Hexadecimal. In addition to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+Feature and fix release.
+
+Changes in this version include:
+
+New features
+------------
+
+* CODEC-296: Add support for Blake3 family of hashes. Thanks to Matt Sicker.
+* Add github/codeql-action.
+
+Fixed Bugs
+----------
+
+* CODEC-295: Minor improvements #67. Thanks to Arturo Bernal.
+* Remove duplicated words from Javadocs. Thanks to James Gan.
+* CODEC-301: Simplify assertion #84. Thanks to Alexander Pinske, Alex Herbert.
+* CODEC-300: Simplify assertion #84. Thanks to Arturo Bernal.
+* CODEC-298: Use Standard Charset object #82. Thanks to Arturo Bernal.
+* Use String.contains() functions #125. Thanks to Arturo Bernal.
+* Avoid use toString() or substring() in favor of a simplified
expression #126. Thanks to Arturo Bernal.
+* CODEC-305: Fix byte-skipping in Base16 decoding #135. Thanks to Florian.
+* Fix several typos, improve writing in some javadocs #139. Thanks
to Marc Wrobel.
+* BaseNCodecOutputStream.eof() should not throw IOException.
Thanks to Gary Gregory.
+* Javadoc improvements and cleanups. Thanks to Gary Gregory.
+* Deprecate BaseNCodec.isWhiteSpace(byte) and use
Character.isWhitespace(int). Thanks to Gary Gregory.
+
+Changes
+-------
+
+* Bump actions/cache from v2 to v3.0.10 #75, #99, #119, #138,
#149, #152. Thanks to Dependabot, Gary Gregory.
+* Bump actions/setup-java from v1.4.1 to 3.5.1 #60, #62, #121.
Thanks to Dependabot, Gary Gregory.
+* Bump actions/checkout from 2.3.2 to 3.1.0 #65, #98, #114, #153.
Thanks to Dependabot, Gary Gregory.
+* Bump commons-parent from 52 to 58, #147, #165, #170. Thanks to
Dependabot, Gary Gregory.
+* CODEC-285: Bump junit from 4.13.1 to 5.9.1 #76, #39, #140, #148. Thanks to
Dependabot, John Patrick.
+* Bump Java 7 to 8. Thanks to Gary Gregory.
+* Bump japicmp-maven-plugin from 0.14.3 to 0.17.1. Thanks to Gary
Gregory.
+* Bump jacoco-maven-plugin from 0.8.5 to 0.8.8 (Fixes Java 15
builds). Thanks to Gary Gregory.
+* Bump maven-surefire-plugin from 2.22.2 to 3.0.0-M7 #122, #134.
Thanks to Gary Gregory.
+* Bump maven-javadoc-plugin from 3.2.0 to 3.4.1. Thanks to Gary
Gregory.
+* Bump animal-sniffer-maven-plugin from 1.19 to 1.22. Thanks to
Gary Gregory.
+* Bump maven-pmd-plugin from 3.13.0 to 3.19.0, #133, #142, #145.
Thanks to Gary Gregory, Dependabot.
+* Bump pmd from 6.47.0 to 6.52.0. Thanks to Gary Gregory.
+* Bump maven-checkstyle-plugin from 2.17 to 3.2.0 #143. Thanks to
Gary Gregory.
+* Bump checkstyle from 8.45.1 to 9.3 #97, #100, #101, #103. Thanks
to Dependabot.
+* Bump taglist-maven-plugin from 2.4 to 3.0.0 #102. Thanks to
Dependabot.
+* Bump jacoco-maven-plugin from 0.8.7 to 0.8.8. Thanks to Gary
Gregory.
+
+
+For complete information on Apache Commons Codec, including instructions on
how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page:
https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------
Copied: release/commons/codec/binaries/commons-codec-1.21.0-bin.tar.gz (from
r82171, dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.tar.gz)
==============================================================================
Binary file (source and/or target). No diff available.
Copied: release/commons/codec/binaries/commons-codec-1.21.0-bin.tar.gz.asc
(from r82171,
dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.tar.gz.asc)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ release/commons/codec/binaries/commons-codec-1.21.0-bin.tar.gz.asc Thu Jan
29 19:04:07 2026 (r82172, copy of r82171,
dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.tar.gz.asc)
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+
+iHUEABYKAB0WIQT03VnJAUi9xSvrkKRTCqXyXCUBHwUCaXODFAAKCRBTCqXyXCUB
+HxzzAQCOCno0M/XEd6bFJGoycT2yXLf46A7F0d9LseVphqZBKAD/Ye75C11c4llV
+vXLFuWac8K6osCxTeDTu48RAX58zgQo=
+=UM4m
+-----END PGP SIGNATURE-----
Copied: release/commons/codec/binaries/commons-codec-1.21.0-bin.tar.gz.sha512
(from r82171,
dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.tar.gz.sha512)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ release/commons/codec/binaries/commons-codec-1.21.0-bin.tar.gz.sha512
Thu Jan 29 19:04:07 2026 (r82172, copy of r82171,
dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.tar.gz.sha512)
@@ -0,0 +1 @@
+2131daec9fd83af950b1d9e6a437967ae919947fb1a51180f88e9e1b4420966d31a87872a18f40f6a7771692973f363b894771b2c7adb298300cbeb3a1d74232
Copied: release/commons/codec/binaries/commons-codec-1.21.0-bin.zip (from
r82171, dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.zip)
==============================================================================
Binary file (source and/or target). No diff available.
Copied: release/commons/codec/binaries/commons-codec-1.21.0-bin.zip.asc (from
r82171, dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.zip.asc)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ release/commons/codec/binaries/commons-codec-1.21.0-bin.zip.asc Thu Jan
29 19:04:07 2026 (r82172, copy of r82171,
dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.zip.asc)
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+
+iHUEABYKAB0WIQT03VnJAUi9xSvrkKRTCqXyXCUBHwUCaXODFAAKCRBTCqXyXCUB
+H1iKAQCJxBM+7Eldt0vJaAnDr9MQlcJQKokcudGZorgg5uyBwgEAn1pPOasPsmPb
+2NuCcN4FPFGtiDTx2gJPInzJ5A/X6gI=
+=AAbf
+-----END PGP SIGNATURE-----
Copied: release/commons/codec/binaries/commons-codec-1.21.0-bin.zip.sha512
(from r82171,
dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.zip.sha512)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ release/commons/codec/binaries/commons-codec-1.21.0-bin.zip.sha512 Thu Jan
29 19:04:07 2026 (r82172, copy of r82171,
dev/commons/codec/1.21.0-RC1/binaries/commons-codec-1.21.0-bin.zip.sha512)
@@ -0,0 +1 @@
+cbc3ab9a17c8b41c20c01d7ac2807fb429b6dce4dbea8d48bd581743f8ab08c629709bf4ad2f40017920cf240c2a4402efaa7b252b22233458f0d5e91483b4f2
Copied: release/commons/codec/source/commons-codec-1.21.0-src.tar.gz (from
r82171, dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.tar.gz)
==============================================================================
Binary file (source and/or target). No diff available.
Copied: release/commons/codec/source/commons-codec-1.21.0-src.tar.gz.asc (from
r82171, dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.tar.gz.asc)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ release/commons/codec/source/commons-codec-1.21.0-src.tar.gz.asc Thu Jan
29 19:04:07 2026 (r82172, copy of r82171,
dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.tar.gz.asc)
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+
+iHUEABYKAB0WIQT03VnJAUi9xSvrkKRTCqXyXCUBHwUCaXODFAAKCRBTCqXyXCUB
+H7jAAQDcN/t4nILYbFdf0wu6Suy8+VO4ojbPh/FVstzufPHShgD+MUFSn9TsEdpJ
+SmQOcQF8eJ2+EDoTeJO70ecZ8fQWTAc=
+=pQHr
+-----END PGP SIGNATURE-----
Copied: release/commons/codec/source/commons-codec-1.21.0-src.tar.gz.sha512
(from r82171,
dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.tar.gz.sha512)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ release/commons/codec/source/commons-codec-1.21.0-src.tar.gz.sha512 Thu Jan
29 19:04:07 2026 (r82172, copy of r82171,
dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.tar.gz.sha512)
@@ -0,0 +1 @@
+62521f0e0a35729d37cf8e297ea3ff14badfcd002497b57a2ce39ec11aa3f729a6f3357b8233a9162c2ff4e612072c6a0216549a74dd7d27ded4b844541f3e8e
Copied: release/commons/codec/source/commons-codec-1.21.0-src.zip (from r82171,
dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.zip)
==============================================================================
Binary file (source and/or target). No diff available.
Copied: release/commons/codec/source/commons-codec-1.21.0-src.zip.asc (from
r82171, dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.zip.asc)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ release/commons/codec/source/commons-codec-1.21.0-src.zip.asc Thu Jan
29 19:04:07 2026 (r82172, copy of r82171,
dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.zip.asc)
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+
+iHUEABYKAB0WIQT03VnJAUi9xSvrkKRTCqXyXCUBHwUCaXODFAAKCRBTCqXyXCUB
+H6CWAQDxx/XQW9U+c7jrH/wVXGnfzpGBZBxglbWJO4istWfoVgEA7el3SsWnmDkS
+S55pfSqk9dLlXjHjlrncjU23DJvW5AM=
+=QuzB
+-----END PGP SIGNATURE-----
Copied: release/commons/codec/source/commons-codec-1.21.0-src.zip.sha512 (from
r82171, dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.zip.sha512)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ release/commons/codec/source/commons-codec-1.21.0-src.zip.sha512 Thu Jan
29 19:04:07 2026 (r82172, copy of r82171,
dev/commons/codec/1.21.0-RC1/source/commons-codec-1.21.0-src.zip.sha512)
@@ -0,0 +1 @@
+90a65da2e14231a1acead80d91fb93ea97ddb9998e90044b667d8b2b3f9816ab77b599d61e7b0590b1e801b1ab7a977c25c3bc6e3e465f9e48b266fb2927152d