PolicyEngine / PolicyEngine/policyengine-sim-api

Executor image: move model packages into uv.lock once policyengine bundle gains a datasets-only mode

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

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:

  1. Add a models dependency group in projects/policyengine-simulation-executor/pyproject.toml referencing the existing bot-maintained model pins (policyengine, policyengine-core, policyengine-us, policyengine-uk), included by the image's uv_sync call.
  2. Switch the bundle layer to the datasets-only invocation (data + receipt, no packages).
  3. 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

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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.