From fa00f5ebcdbd5df625e2fdbffc1f7bc74f0d9ba7 Mon Sep 17 00:00:00 2001
From: Gary Gregory
Date: Sun, 15 Sep 2024 14:43:36 +0000
Subject: [PATCH] Prepare for the next release candidate
---
CONTRIBUTING.md | 9 ++--
README.md | 12 +++--
RELEASE-NOTES.txt | 90 +++++++++++++++++++++++++++++++++++
src/changes/changes.xml | 2 +-
src/site/xdoc/download_io.xml | 26 +++++-----
5 files changed, 115 insertions(+), 24 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 1205cba551b..5202076f1f6 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -41,9 +41,8 @@
Contributing to Apache Commons IO
======================
-You have found a bug or you have an idea for a cool new feature? Contributing code is a great way to give something back to
-the open source community. Before you dig right into the code there are a few guidelines that we need contributors to
-follow so that we can have a chance of keeping on top of things.
+Have you found a bug or have an idea for a cool new feature? Contributing code is a great way to give something back to the open-source community.
+Before you dig right into the code, we need contributors to follow a few guidelines to have a chance of keeping on top of things.
Getting Started
---------------
@@ -62,7 +61,7 @@ Making Changes
+ Create a _topic branch_ for your isolated work.
* Usually you should base your branch on the `master` branch.
- * A good topic branch name can be the JIRA bug id plus a keyword, e.g. `IO-123-InputStream`.
+ * A good topic branch name can be the JIRA bug ID plus a keyword, e.g. `IO-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.
@@ -72,7 +71,7 @@ Making Changes
+ 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.
+ Check for unnecessary whitespace with `git diff` -- check before committing.
+ Make sure you have added the necessary tests for your changes, typically in `src/test/java`.
-+ Run all the tests with `mvn clean verify` to assure nothing else was accidentally broken.
++ Run all the tests with `mvn clean verify` to ensure nothing else was accidentally broken.
Making Trivial Changes
----------------------
diff --git a/README.md b/README.md
index 6b9f9d0ddf7..5d1d6ce2e55 100644
--- a/README.md
+++ b/README.md
@@ -45,7 +45,7 @@ Apache Commons IO
[![Java CI](https://github.com/apache/commons-io/actions/workflows/maven.yml/badge.svg)](https://github.com/apache/commons-io/actions/workflows/maven.yml)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/commons-io/commons-io/badge.svg?gav=true)](https://maven-badges.herokuapp.com/maven-central/commons-io/commons-io/?gav=true)
-[![Javadocs](https://javadoc.io/badge/commons-io/commons-io/2.16.1.svg)](https://javadoc.io/doc/commons-io/commons-io/2.16.1)
+[![Javadocs](https://javadoc.io/badge/commons-io/commons-io/2.17.0.svg)](https://javadoc.io/doc/commons-io/commons-io/2.17.0)
[![CodeQL](https://github.com/apache/commons-io/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/apache/commons-io/actions/workflows/codeql-analysis.yml)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/apache/commons-io/badge)](https://api.securityscorecards.dev/projects/github.com/apache/commons-io)
@@ -63,20 +63,20 @@ Getting the latest release
--------------------------
You can download source and binaries from our [download page](https://commons.apache.org/proper/commons-io/download_io.cgi).
-Alternatively, you can pull it from the central Maven repositories:
+Alternatively, you can pull it from the central Maven repositories:
```xml
commons-io
commons-io
- 2.16.1
+ 2.17.0
```
Building
--------
-Building requires a Java JDK and [Apache Maven](https://maven.apache.org/).
+Building requires a Java JDK and [Apache Maven](https://maven.apache.org/).
The required Java version is found in the `pom.xml` as the `maven.compiler.source` property.
From a command shell, run `mvn` without arguments to invoke the default Maven goal to run all tests and checks.
@@ -89,7 +89,9 @@ There are some guidelines which will make applying PRs easier for us:
+ No tabs! Please use spaces for indentation.
+ 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```.
++ 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`
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 dc3be14ab0d..3ee17dadddf 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -1,4 +1,94 @@
+Apache Commons IO 2.17.0 Release Notes
+
+Introduction
+------------
+
+The Apache Commons IO library contains utility classes, stream implementations, file filters,
+file comparators, endian transformation classes, and much more.
+
+Java 8 is required.
+
+New features
+------------
+
+o Add IOIterator.adapt(Iterable). Thanks to Gary Gregory.
+o IO-831: Add getInputStream() for 'https' and 'http' in URIOrigin #630. Thanks to Elliotte Rusty Harold, Thach Le, Gary Gregory.
+o Add IOSupplier.getUnchecked(). Thanks to Gary Gregory.
+o Add CloseShieldInputStream.systemIn(InputStream). Thanks to Gary Gregory.
+o Add NullInputStream.init(). Thanks to Gary Gregory.
+o Add AbstractInputStream and refactor duplicate code. Thanks to Gary Gregory.
+o Add UnsynchronizedReader. Thanks to Gary Gregory.
+o Add UnsynchronizedBufferedReader. Thanks to Gary Gregory.
+
+Fixed Bugs
+----------
+
+o IO-858: FileUtilsWaitForTest does not test anything useful.
+o Add missing unit tests. Thanks to Gary Gregory.
+o FileUtils.lastModifiedFileTime(File) calls Objects.requireNonNull() on the wrong object. Thanks to Gary Gregory.
+o PathUtils.deleteOnExit(Path) calls Objects.requireNonNull() on the wrong object. Thanks to Gary Gregory.
+o Deprecate LineIterator.nextLine() in favor of next(). Thanks to Gary Gregory.
+o Fix PMD UnnecessaryFullyQualifiedName. Thanks to Gary Gregory.
+o Add test for CircularByteBuffer clear() #620. Thanks to sullis.
+o PathUtils.isPosix(Path, LinkOption...) should return false on null input. Thanks to Gary Gregory.
+o AutoCloseInputStream(InputStream) uses ClosedInputStream.INSTANCE when its input is null. Thanks to Gary Gregory.
+o Avoid NullPointerException in ProxyInputStream.available() when the underlying input stream is null. Thanks to Gary Gregory.
+o Avoid NullPointerException in ProxyInputStream.markSupported() when the underlying input stream is null. Thanks to Gary Gregory.
+o Avoid NullPointerException in ProxyInputStream.mark(int) when the underlying input stream is null. Thanks to Gary Gregory.
+o BufferedFileChannelInputStream.available() returns 0 before any reads. Thanks to Gary Gregory.
+o BufferedFileChannelInputStream.available() should return 0 instead of -1 at the end of the stream. Thanks to Gary Gregory.
+o BufferedFileChannelInputStream.available() should return 0 when the stream is closed instead of throwing an exception. Thanks to Gary Gregory.
+o CharSequenceInputStream.available() should return 0 after the stream is closed. Thanks to Gary Gregory.
+o BoundedInputStream.available() should return 0 when the stream is closed. Thanks to Gary Gregory.
+o CircularInputStream.available() should return 0 when the stream is closed. Thanks to Gary Gregory.
+o InfiniteCircularInputStream.available() should return 0 when the stream is closed. Thanks to Gary Gregory.
+o ChecksumInputStream(InputStream, Checksum, long, long) should fail-fast on null Checksum input. Thanks to Gary Gregory.
+o Deprecate NullInputStream.INSTANCE in favor of constructors. Thanks to Gary Gregory.
+o NullInputStream.available() should return 0 after the stream is closed. Thanks to Gary Gregory.
+o MemoryMappedFileInputStream.available() should return 0 after the stream is closed. Thanks to Gary Gregory.
+o RandomAccessFileInputStream.available() should return 0 after the stream is closed. Thanks to Gary Gregory.
+o ReaderInputStream.available() should return 0 after the stream is closed. Thanks to Gary Gregory.
+o AutoCloseInputStream does not call handleIOException() on close() when the proxied stream throws an IOException. Thanks to Gary Gregory.
+o BoundedInputStream does not call handleIOException() on close() when the proxied stream throws an IOException. Thanks to Gary Gregory.
+o NullInputStream.read(*) should throw IOException when it is closed. Thanks to Gary Gregory.
+o NullInputStream.read(byte[]) should return 0 when the input byte array in length 0. Thanks to Gary Gregory.
+o NullInputStream.read(byte[], int, int) should return 0 when the input byte array in length 0 or requested length is 0. Thanks to Gary Gregory.
+o MarkShieldInputStream.read(*) should throw IOException when it is closed. Thanks to Gary Gregory.
+o Replace deprecated constant FileFileFilter.FILE in Javadoc #657. Thanks to aelaort.
+o Pick up exec-maven-plugin version from parent POM. Thanks to Gary Gregory.
+
+Changes
+-------
+
+o Bump tests commons.bytebuddy.version from 1.14.13 to 1.15.1 #615, #621, #631, #635, #642, #658, #663, #665. Thanks to Dependabot.
+o Bump tests commons-codec:commons-codec from 1.16.1 to 1.17.1 #644. Thanks to Dependabot.
+o Bump org.codehaus.mojo:exec-maven-plugin from 3.2.0 to 3.4.1 #632, #652, #659. Thanks to Dependabot.
+o Bump org.apache.commons:commons-parent from 69 to 74 #628, #637, #649, #661, #664. Thanks to Dependabot.
+o Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0 #645, #653, #666. Thanks to Dependabot.
+
+
+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-report.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.16.1 Release Notes
Introduction
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 20569f4d965..c74335978f8 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -46,7 +46,7 @@ The type attribute can be add,update,fix,remove.
Apache Commons IO Release Notes
-
+
Add IOIterator.adapt(Iterable).
Add getInputStream() for 'https' and 'http' in URIOrigin #630.
diff --git a/src/site/xdoc/download_io.xml b/src/site/xdoc/download_io.xml
index dfbfa9c69a2..50f2f24bac6 100644
--- a/src/site/xdoc/download_io.xml
+++ b/src/site/xdoc/download_io.xml
@@ -113,32 +113,32 @@ limitations under the License.
-