PolicyEngine / PolicyEngine/microcosm
Move country build choices into declarative specs
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 0
- Forks
- 4
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 94
Description
Context: PolicyEngine/populace.dev#9 now visualizes the current Populace and Ledger source contracts from generated source-code metadata. The next step is to make country build choices compile from data rather than country loader code.
Need:
- Country build specs for source aliases, support channels, imputation stages, runtime bindings, calibration settings, and release gates.
- A compiler path that emits the existing StagePlan/TargetRegistry inputs so we can compare spec and Python outputs before deleting imperative country surfaces.
Acceptance criteria:
- Country-specific build choices can be represented as JSON or YAML.
- The spec path validates source aliases, support lineage, imputation outputs, target registry construction, and release gates.
- A smoke build compares current Python output to spec-compiled output, with reviewed differences.
- No country-specific loader code is needed once parity checks pass.
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
Start by locating the country loader code and the construction of StagePlan and TargetRegistry. Then trace the existing Python output and the smoke-build path to determine how source aliases, support lineage, imputation outputs, runtime bindings, calibration settings, and release gates are represented. Done means JSON or YAML specs validate and compile to parity with reviewed differences.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- json, python, yaml
- Domain
- build-system, data-engineering
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100