PolicyEngine / PolicyEngine/policyengine-sim-api
Executor image: move model packages into uv.lock once policyengine bundle gains a datasets-only mode
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1
- Forks
- 1
- Avg merge
- 10h 29m
- Merged PRs (30d)
- 7
Description
Follow-up to #609 / #610, blocked on PolicyEngine/policyengine.py#452.
The executor's Modal image now installs its bootstrap packages canonically via uv_sync(frozen=True, --only-group modal-simulation-image), but the country-model packages are still installed by policyengine bundle install (bridged into uv's environment via --venv /.uv/.venv), because the bundle CLI has no datasets-only mode — it cannot lay down certified datasets and the receipt without also managing packages.
Once PolicyEngine/policyengine.py#452 ships:
- Add a
modelsdependency group inprojects/policyengine-simulation-executor/pyproject.tomlreferencing the existing bot-maintained model pins (policyengine, policyengine-core, policyengine-us, policyengine-uk), included by the image'suv_synccall. - Switch the bundle layer to the datasets-only invocation (data + receipt, no packages).
- Verify via the existing gates: image smoke, staging prewarm, scripted staging deploy, and a state-level calculation.
End state: uv.lock is the sole source of packages in both simulation images; the bundle's role shrinks to certified data. (If #596 — published single-year datasets — lands first, the data layer may shrink further or disappear.)
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
Wait for PolicyEngine/policyengine.py#452, then inspect projects/policyengine-simulation-executor/pyproject.toml, the existing bot-maintained model pins, and the executor image's uv_sync and bundle layers. Verify the change through the image smoke, staging prewarm, scripted staging deploy, and state-level calculation gates; done means uv.lock owns packages and the bundle installs certified data only.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system, devops, infrastructure
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100