Skip to content

Upgrade the simulation runtime to PolicyEngine 6.1.2 - #703

Draft
anth-volk wants to merge 6 commits into
mainfrom
feat/policyengine-6-1-2
Draft

anth-volk wants to merge 6 commits into
mainfrom
feat/policyengine-6-1-2

Conversation

@anth-volk

@anth-volk anth-volk commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #679

Supersedes #680 with a clean implementation based on the current main branch and PolicyEngine 6.1.2.

What changed

  • Pins the complete PolicyEngine 6.1.2 runtime selected by its release manifest: policyengine-core==3.32.5, policyengine-us==2.2.1, policyengine-uk==2.90.2, and spm-calculator==1.0.0.
  • Installs those Python packages only from the frozen uv.lock in both simulation images. policyengine bundle install --no-packages now downloads the two certified datasets without changing installed Python packages.
  • Uses the PolicyEngine 6 Supplemental Poverty Measure selection in dataset and baseline artifact identities. This prevents results computed with different SPM forecast settings from sharing a cache entry.
  • Publishes the resolved SPM configuration in version-routing metadata and verifies the exact package versions, receipt, files, and SHA-256 values in the Modal image smoke.
  • Updates the automatic PolicyEngine release script to synchronize all five package pins in both local and image dependency lists, regenerate and check the lockfile, and run focused consistency tests before committing.
  • Updates test doubles and fixtures for PolicyEngine 6's spm, spm_config, spm_provenance, and storage_id behavior.

The selected certified data releases are:

  • US: populace-us-2024-spm-20260915
  • UK: policyengine-uk-data-1.56.16

Validation

  • make test (all six project/library unit suites pass; executor: 605 passed, 22 dataset-dependent skips, 2 deselected)
  • uv lock --check
  • uv run ruff format --check src fixtures tests
  • updater script tests: 9 passed
  • shell syntax checks for the changed scripts
  • draft PR checks: unit suites, formatting, both container builds, local-service integration, and the real Modal staging image smoke all passed

The Modal smoke performed full PolicyEngine bundle verification inside the built executor image.

The repository-wide uv run --extra build pyright src command is not clean: it reports 117 diagnostics across Modal type resolution and executor annotations. Pyright is not part of this repository's pull-request checks; this migration does not expand into that separate cleanup.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Move the simulation executor onto the canonical SPM bundle (policyengine 6.0.0)

1 participant