Skip to content

Implement .py-owned pip-native PolicyEngine stacks #424

@anth-volk

Description

@anth-volk

Goal

Move stack/bundle ownership into policyengine.py, with the .py release version also serving as the stack version. Users should be able to install a validated PolicyEngine stack with normal pip commands such as pip install "policyengine[full]==X.Y.Z".

Work

  • Add a stack manifest owned by this repo that records the exact PolicyEngine-owned package versions included in a stack.
  • Generate pyproject.toml optional dependencies from that manifest for extras such as models, data, full, us-full, and uk-full.
  • Add runtime/CLI support for policyengine stack show, policyengine stack verify, and policyengine stack cite.
  • Add a stack-only PR workflow: update the manifest, regenerate derived files, run lightweight verification, and publish via the normal .py release path.
  • Add release assets for each .py release: stack manifest JSON, constraints file, citation text, and verification output.
  • Keep verification lightweight: exact installed versions, importability/module discovery, and reachable release-manifest/data URIs where applicable.
  • Decide how artifact-only packages are represented, especially UK data if it remains unavailable as a pip-installable package.

Acceptance criteria

  • pip install "policyengine[models]==<version>" installs the exact model/core versions recorded by the stack.
  • policyengine stack verify --extra models can run in CI quickly.
  • A stack-only PR can be opened without touching downstream repos.
  • The normal .py release publishes stack metadata as release assets.
  • Documentation explains install commands, citation, and how to open a stack update PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions