You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Local-area publish refused: the donor must be a published release, so fold the reported-receipt columns into the national build #978
A publish of the full-scale local ACS hours rebuild (record: #974; artifact populace-us-2024-buildo-acs-local-cadaf4180-20260922T074911Z, sha256 b65c30ec…) was attempted on 2026-09-22 with the packaged manifest's own recipe (tools/publish_release.sh <release_dir> --no-latest --artifact-root <run> --repo-id policyengine/populace-us) and was refused by the release contract before any remote mutation:
us_source_coverage.json is missing the local-area provenance key 'donor_release' (or it is null).
The staging tool pins donor_release only when staged with --donor-release-manifest, and that path verifies the donor H5's digest against a published release manifest's microdata artifact (tools/_legacy/build_us_acs_multispine_base.py::_donor_release_identity). This build's donor was the receipt-qualified child of the national default produced by #972 (populace_us_2024_receipt_qualified.h5, sha256 00946972…, parent 6496cc43… = populace-us-2024-spm-20260909 / -20260915). A qualified child has no published manifest, so no local-area release built on it can satisfy the contract. Nothing reached the Hub.
The contract is right: a local-area release should name a published donor. The gap is that the national default does not carry the three reported-receipt inputs the ACS transfer needs (receives_wic, receives_snap, receives_tanf), which is why #972 exists (microcosm#591).
Options
Fold the reported-receipt columns into the national build so the next national default carries them natively and the local chain stages from a published donor with --donor-release-manifest. Root-cause fix; also the release PolicyBench v2 would draw from.
Publish the qualified donor as its own release (a derivative of the national default with three added columns and its receipt), then re-stage the local build against its manifest. Faster; puts a derivative national file on the Hub.
Extend the contract to accept a qualified donor by parent release plus qualification receipt. Weakens the provenance the contract exists to enforce; not recommended.
Either of 1 or 2 means the local chain reruns from staging (about five hours on this machine at totals-mode targets; the guarded full-SOI selection in #969 adds a dense matrix of roughly 26 GiB and probably belongs on Modal).
Resolved on 2026-09-23. Max chose (2026-09-22) to publish the reported-receipt enrichment of the current default as its own release and to merge #980 as the forward guard for option 1.
Publish the reported-receipt enrichment of the national default as its own release (#978) #985 (merged) adds the add_reported_receipt_inputs operation to the source-enrichment release type. The donor was qualified from the cached default (6496cc43…), reproducing 00946972… byte for byte. It was certified with the four exact wheels the parent was certified with, validated with --require-compatibility, preflighted, and published tag-only with --no-latest as populace-us-2024-spm-receipts-20260923.
Activity
Merge pull request #980 from PolicyEngine/us-release-coverage-require…
Merge pull request #985 from PolicyEngine/us-receipts-enrichment-release
Merge origin/main (#980, #985) into us-spm-role-stage
MaxGhenis commentedon Sep 23, 2026
Resolved on 2026-09-23. Max chose (2026-09-22) to publish the reported-receipt enrichment of the current default as its own release and to merge #980 as the forward guard for option 1.
add_reported_receipt_inputsoperation to the source-enrichment release type. The donor was qualified from the cached default (6496cc43…), reproducing00946972…byte for byte. It was certified with the four exact wheels the parent was certified with, validated with--require-compatibility, preflighted, and published tag-only with--no-latestaspopulace-us-2024-spm-receipts-20260923.--donor-release-manifest.us_source_coverage/staging now recorddonor_release, the key whose absence refused the 2026-09-22 publish. The chain was rebuilt on thestateSOI surface (Make Build O's state SOI contract the ACS local default; totals and full are opt-in #984; 4,459 targets, Build O's contract), all eight finalize gates passed, and it was published as the non-default local-area releasepopulace-us-2024-buildo-acs-local-767312d60-20260923T074941Z. Build commit767312d60= main4d773a478+ Make Build O's state SOI contract the ACS local default; totals and full are opt-in #984 + Publish the reported-receipt enrichment of the national default as its own release (#978) #985, both since merged. The nationallatest.jsonis unchanged.🤖 Generated with Claude Code
Re-extract the US input profiles from main's current coverage manifest