OvertureMaps / OvertureMaps/schema
Deprecate the `ext_*` column
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 213
- Forks
- 22
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 31
Description
Type
Task
Scope
Multi-theme or Platform
Skillset
engineering
Description
The ext_* field predates the current extensions design. Investigate any existing uses of this field. Mark it deprecated as part of the v2.0.0 release, document what replaces it, find any remaining dependencies. Set a date to drop it.
This lives in the YAML and Pydantic versions of the schema
>>> print("payload keys :", sorted(gj["properties"]))
payload keys : ['class', 'ext_bar', 'ext_foo', 'height', 'is_underground', 'level', 'num_floors', 'num_floors_underground', 'sources', 'subtype', 'theme', 'type', 'version']
Done when: deprecation is in the schema and the replacement is documented
GitHub issues of yore for context:
- #634 - @RoelBollens-TomTom defines a blocker to removing
ext_* - #639
- #602 - @vcschapp had wanted to drop support for
ext_*from OvertureFeature. It is not supported in the Markdown and PySpark validation codegen so this seems like a good time to drop it before GA (public PyPI publishing) of the schema packages. DEFERRED because theext_*stuff is being used in the reference counterexamples and I don't want to mess with that right now. - https://github.com/OvertureMaps/tf-data-platform/issues/4118 --
ext_*had been used internally for OSM processing. Check with @atiannicelli about any other internal uses - https://github.com/OvertureMaps/schema-wg/issues/400
- Seth: "The meta-issue is that I believe that all models that compose an OvertureFeature subclass should behave as if@no_extra_fieldswere applied, even if it's not explicit, due to the constraints that most format serializations introduce (fixed set of columns, explicit struct members). If you need a dict, use a dict. Apply patterns if you need to, but don't make it a hybrid."
- Vic: "I agree with this. I think today that is quasi-handled by theext_*enabling code which already puts on "additionalProperties": false but allows through the narrow exception ofext_*. Theext_*exception is problematic, but when we remove it we should be left with all OvertureFeatures behaving as if @no_extra_fields was applied." - https://github.com/OvertureMaps/schema-wg/issues/359 - The original intention of the
ext_*property: third party wants to be able to enrich Overture data with their own specific data.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the YAML and Pydantic schema definitions and search the repository for existing ext_* uses and dependencies. Review the linked context, especially issues #634, #639, and #602, before deciding the deprecation date. Done means the schema marks ext_* deprecated and documentation identifies its replacement.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend-api-design, data, documentation
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100