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.

-
+
- - - + + + - - - + + +
commons-io-2.16.1-bin.tar.gzsha512pgpcommons-io-2.17.0-bin.tar.gzsha512pgp
commons-io-2.16.1-bin.zipsha512pgpcommons-io-2.17.0-bin.zipsha512pgp
- - - + + + - - - + + +
commons-io-2.16.1-src.tar.gzsha512pgpcommons-io-2.17.0-src.tar.gzsha512pgp
commons-io-2.16.1-src.zipsha512pgpcommons-io-2.17.0-src.zipsha512pgp