PolicyEngine / PolicyEngine/microcosm

Move country build choices into declarative specs

Open
#159 2 comments 0 reactions 0 assignees View on GitHub

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

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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.