Repository navigation
Conversation
The maven-javadoc-plugin derives the footer copyright year from project.build.outputTimestamp under reproducible builds. The parent POM pinned no timestamp, so a build run with SOURCE_DATE_EPOCH=0 floored the year to 1980 (seen in published 2.3.0 -javadoc artifacts). Pin the timestamp to the release date so the footer renders a real year (2026) independent of the build environment, keeping builds reproducible.
2 tasks done
SilanHe
force-pushed
the
docs/javadoc-copyright-footer
branch
from
October 27, 2026 21:44
13bc2d5 to
ea0787f
Compare
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.
Problem
Published
-javadocartifacts showCopyright © 1980in the page footer (seen inaws-durable-execution-sdk-java2.3.0). The 2.2.1 artifacts showed a real year (© 2026), so the footer year is coming from the build, not from the source.Root cause (inferred — see Verification)
The
maven-javadoc-pluginbuilds its default footer asCopyright © <year> ..., and under a reproducible build Maven takes that year fromproject.build.outputTimestamp. The parentpom.xmlpins no timestamp, so the year is inherited from the build environment. 2.2.1 built with a real clock →© 2026; a 2.3.0 build run with the epoch (SOURCE_DATE_EPOCH=0/outputTimestamp=0) floors the year to 1980. The exact value the 2.3.0 release job passed lives in pipeline config, not this repo, so the chain is inferred from the symptom, not reproduced here.What changed
Pinned
project.build.outputTimestampin the parent POM to the real release date:The javadoc footer now renders the real year (
© 2026) regardless of how the build environment sets its clock, and the build stays reproducible. Bump this to the release date each release.Backwards compatibility
Compatible. Pins the timestamp used for reproducible-build output (javadoc footer year, archive entry times); no API, source, or binary signature change.
Tests
N/A — no code change; the edit is well-formed XML.
Verification
javadocrenders aCopyright © 2026 ...footer when given that bottom string, so the output path shows the year correctly.outputTimestamp→ footer-year wiring end to end. That is documented Maven reproducible-build behavior, but confirming it needs a Maven build (mvn -pl sdk javadoc:javadoc), which this environment lacks Maven to run. SettingSOURCE_DATE_EPOCH=0on rawjavadocdid not produce 1980 — the doclet used the live clock — which confirms the year is driven by Maven viaoutputTimestamp, not by the doclet reading the env directly.Manual verification
mvn -pl sdk javadoc:javadocand confirm the footer readsCopyright © 2026 Amazon.com, Inc. ....