Skip to content

fix: normalize release archive timestamps in UTC - #517

Merged
codeforester merged 2 commits into
mainfrom
bug/511-20260917-bug-make-release-archive-timestamps-independent-of-the-host
Sep 18, 2026
Merged

codeforester merged 2 commits into
mainfrom
bug/511-20260917-bug-make-release-archive-timestamps-independent-of-the-host

Conversation

@codeforester

Copy link
Copy Markdown
Collaborator

Summary

Normalize staged file and directory mtimes in UTC so the same commit produces byte-identical release assets across host timezones. Document deterministic locale ordering and the supported GNU tar/bsdtar boundary.

Issue

Fixes #511

Validation

  • bats --filter "release artifact bytes are independent of the host timezone" tests/release-artifact.bats — passed (1 test); builds under TZ=UTC and TZ=Asia/Kolkata and compares the complete output sets.
  • git diff --check — passed.
  • Full repository hosted validation is pending.

Demo Impact

None.

Docs Impact

Document UTC timestamp normalization, C-locale ordering, and supported tar implementations.

API Impact

None.

CI Impact

Adds a cross-timezone full-artifact reproducibility test.

Security Notes

None.

Comment thread scripts/release-artifact Outdated
Comment thread scripts/release-artifact Outdated
@codeforester

Copy link
Copy Markdown
Collaborator Author

Confirmed fixed. Now uses local -x TZ=UTC0 scoped once at function level (matching lib_std.sh's established convention), inherited by both loops instead of duplicated. Independently rebuilt the archive under TZ=UTC0 and TZ=Asia/Kolkata and diffed the bytes — identical. 12/12 tests pass.

@codeforester
codeforester merged commit 7f440a1 into main Sep 18, 2026
11 checks passed
@codeforester
codeforester deleted the bug/511-20260917-bug-make-release-archive-timestamps-independent-of-the-host branch September 18, 2026 17:16
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.

bug: make release archive timestamps independent of the host timezone

1 participant