From 20b54371b821d660eebed14e1ebf1036a16941ad Mon Sep 17 00:00:00 2001 From: ian zhang Date: Thu, 27 Aug 2026 18:56:41 +0800 Subject: [PATCH 1/2] fix: harden release packaging against verification regressions 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. --- .gitattributes | 25 +++++++++++++++++++ .../test/resources/images/fesod-logo-svg.svg | 18 +++++++++++++ .../test/resources/junit-platform.properties | 16 ++++++++++++ pom.xml | 5 +++- 4 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..742693c48 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,25 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# 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 diff --git a/fesod-sheet/src/test/resources/images/fesod-logo-svg.svg b/fesod-sheet/src/test/resources/images/fesod-logo-svg.svg index 6c080ff8d..4e5747769 100644 --- a/fesod-sheet/src/test/resources/images/fesod-logo-svg.svg +++ b/fesod-sheet/src/test/resources/images/fesod-logo-svg.svg @@ -1 +1,19 @@ + \ No newline at end of file diff --git a/fesod-sheet/src/test/resources/junit-platform.properties b/fesod-sheet/src/test/resources/junit-platform.properties index aced6999f..cd968aa95 100644 --- a/fesod-sheet/src/test/resources/junit-platform.properties +++ b/fesod-sheet/src/test/resources/junit-platform.properties @@ -1,3 +1,19 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. # --------------------------------------------------------------------------- # JUnit Platform configuration for the fesod-sheet test suite. # diff --git a/pom.xml b/pom.xml index 4cfb75f27..95d69edc7 100644 --- a/pom.xml +++ b/pom.xml @@ -81,6 +81,9 @@ under the License. 2.1.0-SNAPSHOT UTF-8 + + 2026-08-27T07:40:31Z 1.8 1.8 1.8 @@ -123,7 +126,7 @@ under the License. - Apache Software Foundation + The Apache Software Foundation https://www.apache.org From 88919d74de3914417c6e394d34fefb96f18f8ea1 Mon Sep 17 00:00:00 2001 From: ian zhang Date: Thu, 27 Aug 2026 19:06:13 +0800 Subject: [PATCH 2/2] refactor: make JAR NOTICE copyright year dynamic instead of hardcoded 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. --- pom.xml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 95d69edc7..186a56e19 100644 --- a/pom.xml +++ b/pom.xml @@ -81,9 +81,11 @@ under the License. 2.1.0-SNAPSHOT UTF-8 - - 2026-08-27T07:40:31Z + + 1.8 1.8 1.8