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

Open
#753 0 comments 0 reactions 0 assignees View on GitHub

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:

  1. 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_atomic plus a test asserting the evidence main commit carries no root artifact paths.
  2. Operational: publish evidence with --tag-only-like semantics for roots but still move latest-evidence.json (needs a new flag combination; today --tag-only also suppresses the pointer).
  3. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.