PolicyEngine / PolicyEngine/microcosm
Evidence publishes refresh the mutable root convenience copies (populace_us_2024.h5 at repo root) — decide whether the evidence tier should skip them
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 0
- Forks
- 4
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 94
Description
Surfaced by sol's merge adjudication of #674 (evidence tier, #506) as a post-merge caution, not a defect: publish_release writes the manifest-declared root artifacts (the H5/NPZ at their repo-root paths) in the main-branch commit for every non-tag-only publish. That is pre-existing behavior — a certified --no-latest non-default publish already overwrites the root copies today — so an --evidence publish with the default pointer update will likewise replace the root populace_us_2024.h5 with the evidence artifact.
Why it matters more at the evidence tier: a naive hf_hub_download("policyengine/populace-us", "populace_us_2024.h5") with no revision reads main's root copy and would receive an artifact whose gates failed, without seeing the tier marker that lives in the release manifest and the -evidence- tag. Every contract-aware path is unaffected: latest.json never moves, the registry/loader pin artifacts by revision (the release tag), and latest-evidence.json paths point under releases/<id>/.
Options for the owner:
- Structural: at the evidence tier, upload root artifacts only in the immutable tag commit and omit them from the main-branch commit (evidence H5 reachable by tag + manifest revision only). ~10 lines in
_publish_atomicplus a test asserting the evidence main commit carries no root artifact paths. - Operational: publish evidence with
--tag-only-like semantics for roots but still movelatest-evidence.json(needs a new flag combination; today--tag-onlyalso suppresses the pointer). - Status quo: document that root copies are "whatever published last" (already the non-default semantics) and rely on consumers pinning revisions.
Recommend (1): it keeps the tier's "never mistakable for certified" guarantee structural for the one remaining unpinned read path. Worth deciding before the first evidence publish.
🤖 Generated with Claude Code
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in _publish_atomic and trace how manifest-declared root H5/NPZ artifacts are written to the main-branch and immutable tag commits. Review the existing publish tests, then add coverage for the selected evidence-tier behavior, including whether the evidence main commit contains root artifact paths and how the relevant pointers are updated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- release
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100