Per-dataset FC pins for the sandbox images - #21
Merged
Conversation
Each dataset now pins its own formal-conjectures commit in apn/data/<dataset>/fc_commit (all initially the same constant). The pin flows into the compose files as the FC_COMMIT build arg -- the Dockerfile's only ARG without a default -- and into the image tags (LeanOpenProblems_<kind>_<version>_fc_<commit12>), so datasets sharing a pin share images and a pin change alone triggers a fresh CI build. The FC branch is no longer recorded anywhere: a plain clone fetches all branch refs, so checkout by commit suffices.
Not strictly required (the new _fc_<commit12> tag component already changes every tag), but makes the pin-keyed image generation obvious.
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.
Each dataset (erdos, fc100open, oeis) now pins its own formal-conjectures commit in
apn/data/<dataset>/fc_commit, instead of one hash baked into every image via a Dockerfile ARG default. All three pins are initially the same constant (67338a15, the previous value), so image content is unchanged.FC_COMMITbuild arg — the Dockerfile's only ARG without a default (docker has no native required-arg mechanism; a build missing it fails at the checkout).LeanOpenProblems_<kind>_<version>_fc_<commit12>, so datasets sharing a pin share images by construction, and changing a pin alone triggers a fresh CI build of the missing tags.git clonefetches all branch refs, so checkout by commit reaches commits on any branch (--single-branchis only implied by--depth, which we don't use).sort -u apn/data/*/fc_commit.test_gold_proofsbuild their sandbox at their dataset's pin; the dataset-agnostic suites use the oeis pin.Rollout note: on merge, CI sees three missing tags and builds+pushes once; a hawk run launched before that push would reference a not-yet-pushed tag (same window as after any version bump).
Validated locally: full
docker compose buildof agent+scorer from the generated compose (public base images,FC_COMMITpassed through), plustest_single_file_proof_is_acceptedend-to-end against the freshly built images through Inspect's real sandbox lifecycle; fast suites (test_fc_pins,test_registry) and mypy clean.