[chore] [but is it?] Release version 2.0.0 🚀🚀🚀🚀🚀 - #709
Conversation
`connectors` was optional with a `[]` default that its own `min_length=2` constraint rejected. Pydantic does not validate defaults unless `validate_default=True`, so the invalid value was accepted on the way in and refused on the way back out: a segment built without connectors dumped to `connectors: []`, which re-validation rejected. Every segment is physically connected to at least two connectors, and the published data agrees -- across all 350,469,378 segments in release 2026-08-19.0 there is not one null, empty, or single-element `connectors`. So the field becomes required rather than optional-with-a-default, and moves up beside `subtype` in the model's required section. The YAML schema gains `connectors` in its segment `required` list, dropping the matching `default: []` beside `minItems: 2`. Every valid segment example gains a two-connector array, and so does every segment counterexample that was not testing connectors, so each keeps failing only for the defect it names. Both corpora are updated: `reference/` (read by the test suite) and the root `examples/`/`counterexamples/` trees (the docs site symlinks `examples/`). `theme-type-mismatch.json` is left alone -- it declares `theme: buildings` with `type: segment` and never reaches a segment arm. Fixes #669 Signed-off-by: Seth Fitzsimmons <seth@mojodna.net>
Signed-off-by: Connie Sun <connie@overturemaps.org>
Signed-off-by: Connie Sun <connie@overturemaps.org>
Signed-off-by: Connie Sun <connie@overturemaps.org>
Signed-off-by: Connie Sun <connie@overturemaps.org>
…gories Signed-off-by: Connie Sun <connie@overturemaps.org>
…to places init Signed-off-by: Connie Sun <connie@overturemaps.org>
Implements the policy in #695 for three of the four remaining sites: no schema field carries a non-null default, and where a value would come from a default the publisher supplies it in the published data. - `Stacked.level` drops `= 0` and becomes `None`. The absence sentence goes on the field rather than the `Level` NewType, because `Level` is also the type of the required `LevelRule.value`, where absence is impossible. Removing the default also retires the `# type: ignore[assignment]` that existed only to admit it. - `Land.class_`, `Land.subtype`, `Water.class_`, `Water.subtype` become required, matching `Infrastructure` and `LandUse`. No consumer sees a difference. Measured on release 2026-08-19.0, one partition per type: `level = 0` appears in 0 of 1,174,629 land and 0 of 1,985,644 water rows, and `class`/`subtype` are never null in either. Both partitions validate clean against the changed models. `SpeedLimitRule.is_max_speed_variable` is deliberately left out. Its default cannot be removed without stating what absence means, and the data does not settle that: the publisher writes an explicit `false` for closed-world booleans (`building.has_parts` is 0 null / 4,777,998 false) but never for this one (0 false in 1,376,379 rules across three partitions), so absence is an unrecorded value rather than a recorded "no". That call needs a domain owner. Refs #696 Signed-off-by: Seth Fitzsimmons <seth@mojodna.net>
Completes the removal begun in the previous commit: `SpeedLimitRule. is_max_speed_variable` drops `= False`. A rule parsed without the flag now yields `None` instead of `False`. The description is left as it stands. What absence means here is a domain question the schema should not answer by inference, and the existing wording does not define the term well enough to extend safely. Both are worth settling, separately, with the transportation folks. Refs #696 Signed-off-by: Seth Fitzsimmons <seth@mojodna.net>
Coordinated 2.0.0 launch of all 13 packages/* for the first public PyPI release. Bumps every package version 0.1.1/1.17.1 -> 2.0.0, raises all intra-repo dependency floors to >=2.0.0 (including overture-schema-validation's previously-bare common/system deps), and folds towncrier changelog.d fragments into per-package CHANGELOG.md. Refreshes uv.lock. The umbrella overture-schema majors purely by cascade: its dependencies overture-schema-theme-places and -transportation carry breaking changes (#434, #669), which forces the umbrella major bump and floor raise per the versioning guardrails. Signed-off-by: schapper <schapper@amazon.com>
This comment was marked as spam.
This comment was marked as spam.
🗺️ Schema reference docs preview is live!
Note ♻️ This preview updates automatically with each push to this PR. |
This comment was marked as spam.
This comment was marked as spam.
This comment was marked as spam.
This comment was marked as spam.
This comment was marked as spam.
This comment was marked as spam.
1 similar comment
|
|
John McCall (@lowlydba) Are there supposed to be two
|
|
John McCall (@lowlydba) I think the Structure of this PR: Scenario the Scenario that should actually happen if we create a normal non-squash merge commit. First we merge with a merge commit: Then the |
Its the same workflow, one is the actual check, one is the rollup-check to allow for no-op skip use cases where we're targeting vnext. working as expected 👍🏻 |
This comment was marked as spam.
This comment was marked as spam.
question: Good catch, but I think the fix is narrower than "use a merge commit for this PR.". I may have misspoken earlier in the meeting about the level of flexibility for release paths. CONTRIBUTING.md already documents this exact case: Two ways to close this:
Either way, squash stays the default everywhere else; only the release path itself needs a real merge commit. We may want to consider disabling rebasing altogether to reduce the complications from differing merge contributions overall.
|
I like the version of option 2 that is "JFDY and cut an issue to update the automation"! Thoughts? |
This was a Copilot suggestion on the v2.0.0 release PR, #709. Signed-off-by: Victor Schappert <victor.schappert@protonmail.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: Victor Schappert <victor.schappert@protonmail.com>
This comment was marked as spam.
This comment was marked as spam.
Seth Fitzsimmons (sethfitz)
left a comment
There was a problem hiding this comment.
The CHANGELOG entries are a bit weird with their recency bias, so I’d be inclined to clear them out in a follow-up commit and point to the launch blog post once it’s live.
|
John McCall (@lowlydba) Can we merge this w/ waiting on those checks? I used to have Admin and could do this but was unceremoniously stripped of my privileges :) I'd rather not wait for #714 and also rather not go fix the DCO on Jake's old commits (although perhaps if you add him as a member that would solve itself on a re-run?) |


Description
This PR releases version
2.0.0of the Overture Schema 🎉It's been a big team effort to get here, so thanks to everyone who made this happen! 🙌
Reviewers, please review this carefully as it would be ideal to get it right the first time if possible. 🔍
Merge Strategy
This PR should be merged to main as a a MERGE COMMIT. It's important to do it as a merge commit. The branching automation should then be able to rebase
vnexton top of it, getting it ready for the next major change.Checks Failing
The following checks are failing:
main(Jacob Wasserman (@jwass)' commits from January/February timeframe). Mitigation: Override the check, it's a false positive.vnextcompatibility. This appears to be failing because this type of major change release isn't contemplated by the compatibility check. Mitigation: Please review the analysis here carefully and if it looks right, we override.What Happens on Merge
When this PR is merged, it should engage the automation machinery to do all of the following:
overture-schema*packages to PyPI at version 2.0.0.overture-schema*package.overture-schema.jsonto the GitHub release for theoverture-schemaumbrella, ella, ella package.vnextovermainso thatvnextis ready to accept the next major change PR.v2.0.0releases to CodeArtifact.The machinery is reviewed and tested but it would not be surprising if something breaks and we have to jump in and fix it. In that case we may need to do some patching/kludging effort or manual effort to unstick any failed publishes and get the process to complete itself. It's all good.
Mandatory Bureaucracy
Closes #710.