Migrate US staging run files to the version 2 contract
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Start by reading the version 2 writer introduced by #895, the US fiscal-refresh and exact-count paths from #933, and the telemetry separation in #1099. Trace their writer, fixtures, lifecycle, diagnostics, and delivery tests, then verify US version 2 reads in Calibration Diagnostics before changing the producer. Done means all listed acceptance criteria pass, including removal of the version 1 writer and tests for each run and delivery mode.
Written by the indexing model from the issue text.
Description
Problem
The US fiscal-refresh build still writes schema version 1 staging run files, while UK builds use the stricter, country-neutral version 2 format introduced by #895. Both implementations write the same conceptual run bundle, but Microcosm maintains separate writer classes, fixtures, lifecycle behavior, and dashboard parsing paths.
PR #1099 separates hosted event delivery through LocalTelemetryEmitter from staging run-file persistence. It intentionally leaves the existing US file format unchanged. The next step should migrate US builds to version 2 and remove the version 1 writer.
Version 2 should be the single current staging run-file contract because it provides:
- named and validated document schemas;
- country, operation, pipeline, candidate, release, and run-kind identity;
- explicit lifecycle and delivery state;
- ordered events and consistent bundle validation;
- reviewed aggregate-only artifacts with digests and size limits;
- safeguards against uploading row-level data, credentials, archives, or dataset files;
- optional authenticated remote read-back.
Required changes
- Use the version 2 writer for every US fiscal-refresh build, including exact-count builds covered by #933.
- Replace the two writer classes with one country-neutral
StagingRunBundleWriterimplementation based on the current version 2 code. - Stop producing schema version 1 staging files.
- Remove the version 1 writer, producer fixtures, and producer-only tests after the US path migrates.
- Keep
LocalTelemetryEmitterfunctionally independent. Disabling staging run files with--no-stagingmust not disable hosted event delivery. - Populate the version 2 country, operation, pipeline, candidate, release, run-kind, sampling, and delivery fields for US builds.
- Convert US lifecycle statuses and events to the version 2 contract.
- Audit every US diagnostic currently attached to the staging run. Version 1 accepts arbitrary JSON files; version 2 permits only reviewed aggregate data and rejects record arrays, sensitive keys, dataset files, and oversized files. Summarize or omit artifacts that do not satisfy the version 2 content policy.
- Verify that Calibration Diagnostics reads new US version 2 runs before deploying the producer change. Retaining read-only support for historical version 1 runs is a separate compatibility decision and does not require retaining a version 1 writer.
Acceptance criteria
- US fiscal-refresh and exact-count builds instantiate the single shared staging run-bundle writer.
- No production Microcosm path emits schema version 1 staging files.
- Every US staging document and attached artifact passes version 2 schema and content validation.
- US run identity and delivery fields are complete and consistent across the manifest, progress document, event stream, calibration progress, and run index.
- A staging file write, validation, or upload failure cannot suppress hosted events from
LocalTelemetryEmitter. -
--no-stagingsuppresses only staging run files and their uploads. - Calibration Diagnostics tests cover a US version 2 run before the Microcosm producer change is deployed.
- Tests cover successful, failed, local-only, remote-delivery-failure, and exact-count US runs.
- The obsolete version 1 writer and its producer fixtures are removed.
Context
- #895 introduced the version 2 staging run-file contract for UK builds while explicitly retaining version 1 for US builds.
- #933 covers enabling staging output for US exact-count builds.
- #1099 separates the always-on hosted event emitter from staging run-file persistence.
- Dominant language
- Python
- Stars
- 0
- Forks
- 5
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 115
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing 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.
More from PolicyEngine/microcosm
-
Update two stale comments about the export-mass reviewed-exclusion registerPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 1/5 Under an hour Newbie friendliness 88/100
PolicyEngine/microcosm#1108 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
PolicyEngine/microcosm#475 ·
Maintainers usually reply within 1 day
-
Generate complete WIC participation in the ACS local-area buildPossibly taken @anth-volk claimed this today. Open
Difficulty 4/5 3-5 days Newbie friendliness 48/100
PolicyEngine/microcosm#1155 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
PolicyEngine/microcosm#1154 ·
Maintainers usually reply within 1 day
-
Delegate telemetry and completed Orrery publication to microcosm-local-providerPossibly taken @anth-volk claimed this today. Open
Difficulty 4/5 3-5 days Newbie friendliness 35/100
PolicyEngine/microcosm#1152 ·
Maintainers usually reply within 1 day
All issues in PolicyEngine/microcosm
Similar issues
-
HTML: <template> content is extracted as document textPossibly taken @ryanmeowy claimed this today. Openbug html
Difficulty 1/5 Under an hour Newbie friendliness 82/100
docling-project/docling#4714 · 2 comments ·
Maintainers usually reply within 1 day
-
[BUG] Qdrant RAG client applies score_threshold to raw cosine similarity, not the 0-1 score it returnsPossibly taken @roydonsequeira claimed this today. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
Host test failure in core/direct_io.zig on Linux kernel 6.17: O_DIRECT open succeeds on procfs, so the test's 'plain' fd is not plainPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
ashhart/TensorFold#536 ·
Maintainers usually reply within 1 day
-
area/install-update comp/cli duplicate P2 python:uv sweeper:risk-compatibility type/bug
Difficulty 1/5 Under an hour Newbie friendliness 62/100
NousResearch/hermes-agent#135440 · 1 comment ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Deepak3699/Ai_Mentor#244 ·
Maintainers usually reply within 1 day