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-lang.git
commit 2b254908077f7fab15d90b6c9e97cd3b74e39adf Author: Gary Gregory <[email protected]> AuthorDate: Mon Nov 10 23:43:17 2025 +0000 Prepare for the next release candidate --- CONTRIBUTING.md | 2 +- README.md | 4 +- RELEASE-NOTES.txt | 81 +++++++++++++++++++++++++++++++++-------- src/changes/changes.xml | 2 +- src/changes/release-notes.vm | 2 +- src/site/xdoc/download_lang.xml | 26 ++++++------- 6 files changed, 84 insertions(+), 33 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6566faba6..040ae7a3e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -69,7 +69,7 @@ Making Changes + 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. -+ Write unit tests that match behavioral changes, where the tests fail if the changes to the runtime are not applied. This may not always be possible but is a best practice. ++ Write unit tests that match behavioral changes, where the tests fail if the changes to the runtime are not applied. This may not always be possible but is a best-practice. Unit tests are typically in the `src/test/java` directory. + Run a successful build using the default [Maven](https://maven.apache.org/) goal with `mvn`; that's `mvn` on the command line by itself. + Write a pull request description that is detailed enough to understand what the pull request does, how, and why. diff --git a/README.md b/README.md index 111077f1b..1dbf9db97 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Apache Commons Lang [](https://github.com/apache/commons-lang/actions/workflows/maven.yml) [](https://search.maven.org/artifact/org.apache.commons/commons-lang3) -[](https://javadoc.io/doc/org.apache.commons/commons-lang3/3.19.0) +[](https://javadoc.io/doc/org.apache.commons/commons-lang3/3.20.0) [](https://github.com/apache/commons-lang/actions/workflows/codeql-analysis.yml) [](https://api.securityscorecards.dev/projects/github.com/apache/commons-lang) @@ -76,7 +76,7 @@ Alternatively, you can pull it from the central Maven repositories: <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> - <version>3.19.0</version> + <version>3.20.0</version> </dependency> ``` diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 81b2266a6..cf0e51314 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -14,6 +14,72 @@ 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. +Apache Commons Lang 3.20.0 Release Notes +---------------------------------------- + +The Apache Commons Lang team is pleased to announce the release of Apache Commons Lang 3.20.0. + +Commons Lang is a set of utility functions and reusable components that should be useful in any Java environment. + +Starting with Commons Lang 3.9, we target Java 8, using those features. + +For advice on upgrading from 2.x to 3.x, see: + + https://commons.apache.org/lang/article3_0.html + +Apache Commons Lang, a package of Java utility classes for the +classes that are in java.lang's hierarchy, or are considered to be so +standard as to justify existence in java.lang. + +The code is tested using the latest revision of the JDK for supported +LTS releases: 8, 11, 17 and 21 currently. +See https://github.com/apache/commons-lang/blob/master/.github/workflows/maven.yml + +Please ensure your build environment is up-to-date and kindly report any build issues. + +This is a feature and maintenance release. Java 8 or later is required. + +Changes in this version include: + +New features: +o Add SystemProperties.getPath(String, Supplier<Path>). Thanks to Gary Gregory. +o Add JavaVersion.JAVA_25. Thanks to Gary Gregory. +o Add JavaVersion.JAVA_26. Thanks to Gary Gregory. +o Add SystemUtils.IS_JAVA_25. Thanks to Gary Gregory. +o Add SystemUtils.IS_JAVA_26. Thanks to Gary Gregory. +o Add MutablePair.ofNonNull(Map.Entry). Thanks to jack5505, Gary Gregory. +o Add TimedSemaphore.builder(), Builder, and deprecate constructors. Thanks to Gary Gregory. +o LANG-1504: Adding labels and history to split StopWatch #1473. Thanks to Edwin Delgado H, Gary Gregory. + +Fixed Bugs: +o Optimize ObjectToStringComparator.compare() method #1449. Thanks to mayuming, Gary Gregory. +o [javadoc] Improve StringUtils Javadoc #1450. Thanks to Marcono1234, Gary Gregory. +o Fix internal inverted logic in private isEnum() method and correct its usage in getFirstEnum() #1454. Thanks to mayuming, Gary Gregory. +o Use accessors in ToStringStyle so subclasses can effectively override them. Thanks to William Degrange, Gary Gregory, Rob Spoor. +o `LocaleUtils.toLocale(String)` for a 2 letter country code now returns a value instead of throwing an `IllegalArgumentException`. Thanks to jack5505, Gary Gregory. +o Fix typo in StringUtils.trunctate() IllegalArgumentException message and test assertion messages. Thanks to mayuming, Gary Gregory. +o Fix test fixture in ReflectionDiffBuilderTest.testTransientFieldDifference() #1464. Thanks to mayuming, Gary Gregory. +o LANG-1789: NullPointerException when generating NoSuchMethodException in MethodUtils. Thanks to Hylke van der Schaaf, Gary Gregory. +o LANG-1786: Map deprecated TimeZone short IDs and avoid JRE WARNINGs to the console #1483. Thanks to Daniel Migowski, Gary Gregory, Lenny Primak. + +Changes: +o Bump org.apache.commons:commons-parent from 88 to 91 #1472. Thanks to Gary Gregory, Dependabot. + + +Historical list of changes: https://commons.apache.org/proper/commons-lang/changes.html + +For complete information on Apache Commons Lang, including instructions on how to submit bug reports, +patches, or suggestions for improvement, see the Apache Commons Lang website: + +https://commons.apache.org/proper/commons-lang/ + +Download page: https://commons.apache.org/proper/commons-lang/download_lang.cgi + +Have fun! +Apache Commons Team + +----------------------------------------------------------------------------- + Apache Commons Lang 3.19.0 Release Notes ---------------------------------------- @@ -140,21 +206,6 @@ Apache Commons Team ----------------------------------------------------------------------------- -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. - Apache Commons Lang 3.18.0 Release Notes ---------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 875ba4d9b..3a7d05624 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -44,7 +44,7 @@ The <action> type attribute can be add,update,fix,remove. <title>Apache Commons Lang Release Notes</title> </properties> <body> - <release version="3.20.0" date="YYYY-MM-DD" description="This is a feature and maintenance release. Java 8 or later is required."> + <release version="3.20.0" date="2025-11-10" description="This is a feature and maintenance release. Java 8 or later is required."> <!-- FIX --> <action type="fix" dev="ggregory" due-to="mayuming, Gary Gregory">Optimize ObjectToStringComparator.compare() method #1449.</action> <action type="fix" dev="ggregory" due-to="Marcono1234, Gary Gregory">[javadoc] Improve StringUtils Javadoc #1450.</action> diff --git a/src/changes/release-notes.vm b/src/changes/release-notes.vm index 16d5fb567..811694322 100644 --- a/src/changes/release-notes.vm +++ b/src/changes/release-notes.vm @@ -32,7 +32,7 @@ See the License for the specific language governing permissions and limitations under the License. ${project.name} ${version} Release Notes ------------------------------------------------- +---------------------------------------- The ${developmentTeam} is pleased to announce the release of ${project.name} ${version}. diff --git a/src/site/xdoc/download_lang.xml b/src/site/xdoc/download_lang.xml index 24ca64275..c10d85b82 100644 --- a/src/site/xdoc/download_lang.xml +++ b/src/site/xdoc/download_lang.xml @@ -115,32 +115,32 @@ limitations under the License. </p> </subsection> </section> - <section name="Apache Commons Lang 3.19.0 (Java 8+)"> + <section name="Apache Commons Lang 3.20.0 (Java 8+)"> <subsection name="Binaries"> <table> <tr> - <td><a href="[preferred]/commons/lang/binaries/commons-lang3-3.19.0-bin.tar.gz">commons-lang3-3.19.0-bin.tar.gz</a></td> - <td><a href="https://downloads.apache.org/commons/lang/binaries/commons-lang3-3.19.0-bin.tar.gz.sha512">sha512</a></td> - <td><a href="https://downloads.apache.org/commons/lang/binaries/commons-lang3-3.19.0-bin.tar.gz.asc">pgp</a></td> + <td><a href="[preferred]/commons/lang/binaries/commons-lang3-3.20.0-bin.tar.gz">commons-lang3-3.20.0-bin.tar.gz</a></td> + <td><a href="https://downloads.apache.org/commons/lang/binaries/commons-lang3-3.20.0-bin.tar.gz.sha512">sha512</a></td> + <td><a href="https://downloads.apache.org/commons/lang/binaries/commons-lang3-3.20.0-bin.tar.gz.asc">pgp</a></td> </tr> <tr> - <td><a href="[preferred]/commons/lang/binaries/commons-lang3-3.19.0-bin.zip">commons-lang3-3.19.0-bin.zip</a></td> - <td><a href="https://downloads.apache.org/commons/lang/binaries/commons-lang3-3.19.0-bin.zip.sha512">sha512</a></td> - <td><a href="https://downloads.apache.org/commons/lang/binaries/commons-lang3-3.19.0-bin.zip.asc">pgp</a></td> + <td><a href="[preferred]/commons/lang/binaries/commons-lang3-3.20.0-bin.zip">commons-lang3-3.20.0-bin.zip</a></td> + <td><a href="https://downloads.apache.org/commons/lang/binaries/commons-lang3-3.20.0-bin.zip.sha512">sha512</a></td> + <td><a href="https://downloads.apache.org/commons/lang/binaries/commons-lang3-3.20.0-bin.zip.asc">pgp</a></td> </tr> </table> </subsection> <subsection name="Source"> <table> <tr> - <td><a href="[preferred]/commons/lang/source/commons-lang3-3.19.0-src.tar.gz">commons-lang3-3.19.0-src.tar.gz</a></td> - <td><a href="https://downloads.apache.org/commons/lang/source/commons-lang3-3.19.0-src.tar.gz.sha512">sha512</a></td> - <td><a href="https://downloads.apache.org/commons/lang/source/commons-lang3-3.19.0-src.tar.gz.asc">pgp</a></td> + <td><a href="[preferred]/commons/lang/source/commons-lang3-3.20.0-src.tar.gz">commons-lang3-3.20.0-src.tar.gz</a></td> + <td><a href="https://downloads.apache.org/commons/lang/source/commons-lang3-3.20.0-src.tar.gz.sha512">sha512</a></td> + <td><a href="https://downloads.apache.org/commons/lang/source/commons-lang3-3.20.0-src.tar.gz.asc">pgp</a></td> </tr> <tr> - <td><a href="[preferred]/commons/lang/source/commons-lang3-3.19.0-src.zip">commons-lang3-3.19.0-src.zip</a></td> - <td><a href="https://downloads.apache.org/commons/lang/source/commons-lang3-3.19.0-src.zip.sha512">sha512</a></td> - <td><a href="https://downloads.apache.org/commons/lang/source/commons-lang3-3.19.0-src.zip.asc">pgp</a></td> + <td><a href="[preferred]/commons/lang/source/commons-lang3-3.20.0-src.zip">commons-lang3-3.20.0-src.zip</a></td> + <td><a href="https://downloads.apache.org/commons/lang/source/commons-lang3-3.20.0-src.zip.sha512">sha512</a></td> + <td><a href="https://downloads.apache.org/commons/lang/source/commons-lang3-3.20.0-src.zip.asc">pgp</a></td> </tr> </table> </subsection>
