build(release): prepare reproducible v4.0.1 artifacts - #59
Merged
Conversation
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.
Summary
only from the Git allowlist (
pyproject.toml, README/LICENSE/CHANGELOG, andsrc/atlas_wm). Build dependencies are constrained by the committed lockwith hashes; no checkout build tree, egg-info, tests, datasets, checkpoints,
papers, or host-specific files enter the context.
traversal, symlink/hardlink/special, forbidden-mode, forbidden-member,
embedded-secret, and host-path inputs. Archives are safely inspected in a
private temporary extraction directory.
ownership, types, and gzip/ZIP metadata for cross-platform byte stability.
publish, or release step. Pull requests touching release inputs trigger the
matrix; macOS provisions the same Python 3.11.15 through uv because the
setup-python catalog has no macOS build for that patch.
scientific code, models, training data, results, or checkpoint fixture was
changed. Builds require a clean Git tree and copy blobs from
HEAD, sostale untracked source cannot become a package input.
GIT_DIR,GIT_WORK_TREE, and ambientsystem/global config; repository root and full 40-character HEAD are
verified before use.
pyproject.toml,requirements.lock,uv.lock, andbuilder/SBOM scripts are byte-checked against HEAD; build constraints and
SBOM inputs are materialized from HEAD blobs.
three 64-hex checksum entries, recomputes every downloaded artifact, then
compares both hashes and bytes.
make release-stagingnow defaults to asafe external temporary directory (or accepts an explicit external path).
Validation
sbom.json,SHA256SUMS.4207c5fe9b4eb8f6967720f9f4dffedc73eb12ffac08c781d2cd4b049f6cfea48302706f53a7198440273e0f7f3fe39e145e0035a0e6de6308709bcd51a39ac8afeed2576f3180b4979cb2de56c34cfdcb24d1658230259753d36ecb57f6759188d483931d766a3dc4b20d90ba64c57c606459692b0cb6b752473ff729355c2832184058290passed: Ubuntu job95863512962, macOS job95863512815, and compare job95863700253.Downloaded Ubuntu/macOS wheel, sdist, SBOM, and SHA256SUMS bytes were all
identical.
committed lock; import/version 4.0.1, CruelGridworld core smoke, and the
external legacy safetensors checkpoint compatibility check passed.
32184058223passed (Lint95863512652, Type95863512698, Test95863512658, Security95863512639), plus CI contract, Ruff, mypy, Bandit,YAML parse,
uv lock --check, andpip-audit -r requirements.lock --no-deps --disable-pippassed; the auditreported no known vulnerabilities.
a3df33aand77deeb7; final HEAD is77deeb7439560a40be767f51f5083abc8b1cbd6f.Anti-regression gate
git diff --name-status origin/main...HEADcontains only additions andmodifications: no deletions or renames.
src/atlas_wmruntime module, public API, CLI, model, training path, orscientific behavior was removed or renamed; the source tree is unchanged
against
origin/main.origin/mainand this HEAD was byteidentical: version
4.0.1, seeded CruelGridworld observation shape[6],observation sum
67.72557067871094, legacy checkpoint model/schema, andstate-key sample all matched.
tests/test_release_compatibility.py tests/test_determinism_canary.py: 8passed; full suite remains 240 passed.
Audit note
The default
pip-audit -r requirements.lockcollection path aborts whilePython 3.11 macOS
ensurepipcreates its temporary environment (SIGABRT), sothe same lock was audited without dependency re-resolution and the installed
environment was audited with
--local. This is an environment/toolinglimitation, not a suppressed vulnerability.
The earlier macOS-latest attempt was rejected before build because that
runner image has no setup-python 3.11.15; it was replaced with macOS-15 plus
uv-managed 3.11.15. Release publication remains intentionally out of scope.
Refs #56