Skip to content

[REFACTOR](schema) Split system.primitive into numeric and geometric modules#552

Open
Seth Fitzsimmons (sethfitz) wants to merge 1 commit into
mainfrom
numeric-types-rename
Open

[REFACTOR](schema) Split system.primitive into numeric and geometric modules#552
Seth Fitzsimmons (sethfitz) wants to merge 1 commit into
mainfrom
numeric-types-rename

Conversation

@sethfitz

Copy link
Copy Markdown
Collaborator

Closes #464.

Splits overture.schema.system.primitive along its two concerns:

  • The numeric NewTypes (uint8 through float64) move to overture.schema.system.numeric
  • BBox and Geometry move to overture.schema.system.geometric
  • The primitive package is removed; imports updated across ~35 files

The generated reference page for the numeric types moves from system/primitive/primitives ("Primitive Types") to system/numeric ("Numeric Types"), and the geometry page from system/primitive/geometry to system/geometry. Remaining "primitive" wording in system-package docstrings is retired with it.

The BBox/Geometry move implements Victor Schappert (@vcschapp)'s suggestion from the issue thread; flagging it here since it wasn't settled there.

@github-actions

github-actions Bot commented Jul 10, 2026

Copy link
Copy Markdown

🗺️ Schema reference docs preview is live!

🌍 Preview https://staging.overturemaps.org/schema/pr/552/schema/index.html
🕐 Updated Jul 21, 2026 18:07 UTC
📝 Commit 089645f
🔧 env SCHEMA_PREVIEW true

Note

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

…odules

overture.schema.system.primitive mixed two unrelated concerns: portable
numeric NewTypes (int8, uint32, float64, etc.) and geometric types
(BBox, Geometry, GeometryType, GeometryTypeConstraint). The generated
reference page this produced was titled "Primitive Types" at
system/primitive/primitives even though it only covered numeric types.

Numeric types move to a new numeric.py module; BBox and Geometry move to
a new geometric package. The primitive package is removed and every
import across the workspace (themes, common, codegen, and their tests,
including several doctest examples) is updated to the correct module.
Remaining "primitive" wording in system-package docstrings, the package
READMEs, and the Pydantic guide is retired with it.

The aggregate docs pages move with their source: system/numeric.md
(title "Numeric Types") and system/geometry.md, both flat under system/
like the existing scalar type pages rather than nested under primitive/.

Closes #464.

Signed-off-by: Seth Fitzsimmons <seth@mojodna.net>

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.

  1. Since a couple of MD output filenames changed (primitive.md - gone; numeric.md - new) are there any external hard-code links to these files we have to keep in sync?
  2. I made one inline comment suggesting maybe geometry.md should become geometric.md for consistency.

Apart from the above minor questions/comments, fully on board and ready to ship this!

`system/primitive/geometry.md`. These are hardcoded paths since the types share a single
Aggregate pages come first. All numeric types point to
`system/numeric.md`. All geometry types point to
`system/geometry.md`. These are hardcoded paths since the types share a single

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.

Given the model names of geometric/numeric it would make sense to rename the output MD file to geometric.md.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

"Primitive Types" → "Numeric Types"

2 participants