Skip to content

Pin open-data's shared dependency off main #2473

Closed as not planned
Closed as not planned

Description

@shelltr

Blocker for the schema change. Small, but must land first.

The hazard

open-data validates every person record against our Official model, and it pins us to main:

# open-data/pyproject.toml:26-27
shared = {git = "…civicpatch-tools.git", subdirectory = "shared", branch = "main"}
# open-data/scripts/github_actions/validate_jurisdiction.py:33
Official(**person_data)

So the moment the new Official (with roles[], without office) merges to this repo's main, open-data CI starts rejecting all 3,430 un-backfilled person files — with no coordinated release and no way to stage the change.

This makes the office → roles[] migration effectively impossible to do safely today.

What to do

  • Change the pin in open-data/pyproject.toml from branch = "main" to a tag or rev.
  • Add a release/tag step to this repo so shared has versioned cut points.
  • Document the bump procedure (open-data already has a mise task add-shared, see open-data/mise.toml:69-72).

Also fix while here

open-data/README.md:38 and open-data/CLAUDE.md:47 both claim open-data/schemas.py holds Jurisdiction, Office, Official. It holds only Jurisdiction — Office/Official live in shared/src/shared/schemas.py in this repo. The stale docs are exactly what makes this coupling easy to miss.

Verification

open-data CI green against a pinned shared while this repo's main moves ahead with an incompatible Official.


Part of the temporal-roles work — see the tracking issue for ordering.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions