fix: finding issues during 2.1.0 RC - #1049
Merged
Merged
Conversation
Port release-hardening fixes onto main so future releases avoid the four issues found while verifying 2.1.0-incubating-RC1: - Add .gitattributes to enforce LF on wrapper/scripts and CRLF on Windows cmd/bat files, keeping Unix mvnw executable inside the source package. - Dominate the parent apache POM's stale 2023 outputTimestamp so the JAR NOTICE copyright range derives the correct end-year (was inverted, e.g. "2025-2023") and use the canonical "The Apache Software Foundation" name. - Add ASF license headers to fesod-sheet test resources (logo svg and junit-platform.properties) so the RAT gate passes for test resources.
The previous fix pinned project.build.outputTimestamp to 2026-08-27, which goes stale every year. The parent apache:31 POM hardcodes a 2023 value that otherwise produces an inverted "2025-2023" NOTICE range. Override it with an empty value so apache-jar-resource-bundle falls back to the current build year for the NOTICE end-year (verified: produces "Copyright 2025-2026"). A reproducible release can set a fixed ISO-8601 value at release pre, which also yields a correct end-year.
alaahong
requested review from
delei and
psxjoy
and
a lite review from Copilot
August 27, 2026 11:30
Contributor
There was a problem hiding this comment.
Pull request overview
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Resolves release-candidate issues for 2.1.0 by making NOTICE generation and source distributions more release-friendly (dynamic year, canonical org name, consistent line endings, and RAT headers).
Changes:
- Override
project.build.outputTimestampto avoid inheriting the parent’s stale timestamp and fix NOTICE year ranges. - Standardize the organization name in the parent POM.
- Add
.gitattributes+ missing ASF headers to ensure correct line endings in source packages and RAT compliance for test resources.
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
pom.xml |
Clears inherited outputTimestamp and updates the organization name to the canonical legal form. |
fesod-sheet/src/test/resources/junit-platform.properties |
Adds ASF license header for RAT compliance. |
fesod-sheet/src/test/resources/images/fesod-logo-svg.svg |
Adds ASF license header for RAT compliance. |
.gitattributes |
Enforces script/wrapper line endings to prevent archive/source-package line-ending issues. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+18
to
+25
| # Line-ending normalization for release-critical wrapper/scripts. | ||
| # Hermetic building on Linux/macOS requires LF in the source package. | ||
| mvnw text eol=lf | ||
| mvnw.cmd text eol=crlf | ||
| .mvn/wrapper/maven-wrapper.properties text eol=lf | ||
| *.sh text eol=lf | ||
| *.bat text eol=crlf | ||
| *.cmd text eol=crlf No newline at end of file |
| <!-- Clear the parent `apache` POM's stale outputTimestamp (2023): apache-jar-resource-bundle derives the JAR | ||
| NOTICE copyright end-year from it, and a stale value yields an inverted "2025-2023" range. An empty value | ||
| falls back to the current build year, so the NOTICE stays correct without a hardcoded date. For a | ||
| reproducible release, set this to a fixed ISO-8601 commit timestamp (typically done at release pre). --> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose of the pull request
Closed: #1048
What's changed?
Dynamic
NOTICEyear — override the inherited property so the bundle falls back to the current build year:Verified output:
Copyright 2025-2026 The Apache Software Foundation, and it stays correct across years without a hardcoded date.Canonical organization name —
The Apache Software Foundation(official legal name) in the parentpom.xml.Hermetic source-package line endings — add
.gitattributesenforcingmvnw/*.sh->LFand Windows*.cmd/*.bat->CRLF, sogit archiveno longer mangles the Unixmvnw(the CRLF issue fromRC1).RAT compliance — add ASF license headers to
fesod-sheettest resources (logo SVG,junit-platform.properties) and the new.gitattributes.Checklist