Skip to content

Commit

Permalink
Prepare for the next release candidate
Browse files Browse the repository at this point in the history
  • Loading branch information
garydgregory committed Sep 15, 2024
1 parent 473839f commit fa00f5e
Show file tree
Hide file tree
Showing 5 changed files with 115 additions and 24 deletions.
9 changes: 4 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
---------------
Expand All @@ -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.
Expand All @@ -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
----------------------
Expand Down
12 changes: 7 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand All @@ -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
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.16.1</version>
<version>2.17.0</version>
</dependency>
```

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.
Expand All @@ -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).
Expand Down
90 changes: 90 additions & 0 deletions RELEASE-NOTES.txt
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion src/changes/changes.xml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ The <action> type attribute can be add,update,fix,remove.
<title>Apache Commons IO Release Notes</title>
</properties>
<body>
<release version="2.17.0" date="YYYY-MM-DD" description="Java 8 is required.">
<release version="2.17.0" date="2024-09-15" description="Java 8 is required.">
<!-- ADD -->
<action dev="ggregory" type="add" due-to="Gary Gregory">Add IOIterator.adapt(Iterable).</action>
<action dev="ggregory" type="add" issue="IO-831" due-to="Elliotte Rusty Harold, Thach Le, Gary Gregory">Add getInputStream() for 'https' and 'http' in URIOrigin #630.</action>
Expand Down
26 changes: 13 additions & 13 deletions src/site/xdoc/download_io.xml
Original file line number Diff line number Diff line change
Expand Up @@ -113,32 +113,32 @@ limitations under the License.
</p>
</subsection>
</section>
<section name="Apache Commons IO 2.16.1 (requires Java 8)">
<section name="Apache Commons IO 2.17.0 (requires Java 8)">
<subsection name="Binaries">
<table>
<tr>
<td><a href="[preferred]/commons/io/binaries/commons-io-2.16.1-bin.tar.gz">commons-io-2.16.1-bin.tar.gz</a></td>
<td><a href="https://downloads.apache.org/commons/io/binaries/commons-io-2.16.1-bin.tar.gz.sha512">sha512</a></td>
<td><a href="https://downloads.apache.org/commons/io/binaries/commons-io-2.16.1-bin.tar.gz.asc">pgp</a></td>
<td><a href="[preferred]/commons/io/binaries/commons-io-2.17.0-bin.tar.gz">commons-io-2.17.0-bin.tar.gz</a></td>
<td><a href="https://downloads.apache.org/commons/io/binaries/commons-io-2.17.0-bin.tar.gz.sha512">sha512</a></td>
<td><a href="https://downloads.apache.org/commons/io/binaries/commons-io-2.17.0-bin.tar.gz.asc">pgp</a></td>
</tr>
<tr>
<td><a href="[preferred]/commons/io/binaries/commons-io-2.16.1-bin.zip">commons-io-2.16.1-bin.zip</a></td>
<td><a href="https://downloads.apache.org/commons/io/binaries/commons-io-2.16.1-bin.zip.sha512">sha512</a></td>
<td><a href="https://downloads.apache.org/commons/io/binaries/commons-io-2.16.1-bin.zip.asc">pgp</a></td>
<td><a href="[preferred]/commons/io/binaries/commons-io-2.17.0-bin.zip">commons-io-2.17.0-bin.zip</a></td>
<td><a href="https://downloads.apache.org/commons/io/binaries/commons-io-2.17.0-bin.zip.sha512">sha512</a></td>
<td><a href="https://downloads.apache.org/commons/io/binaries/commons-io-2.17.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.16.1-src.tar.gz">commons-io-2.16.1-src.tar.gz</a></td>
<td><a href="https://downloads.apache.org/commons/io/source/commons-io-2.16.1-src.tar.gz.sha512">sha512</a></td>
<td><a href="https://downloads.apache.org/commons/io/source/commons-io-2.16.1-src.tar.gz.asc">pgp</a></td>
<td><a href="[preferred]/commons/io/source/commons-io-2.17.0-src.tar.gz">commons-io-2.17.0-src.tar.gz</a></td>
<td><a href="https://downloads.apache.org/commons/io/source/commons-io-2.17.0-src.tar.gz.sha512">sha512</a></td>
<td><a href="https://downloads.apache.org/commons/io/source/commons-io-2.17.0-src.tar.gz.asc">pgp</a></td>
</tr>
<tr>
<td><a href="[preferred]/commons/io/source/commons-io-2.16.1-src.zip">commons-io-2.16.1-src.zip</a></td>
<td><a href="https://downloads.apache.org/commons/io/source/commons-io-2.16.1-src.zip.sha512">sha512</a></td>
<td><a href="https://downloads.apache.org/commons/io/source/commons-io-2.16.1-src.zip.asc">pgp</a></td>
<td><a href="[preferred]/commons/io/source/commons-io-2.17.0-src.zip">commons-io-2.17.0-src.zip</a></td>
<td><a href="https://downloads.apache.org/commons/io/source/commons-io-2.17.0-src.zip.sha512">sha512</a></td>
<td><a href="https://downloads.apache.org/commons/io/source/commons-io-2.17.0-src.zip.asc">pgp</a></td>
</tr>
</table>
</subsection>
Expand Down

0 comments on commit fa00f5e

Please sign in to comment.