Skip to content

Document build_env metadata and reproducible tarballs - #87

Merged
ericmj merged 1 commit into
mainfrom
reproducible-tarballs
Oct 1, 2026
Merged

ericmj merged 1 commit into
mainfrom
reproducible-tarballs

Conversation

@ericmj

@ericmj ericmj commented Oct 1, 2026

Copy link
Copy Markdown
Member

Add the optional build_env metadata field: the names and versions of
the tools that created the package tarball. Hex records its version
there with hexpm/hex#1252, so the version needed to rebuild a package and
compare checksums can be read from the package alone.

Add recommendations to the package tarball spec for creating tarballs
whose bytes only depend on the files and the tool versions: entry order,
timestamps, owners, modes, NFC names, the gzip header and the order of
metadata keys. They describe what hex_core does since hexpm/hex_core#228.
They aren't requirements, and different tools aren't expected to produce
the same bytes as each other.

Add the optional build_env metadata field: the names and versions of
the tools that created the package tarball. Hex records its version
there with hexpm/hex#1252, so the version needed to rebuild a package and
compare checksums can be read from the package alone.

Add recommendations to the package tarball spec for creating tarballs
whose bytes only depend on the files and the tool versions: entry order,
timestamps, owners, modes, NFC names, the gzip header and the order of
metadata keys. They describe what hex_core does since hexpm/hex_core#228.
They aren't requirements, and different tools aren't expected to produce
the same bytes as each other.
@ericmj
ericmj merged commit a299215 into main Oct 1, 2026
5 checks passed
@ericmj
ericmj deleted the reproducible-tarballs branch October 1, 2026 19:37
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.

1 participant