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-io.git
The following commit(s) were added to refs/heads/master by this push:
new f141f09d9 Prepare for the next release candidate
f141f09d9 is described below
commit f141f09d91368543e4f0754cbd649c484768c55c
Author: Gary Gregory <[email protected]>
AuthorDate: Tue Nov 4 20:16:31 2025 +0000
Prepare for the next release candidate
---
README.md | 6 ++--
RELEASE-NOTES.txt | 78 +++++++++++++++++++++++++++++++++++++++++++
src/changes/changes.xml | 2 +-
src/site/xdoc/download_io.xml | 26 +++++++--------
4 files changed, 95 insertions(+), 17 deletions(-)
diff --git a/README.md b/README.md
index bb31ce854..36a82594a 100644
--- a/README.md
+++ b/README.md
@@ -45,7 +45,7 @@ Apache Commons IO
[](https://github.com/apache/commons-io/actions/workflows/maven.yml)
[](https://search.maven.org/artifact/commons-io/commons-io)
-[](https://javadoc.io/doc/commons-io/commons-io/2.20.0)
+[](https://javadoc.io/doc/commons-io/commons-io/2.21.0)
[](https://github.com/apache/commons-io/actions/workflows/codeql-analysis.yml)
[](https://api.securityscorecards.dev/projects/github.com/apache/commons-io)
@@ -69,7 +69,7 @@ Alternatively, you can pull it from the central Maven
repositories:
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
- <version>2.20.0</version>
+ <version>2.21.0</version>
</dependency>
```
@@ -90,7 +90,7 @@ There are some guidelines which will make applying PRs easier
for us:
+ Respect the existing code style for each file.
+ 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.
++ Before you push a PR, run `mvn` (without arguments). 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 -Pjacoco`
If you plan to contribute on a regular basis, please consider filing a
[contributor license agreement](https://www.apache.org/licenses/#clas).
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 1f30f8b0f..3f84b5174 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -1,4 +1,82 @@
+Apache Commons IO 2.21.0 Release Notes
+
+The Apache Commons IO team is pleased to announce the release of Apache
Commons IO 2.21.0.
+
+Introduction
+------------
+
+The Apache Commons IO library contains utility classes, stream
implementations, file filters,
+file comparators, endian transformation classes, and much more.
+
+Version 2.21.0: Java 8 or later is required.
+
+New features
+------------
+
+o FileUtils#byteCountToDisplaySize() supports Zettabyte, Yottabyte,
Ronnabyte and Quettabyte #763. Thanks to strangelookingnerd, Gary Gregory.
+o Add org.apache.commons.io.FileUtils.ONE_RB #763. Thanks to
strangelookingnerd, Gary Gregory.
+o Add org.apache.commons.io.FileUtils.ONE_QB #763. Thanks to
strangelookingnerd, Gary Gregory.
+o Add
org.apache.commons.io.output.ProxyOutputStream.writeRepeat(byte[], int, int,
long). Thanks to Gary Gregory.
+o Add
org.apache.commons.io.output.ProxyOutputStream.writeRepeat(byte[], long).
Thanks to Gary Gregory.
+o Add org.apache.commons.io.output.ProxyOutputStream.writeRepeat(int,
long). Thanks to Gary Gregory.
+o Add length unit support in FileSystem limits. Thanks to Piotr P.
Karwasz.
+o Add IOUtils.toByteArray(InputStream, int, int) for safer chunked
reading with size validation. Thanks to Piotr P. Karwasz.
+o Add org.apache.commons.io.file.PathUtils.getPath(String, String).
Thanks to Gary Gregory.
+o Add org.apache.commons.io.channels.ByteArraySeekableByteChannel.
Thanks to Gary Gregory.
+o Add IOIterable.asIterable(). Thanks to Gary Gregory.
+o Add NIO channel support to `AbstractStreamBuilder`. Thanks to Piotr
P. Karwasz.
+o Add CloseShieldChannel to close-shielded NIO Channels #786. Thanks
to Piotr P. Karwasz.
+o Added IOUtils.checkFromIndexSize as a Java 8 backport of
Objects.checkFromIndexSize #790. Thanks to Piotr P. Karwasz.
+
+Fixed Bugs
+----------
+
+o When testing on Java 21 and up, enable
-XX:+EnableDynamicAgentLoading. Thanks to Gary Gregory.
+o When testing on Java 24 and up, don't fail FileUtilsListFilesTest
for a different behavior in the JRE. Thanks to Gary Gregory.
+o ValidatingObjectInputStream does not validate dynamic proxy
interfaces. Thanks to Stanislav Fort, Gary Gregory.
+o BoundedInputStream.getRemaining() now reports Long.MAX_VALUE
instead of 0 when no limit is set. Thanks to Piotr P. Karwasz.
+o BoundedInputStream.available() correctly accounts for the maximum
read limit. Thanks to Piotr P. Karwasz.
+o Deprecate IOUtils.readFully(InputStream, int) in favor of
toByteArray(InputStream, int). Thanks to Gary Gregory, Piotr P. Karwasz.
+o IOUtils.toByteArray(InputStream) now throws IOException on byte
array overflow. Thanks to Piotr P. Karwasz.
+o Javadoc general improvements. Thanks to Gary Gregory, Piotr P.
Karwasz.
+o IOUtils.toByteArray() now throws EOFException when not enough data
is available #796. Thanks to Piotr P. Karwasz.
+o Fix IOUtils.skip() usage in concurrent scenarios. Thanks to Piotr
P. Karwasz.
+o [javadoc] Fix XmlStreamReader Javadoc to indicate the correct class
that is built #806. Thanks to J Hawkins.
+
+Changes
+-------
+
+o Bump org.apache.commons:commons-parent from 85 to 91 #774, #783,
#808. Thanks to Gary Gregory, Dependabot.
+o [test] Bump commons-codec:commons-codec from 1.18.0 to 1.19.0.
Thanks to Gary Gregory.
+o [test] Bump commons.bytebuddy.version from 1.17.6 to 1.17.8 #769.
Thanks to Gary Gregory, Dependabot.
+o [test] Bump org.apache.commons:commons-lang3 from 3.18.0 to 3.19.0.
Thanks to Gary Gregory.
+
+Removed
+-------
+
+o Inline private constant field ProxyInputStream.exceptionHandler
#780. Thanks to Piotr P. Karwasz.
+Commons IO 2.7 and up requires Java 8 or above.
+Commons IO 2.6 requires Java 7 or above.
+Commons IO 2.3 through 2.5 requires Java 6 or above.
+Commons IO 2.2 requires Java 5 or above.
+Commons IO 1.4 requires Java 1.3 or above.
+
+Historical list of changes:
https://commons.apache.org/proper/commons-io/changes.html
+
+For complete information on Apache Commons IO, including instructions on how
to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons IO website:
+
+https://commons.apache.org/proper/commons-io/
+
+Download page: https://commons.apache.org/proper/commons-io/download_io.cgi
+
+Have fun!
+-Apache Commons Team
+
+------------------------------------------------------------------------------
+
+
Apache Commons IO 2.20.0 Release Notes
The Apache Commons IO team is pleased to announce the release of Apache
Commons IO 2.20.0.
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 07bb304a5..23a7d3b40 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -45,7 +45,7 @@ The <action> type attribute can be add,update,fix,remove.
<title>Apache Commons IO Release Notes</title>
</properties>
<body>
- <release version="2.21.0" date="YYYY-MM-DD" description="Version 2.21.0:
Java 8 or later is required.">
+ <release version="2.21.0" date="2025-11-04" description="Version 2.21.0:
Java 8 or later is required.">
<!-- FIX -->
<action type="fix" dev="ggregory" due-to="Gary
Gregory">When testing on Java 21 and up, enable
-XX:+EnableDynamicAgentLoading.</action>
<action type="fix" dev="ggregory" due-to="Gary
Gregory">When testing on Java 24 and up, don't fail FileUtilsListFilesTest for
a different behavior in the JRE.</action>
diff --git a/src/site/xdoc/download_io.xml b/src/site/xdoc/download_io.xml
index 567d26532..6a0ba144c 100644
--- a/src/site/xdoc/download_io.xml
+++ b/src/site/xdoc/download_io.xml
@@ -115,32 +115,32 @@ limitations under the License.
</p>
</subsection>
</section>
- <section name="Apache Commons IO 2.20.0 (requires Java 8)">
+ <section name="Apache Commons IO 2.21.0 (requires Java 8)">
<subsection name="Binaries">
<table>
<tr>
- <td><a
href="[preferred]/commons/io/binaries/commons-io-2.20.0-bin.tar.gz">commons-io-2.20.0-bin.tar.gz</a></td>
- <td><a
href="https://downloads.apache.org/commons/io/binaries/commons-io-2.20.0-bin.tar.gz.sha512">sha512</a></td>
- <td><a
href="https://downloads.apache.org/commons/io/binaries/commons-io-2.20.0-bin.tar.gz.asc">pgp</a></td>
+ <td><a
href="[preferred]/commons/io/binaries/commons-io-2.21.0-bin.tar.gz">commons-io-2.21.0-bin.tar.gz</a></td>
+ <td><a
href="https://downloads.apache.org/commons/io/binaries/commons-io-2.21.0-bin.tar.gz.sha512">sha512</a></td>
+ <td><a
href="https://downloads.apache.org/commons/io/binaries/commons-io-2.21.0-bin.tar.gz.asc">pgp</a></td>
</tr>
<tr>
- <td><a
href="[preferred]/commons/io/binaries/commons-io-2.20.0-bin.zip">commons-io-2.20.0-bin.zip</a></td>
- <td><a
href="https://downloads.apache.org/commons/io/binaries/commons-io-2.20.0-bin.zip.sha512">sha512</a></td>
- <td><a
href="https://downloads.apache.org/commons/io/binaries/commons-io-2.20.0-bin.zip.asc">pgp</a></td>
+ <td><a
href="[preferred]/commons/io/binaries/commons-io-2.21.0-bin.zip">commons-io-2.21.0-bin.zip</a></td>
+ <td><a
href="https://downloads.apache.org/commons/io/binaries/commons-io-2.21.0-bin.zip.sha512">sha512</a></td>
+ <td><a
href="https://downloads.apache.org/commons/io/binaries/commons-io-2.21.0-bin.zip.asc">pgp</a></td>
</tr>
</table>
</subsection>
<subsection name="Source">
<table>
<tr>
- <td><a
href="[preferred]/commons/io/source/commons-io-2.20.0-src.tar.gz">commons-io-2.20.0-src.tar.gz</a></td>
- <td><a
href="https://downloads.apache.org/commons/io/source/commons-io-2.20.0-src.tar.gz.sha512">sha512</a></td>
- <td><a
href="https://downloads.apache.org/commons/io/source/commons-io-2.20.0-src.tar.gz.asc">pgp</a></td>
+ <td><a
href="[preferred]/commons/io/source/commons-io-2.21.0-src.tar.gz">commons-io-2.21.0-src.tar.gz</a></td>
+ <td><a
href="https://downloads.apache.org/commons/io/source/commons-io-2.21.0-src.tar.gz.sha512">sha512</a></td>
+ <td><a
href="https://downloads.apache.org/commons/io/source/commons-io-2.21.0-src.tar.gz.asc">pgp</a></td>
</tr>
<tr>
- <td><a
href="[preferred]/commons/io/source/commons-io-2.20.0-src.zip">commons-io-2.20.0-src.zip</a></td>
- <td><a
href="https://downloads.apache.org/commons/io/source/commons-io-2.20.0-src.zip.sha512">sha512</a></td>
- <td><a
href="https://downloads.apache.org/commons/io/source/commons-io-2.20.0-src.zip.asc">pgp</a></td>
+ <td><a
href="[preferred]/commons/io/source/commons-io-2.21.0-src.zip">commons-io-2.21.0-src.zip</a></td>
+ <td><a
href="https://downloads.apache.org/commons/io/source/commons-io-2.21.0-src.zip.sha512">sha512</a></td>
+ <td><a
href="https://downloads.apache.org/commons/io/source/commons-io-2.21.0-src.zip.asc">pgp</a></td>
</tr>
</table>
</subsection>