Skip to content

fix: finding issues during 2.1.0 RC - #1049

Merged
psxjoy merged 2 commits into
apache:mainfrom
alaahong:fix/release-hardening
Aug 27, 2026
Merged

fix: finding issues during 2.1.0 RC#1049
psxjoy merged 2 commits into
apache:mainfrom
alaahong:fix/release-hardening

Conversation

@alaahong

Copy link
Copy Markdown
Member

Purpose of the pull request

Closed: #1048

What's changed?

  1. Dynamic NOTICE year — override the inherited property so the bundle falls back to the current build year:

    <project.build.outputTimestamp></project.build.outputTimestamp>

    Verified output: Copyright 2025-2026 The Apache Software Foundation, and it stays correct across years without a hardcoded date.

  2. Canonical organization nameThe Apache Software Foundation (official legal name) in the parent pom.xml.

  3. Hermetic source-package line endings — add .gitattributes enforcing mvnw / *.sh -> LF and Windows *.cmd / *.bat -> CRLF, so git archive no longer mangles the Unix mvnw (the CRLF issue from RC1).

  4. RAT compliance — add ASF license headers to fesod-sheet test resources (logo SVG, junit-platform.properties) and the new .gitattributes.

Checklist

  • I have read the Contributor Guide.
  • I have written the necessary doc or comment.
  • I have added the necessary unit tests and all cases have passed.

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
alaahong requested review from delei and psxjoy and a lite review from Copilot August 27, 2026 11:30

@psxjoy psxjoy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@psxjoy
psxjoy merged commit c614183 into apache:main Aug 27, 2026
8 checks passed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.outputTimestamp to 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 thread .gitattributes
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
Comment thread pom.xml
<!-- 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). -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Enhancement] Harden release packaging against regressions found in 2.1.0-incubating-RC1

3 participants