[BUG](system) Export Feature from the package root - #738
Merged
Seth Fitzsimmons (sethfitz) merged 1 commit intoSep 15, 2026
Merged
Seth Fitzsimmons (sethfitz) merged 1 commit into
Seth Fitzsimmons (sethfitz) merged 1 commit into
Conversation
Seth Fitzsimmons (sethfitz)
force-pushed
the
export-system-feature
branch
from
September 11, 2026 05:01
dace9a3 to
2c614fb
Compare
Seth Fitzsimmons (sethfitz)
force-pushed
the
export-system-feature
branch
from
September 11, 2026 05:14
2c614fb to
b2f3710
Compare
Roel Bollens (RoelBollens-TomTom)
approved these changes
Sep 11, 2026
`overture.schema.common` exports `OvertureFeature`, but `overture.schema.system` exported only its submodules and `create_model`, so `from overture.schema.system import Feature` raised ImportError while AUTHORING.md tells authors to subclass `system.Feature` directly. Closes OvertureMaps#737 Signed-off-by: Seth Fitzsimmons <seth@mojodna.net>
Seth Fitzsimmons (sethfitz)
force-pushed
the
export-system-feature
branch
from
September 13, 2026 00:48
b2f3710 to
bf33871
Compare
Seth Fitzsimmons (sethfitz)
merged commit Sep 15, 2026
b574b73
into
OvertureMaps:main
24 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
overture.schema.commonexportsOvertureFeatureat its package root.overture.schema.systemexported only its submodules andcreate_model, so the parallel name did not resolve:AUTHORING.md points third-party authors at the name that did not exist: "You don't have to build on
OvertureFeature— subclasssystem.Featuredirectly for a GeoJSON-serializing model with none of the Overture conventions." Anyone taking that literally hits an ImportError on their first line.This adds
from .feature import Featureand"Feature"to__all__, matching howcommonexportsFeatureVersion,OvertureFeature,ThemeTandTypeTfrom its ownfeaturesubmodule. The deep import keeps working; nothing else changes.Scope is
Featurealone.GeometryandBBoxundergeometric, andIdunderref, sit in the same position — how wide the system root's surface should be is a separate question, and #737 says so.Reference
Testing
test_feature_is_exported_from_package_rootasserts both the attribute and its presence in__all__. Reverting the__init__.pychange alone fails it withAttributeError: module 'overture.schema.system' has no attribute 'Feature'; it is the only added test, and it is a real gate rather than a behaviour-preservation guard.make lint-only,make mypy-only,make doctest-onlyand the full suite pass.Checklist
Checklist of tasks commonly-associated with schema pull requests. Please review the relevant checklists and ensure you do all the tasks that are required for the change you made.
Abut is not intended to test propertyA's validity, and you made a schema change that invalidates propertyAin that counterexample, fix the counterexample to align it with your schema change.Documentation website
Update the hyperlink below to put the pull request number in.
[Docs preview for this PR.](https://dfhx9f55j8eg5.cloudfront.net/pr/<PUT THE PR # HERE>)