Skip to content

build: pin javadoc copyright footer to avoid 1980 year - #841

Closed
SilanHe wants to merge 1 commit into
mainfrom
docs/javadoc-copyright-footer
Closed

SilanHe wants to merge 1 commit into
mainfrom
docs/javadoc-copyright-footer

Conversation

@SilanHe

@SilanHe SilanHe commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Problem

Published -javadoc artifacts show Copyright © 1980 in the page footer (seen in aws-durable-execution-sdk-java 2.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-plugin builds its default footer as Copyright © <year> ..., and under a reproducible build Maven takes that year from project.build.outputTimestamp. The parent pom.xml pins 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.outputTimestamp in the parent POM to the real release date:

<project.build.outputTimestamp>2026-09-25T23:46:32Z</project.build.outputTimestamp>

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

  • Proven: javadoc renders a Copyright © 2026 ... footer when given that bottom string, so the output path shows the year correctly.
  • Not reproduced: the 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. Setting SOURCE_DATE_EPOCH=0 on raw javadoc did not produce 1980 — the doclet used the live clock — which confirms the year is driven by Maven via outputTimestamp, not by the doclet reading the env directly.

Manual verification

mvn -pl sdk javadoc:javadoc and confirm the footer reads Copyright © 2026 Amazon.com, Inc. ....

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.
@SilanHe
SilanHe force-pushed the docs/javadoc-copyright-footer branch from 13bc2d5 to ea0787f Compare October 27, 2026 21:44
@SilanHe SilanHe closed this Oct 27, 2026
@SilanHe
SilanHe deleted the docs/javadoc-copyright-footer branch October 27, 2026 21:46
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.

2 participants