Skip to content

May: dev commits to staging#515

Merged
John McCall (lowlydba) merged 124 commits into
stagingfrom
staging_2026_05_07
May 11, 2026
Merged

May: dev commits to staging#515
John McCall (lowlydba) merged 124 commits into
stagingfrom
staging_2026_05_07

Conversation

@stepps00
Copy link
Copy Markdown
Contributor

@stepps00 Stephen Epps (stepps00) commented May 7, 2026

Description

Bring staging up to dev so that it contains most recent changes from April/early May.

Documentation website

Update the hyperlink below to put the pull request number in.

Docs preview for this PR.

This commit adds a GitHub Actions workflow that automatically publishes
the Python schema packages to PyPI when they have a version number
change that is pushed to the main branch.*

Packages are published in topological order, which is for now determined
by the hard-coded `def level` function in `scripts/package-versions.py`.

Eventually, we also want to auto-cut a GitHub Release after a successful
publish, but let's do that later.

*: For now, PyPI = Overture internal CodeArtifact repo, but eventually
it will be public PyPI.
Vehicle dimension selectors (height, length, weight, width) use float64
instead of float32 to match the double-precision values in the data
platform. Level uses int32 instead of int16 for the same reason. Axle
count stays uint8 since it's a discrete count.
Cartography types (Prominence, MinZoom, MaxZoom, SortKey)
from uint8 to int32; ConfidenceScore from float32 to
float64. Matches actual data ranges in Overture releases.
The mypy target only checked top-level test files via
`packages/*/tests/*.py`. Subdirectory tests (model_constraint/,
ref/, scoping/) were never type-checked.

Switch to per-directory find so mypy discovers all test files
while keeping each package's conftest.py visible (avoids duplicate
module conflicts across packages).

Fixes in test code:
- Mapping[str, object] in assert_subset (dict invariance)
- Missing return type annotations on test functions
- Duplicate TestModel names within same scope
- JsonDict annotations for ConfigDict json_schema_extra
- type: ignore for dynamically-created .When classes
Every other package had its tests/ directory in
pythonpath; cli was the only one missing, making
its conftest imports rely on rootdir discovery.
These packages import from overture.schema.system without
declaring it as a dependency. Works in the uv workspace
but breaks isolated installs.

- overture-schema-core
- overture-schema-cli
- overture-schema-base-theme
- overture-schema-buildings-theme
- overture-schema-transportation-theme
* Delete .github/workflows/copy-pr-docs-to-staging.yaml

* Delete .github/workflows/copy-latest-docs-to-staging.yaml
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 7, 2026

🗺️ Schema reference docs preview is live!

🌍 Preview https://staging.overturemaps.org/schema/pr/515/schema/index.html
🕐 Updated May 11, 2026 18:09 UTC
📝 Commit 31d5221
🔧 env SCHEMA_PREVIEW true

Note

♻️ This preview updates automatically with each push to this PR.

@stepps00 Stephen Epps (stepps00) added the change type - minor 🤏 Minor schema change. See https://lf-overturemaps.atlassian.net/wiki/x/GgDa label May 7, 2026
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand the build failure, but don't see it as being a problem for this PR.

John McCall (lowlydba) and others added 6 commits May 11, 2026 10:48
Update multiple packages' pyproject.toml files to add a maintainers list, common keywords, and a [project.urls] section (Homepage, Source, Issues). Affects core, system, cli, annex, and all theme packages under packages/overture-schema-*. This centralizes package metadata to improve discoverability, attribution, and tooling integration.
pytest-subtests merged into pytest core as of pytest 9.
Update test imports from pytest_subtests.SubTests to
_pytest.subtests.Subtests.

uv.lock was fully re-resolved, upgrading all transitive
dependencies to current versions. Notable: pytest 8.4→9.0,
mypy 1.18→1.19, pdoc 15→16, ruff 0.14.0→0.14.14.
* Widen `AdminLevel` from `uint8` to `int32` to match divisions data currently being generated.
* Fix Pydantic rebinding self in model constraint validator
John McCall (lowlydba) and others added 13 commits May 11, 2026 10:48
Signed-off-by: John McCall <john@overturemaps.org>
Add id-token: write permissions to workflows (.github/workflows/publish-python-packages.yaml and reusable-check-python-package-versions.yaml) so reusable workflows can use OIDC for AWS CodeArtifact authentication. Also add contents: read to the publish job. Update schema-pr-preview.yml to remove the PREVIEW_PATH env var and inline the /schema/pr/${{ github.event.number }} path for S3 sync and CloudFront invalidation to ensure the preview is uploaded and invalidated at the correct location.

Signed-off-by: John McCall <john@overturemaps.org>
Signed-off-by: John McCall <john@overturemaps.org>
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@bbbca2d...043fb46)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: John McCall <john@overturemaps.org>
Bumps [marocchino/sticky-pull-request-comment](https://github.com/marocchino/sticky-pull-request-comment) from 3.0.3 to 3.0.4.
- [Release notes](https://github.com/marocchino/sticky-pull-request-comment/releases)
- [Commits](marocchino/sticky-pull-request-comment@d4d6b09...0ea0beb)

---
updated-dependencies:
- dependency-name: marocchino/sticky-pull-request-comment
  dependency-version: 3.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: John McCall <john@overturemaps.org>
Signed-off-by: John McCall <john@overturemaps.org>
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 8.0.0 to 8.1.0.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](astral-sh/setup-uv@cec2083...0880764)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 8.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the actions group with 2 updates: [actions/github-script](https://github.com/actions/github-script) and [actions/setup-node](https://github.com/actions/setup-node).


Updates `actions/github-script` from 8.0.0 to 9.0.0
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](actions/github-script@ed59741...3a2844b)

Updates `actions/setup-node` from 6.3.0 to 6.4.0
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@53b8394...48b55a0)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/setup-node
  dependency-version: 6.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
The check-python-code workflow now runs across the supported Python
minor versions (3.10-3.14), and adds a lowest-direct cell that re-
resolves every direct dependency to its declared floor before running
make check. Failures in that cell mean a declared minimum is wrong --
either the code uses a feature newer than the floor admits, or the
pin needs to be raised.

Setting UV_RESOLUTION=lowest-direct causes the existing make uv-sync
to re-resolve from the lockfile rather than follow it, so no separate
lock or constraints file is needed.

The declared floors lie about the actual minimums in several places.
Bump them to what the code requires today:

- pydantic >= 2.12: optionality.py imports
  pydantic.experimental.missing_sentinel, which only exists in 2.12+.
  feature.py imports ModelWrapValidatorHandler at the top level
  (re-exported in 2.10.4) and Tag (added in 2.5).
- ruff >= 0.13: 0.12.x still fires the deprecated UP038 rule under
  select = ["UP"], which the workspace config selects.
- deepdiff >= 8.6: first version shipping a py.typed marker, without
  which mypy errors on import-untyped.

Per-package dev deps that were unpinned (ruff, mypy, pytest in
overture-schema-cli and overture-schema-system; pyyaml, deepdiff in
overture-schema) now match the workspace dev-group floors. uv warns
about unpinned direct deps under lowest-direct resolution; pinning
silences the warnings and makes the floor explicit.

Signed-off-by: Seth Fitzsimmons <seth@mojodna.net>
Signed-off-by: jeffdefacto <jeffdefacto@gmail.com>
Signed-off-by: Seth Fitzsimmons <seth@mojodna.net>
@lowlydba John McCall (lowlydba) merged commit 6b3539e into staging May 11, 2026
25 of 26 checks passed
@lowlydba John McCall (lowlydba) deleted the staging_2026_05_07 branch May 11, 2026 18:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

change type - minor 🤏 Minor schema change. See https://lf-overturemaps.atlassian.net/wiki/x/GgDa

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants