Repository navigation
feat: generate the inference flag tables from AlphaPulldown and check them in CI - #73
Merged
Merged
Conversation
… them in CI The per-backend flag sets in common.smk were copied from AlphaPulldown by hand, and the test comparing them with the original skipped wherever AlphaPulldown was not importable, which is everywhere CI runs. They drifted before. tools/generate_inference_flag_tables.py reads FLAGS_BY_BACKEND from an explicit, clean AlphaPulldown checkout (its syntax tree: no import, no dependencies, no submodules) and writes a sorted block into common.smk recording the full source commit. The first block comes from 2.10.0 (6e7f9869), the release the default containers run, and equals the hand-copied sets exactly. A new CI job checks out the recorded commit and runs the generator with --check; a missing source or any difference fails it. The generator's --help documents the update procedure. The hand-copied expected-set test gives way to tests of the generator on a throwaway checkout: deterministic output, a --check that writes nothing, failure on a removed or renamed flag, refusal of an uncommitted source, failure rather than a skip without a source, and parsing with no AlphaPulldown. Behavioural tests of the tables are kept. AF2, AF3 and unknown-flag dry runs produce the same commands, manifests, targets and warnings as before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
DimaMolod
added a commit
that referenced
this pull request
Oct 14, 2026
The flag tables are now generated (#73): AF3's --allow_resume comes from regenerating them from AlphaPulldown main (228c5eed), where AF3 accepts the flag, in place of the hand edit. The wording names the release that ships it, 2.11.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Plan item 3 of 3: generate the workflow's inference-flag tables from AlphaPulldown, and enforce them in CI.
Problem
common.smkheld hand-copied per-backend flag sets. The test comparing them with AlphaPulldown skipped wherever AlphaPulldown was not importable, which includes every CI run. The sets had drifted before.Change
tools/generate_inference_flag_tables.py --source-checkout PATH [--check].FLAGS_BY_BACKENDfrom an explicit AlphaPulldown checkout by evaluating its syntax tree. Nothing is imported, and no dependencies or submodules are needed.common.smk. No runtime imports, network access or schema files.--helpdocuments the update procedure: check out the intended revision, regenerate, inspect the diff, run the compatibility tests.6e7f9869), the release the default containers run. It equals the hand-copied sets exactly: 38, 21 and 38 flags for alphafold2, alphafold3 and alphalink.inference-flag-tables. It reads the recorded commit, checks out that AlphaPulldown revision without submodules, and runs--check. A missing source or any difference fails the job instead of skipping. To make the job required,mainneeds branch protection, which this repo doesn't have yet. That's a settings change left to the maintainers.Tests
--checkwrites nothing;--check;common.smkparses with no AlphaPulldown.PATH, so every dry run executes: 220 passed, none skipped. Onmain: 213 passed, 1 skipped, the old import-or-skip test.main: the AF2 and AF3 fixtures, and AF3 with the unsupported--allow_resumeplus a misspelt flag. They produce identical commands, manifests, output targets and warnings. Timestamps, Snakemake's random file-set order and its scheduling notes are normalised out.When an AlphaPulldown release with AF3
--allow_resumeships, #72 regenerates the block from that release instead of editing the set by hand.🤖 Generated with Claude Code