This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-codec.git
The following commit(s) were added to refs/heads/master by this push: new 0d501b60 Prepare for the next release candidate 0d501b60 is described below commit 0d501b60e50ea50e247d8d804945b9a39974ed52 Author: Gary D. Gregory <garydgreg...@gmail.com> AuthorDate: Sat Jul 19 17:13:10 2025 +0000 Prepare for the next release candidate --- CONTRIBUTING.md | 4 +-- README.md | 6 ++-- RELEASE-NOTES.txt | 63 ++++++++++++++++++++++++++++++++++++++++ src/changes/changes.xml | 2 +- src/site/xdoc/download_codec.xml | 26 ++++++++--------- 5 files changed, 82 insertions(+), 19 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1b6577ae..33e39754 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -61,11 +61,11 @@ Making Changes + Create a _topic branch_ for your isolated work. * Usually you should base your branch from the `master` branch. - * A good topic branch name can be the JIRA bug ID plus a keyword, for example, `CODEC-123-InputStream`. + * A good topic branch name can be the JIRA bug ID plus a keyword, e.g. `CODEC-123-InputStream`. * If you have submitted multiple JIRA issues, try to maintain separate branches and pull requests. + Make commits of logical units. * Make sure your commit messages are meaningful and in the proper format. Your commit message should contain the key of the JIRA issue. - * For example, `[CODEC-123] Close input stream earlier` + * For example, `[CODEC-123] Close input stream sooner` + Respect the original code style: + Only use spaces for indentation; you can check for unnecessary whitespace with `git diff` before committing. + Create minimal diffs - disable _On Save_ actions like _Reformat Source Code_ or _Organize Imports_. If you feel the source code should be reformatted create a separate PR for this change first. diff --git a/README.md b/README.md index cc6e4ccd..b947428a 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Apache Commons Codec [](https://github.com/apache/commons-codec/actions/workflows/maven.yml) [](https://search.maven.org/artifact/commons-codec/commons-codec) -[](https://javadoc.io/doc/commons-codec/commons-codec/1.18.0) +[](https://javadoc.io/doc/commons-codec/commons-codec/1.19.0) [](https://github.com/apache/commons-codec/actions/workflows/codeql-analysis.yml) [](https://api.securityscorecards.dev/projects/github.com/apache/commons-codec) @@ -71,7 +71,7 @@ Alternatively, you can pull it from the central Maven repositories: <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> - <version>1.18.0</version> + <version>1.19.0</version> </dependency> ``` @@ -93,7 +93,7 @@ There are some guidelines which will make applying PRs easier for us: + Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted create a separate PR for this change. + Provide JUnit tests for your changes and make sure your changes don't break any existing tests by running `mvn`. + Before you pushing a PR, run `mvn` (by itself), this runs the default goal, which contains all build checks. -+ To see the code coverage report, regardless of coverage failures, run `mvn clean site -Dcommons.jacoco.haltOnFailure=false` ++ To see the code coverage report, regardless of coverage failures, run `mvn clean site -Dcommons.jacoco.haltOnFailure=false -Pjacoco` If you plan to contribute on a regular basis, please consider filing a [contributor license agreement](https://www.apache.org/licenses/#clas). You can learn more about contributing via GitHub in our [contribution guidelines](CONTRIBUTING.md). diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 8f74dff2..8b1aa656 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,3 +1,66 @@ +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 ----------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index b83006ce..ab5f9a60 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -43,7 +43,7 @@ The <action> type attribute can be add,update,fix,remove. <author>Apache Commons Developers</author> </properties> <body> - <release version="1.19.0" date="YYYY-MM-DD" description="This is a feature and maintenance release. Java 8 or later is required."> + <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> diff --git a/src/site/xdoc/download_codec.xml b/src/site/xdoc/download_codec.xml index 35b84305..c48c855f 100644 --- a/src/site/xdoc/download_codec.xml +++ b/src/site/xdoc/download_codec.xml @@ -115,32 +115,32 @@ limitations under the License. </p> </subsection> </section> - <section name="Apache Commons Codec 1.18.0 "> + <section name="Apache Commons Codec 1.19.0 "> <subsection name="Binaries"> <table> <tr> - <td><a href="[preferred]/commons/codec/binaries/commons-codec-1.18.0-bin.tar.gz">commons-codec-1.18.0-bin.tar.gz</a></td> - <td><a href="https://downloads.apache.org/commons/codec/binaries/commons-codec-1.18.0-bin.tar.gz.sha512">sha512</a></td> - <td><a href="https://downloads.apache.org/commons/codec/binaries/commons-codec-1.18.0-bin.tar.gz.asc">pgp</a></td> + <td><a href="[preferred]/commons/codec/binaries/commons-codec-1.19.0-bin.tar.gz">commons-codec-1.19.0-bin.tar.gz</a></td> + <td><a href="https://downloads.apache.org/commons/codec/binaries/commons-codec-1.19.0-bin.tar.gz.sha512">sha512</a></td> + <td><a href="https://downloads.apache.org/commons/codec/binaries/commons-codec-1.19.0-bin.tar.gz.asc">pgp</a></td> </tr> <tr> - <td><a href="[preferred]/commons/codec/binaries/commons-codec-1.18.0-bin.zip">commons-codec-1.18.0-bin.zip</a></td> - <td><a href="https://downloads.apache.org/commons/codec/binaries/commons-codec-1.18.0-bin.zip.sha512">sha512</a></td> - <td><a href="https://downloads.apache.org/commons/codec/binaries/commons-codec-1.18.0-bin.zip.asc">pgp</a></td> + <td><a href="[preferred]/commons/codec/binaries/commons-codec-1.19.0-bin.zip">commons-codec-1.19.0-bin.zip</a></td> + <td><a href="https://downloads.apache.org/commons/codec/binaries/commons-codec-1.19.0-bin.zip.sha512">sha512</a></td> + <td><a href="https://downloads.apache.org/commons/codec/binaries/commons-codec-1.19.0-bin.zip.asc">pgp</a></td> </tr> </table> </subsection> <subsection name="Source"> <table> <tr> - <td><a href="[preferred]/commons/codec/source/commons-codec-1.18.0-src.tar.gz">commons-codec-1.18.0-src.tar.gz</a></td> - <td><a href="https://downloads.apache.org/commons/codec/source/commons-codec-1.18.0-src.tar.gz.sha512">sha512</a></td> - <td><a href="https://downloads.apache.org/commons/codec/source/commons-codec-1.18.0-src.tar.gz.asc">pgp</a></td> + <td><a href="[preferred]/commons/codec/source/commons-codec-1.19.0-src.tar.gz">commons-codec-1.19.0-src.tar.gz</a></td> + <td><a href="https://downloads.apache.org/commons/codec/source/commons-codec-1.19.0-src.tar.gz.sha512">sha512</a></td> + <td><a href="https://downloads.apache.org/commons/codec/source/commons-codec-1.19.0-src.tar.gz.asc">pgp</a></td> </tr> <tr> - <td><a href="[preferred]/commons/codec/source/commons-codec-1.18.0-src.zip">commons-codec-1.18.0-src.zip</a></td> - <td><a href="https://downloads.apache.org/commons/codec/source/commons-codec-1.18.0-src.zip.sha512">sha512</a></td> - <td><a href="https://downloads.apache.org/commons/codec/source/commons-codec-1.18.0-src.zip.asc">pgp</a></td> + <td><a href="[preferred]/commons/codec/source/commons-codec-1.19.0-src.zip">commons-codec-1.19.0-src.zip</a></td> + <td><a href="https://downloads.apache.org/commons/codec/source/commons-codec-1.19.0-src.zip.sha512">sha512</a></td> + <td><a href="https://downloads.apache.org/commons/codec/source/commons-codec-1.19.0-src.zip.asc">pgp</a></td> </tr> </table> </subsection>