OvertureMaps / OvertureMaps/schema

[FEATURE] Deprecation-manifest codegen target that emits changelog fragments in diff mode

Open
#677 0 comments 0 reactions 1 assignee View on GitHub

@sethfitz is already working on this.

Since Aug 19, 2026.

enhancement
Dominant language
Python
Stars
213
Forks
22
Avg merge
3d 3h
Merged PRs (30d)
31

Description

Sub-issue of #639 — surface 3 of 3 ("What flows where"), automatic path. Stretch.

Depends on #674 for the extraction carrier and on #675 for the deprecation fragment type.

Scope

Detect when a deprecation is introduced, so nobody has to remember to write the fragment.

A codegen deprecation-manifest target emits a small structured list of every deprecated element — field path or model name, plus its message. Think of it as a generation target simpler than the Markdown reference: same extraction input, a summary instead of a document.

Run in diff mode against the last released tag, the target compares that manifest to the current one and emits each newly-appeared entry directly as a deprecation fragment. Detection and scaffolding fold into the one target, and the fragment body is the message already authored on the annotation — nothing is written twice.

Open questions

  • Is manifest-plus-diff the right mechanism, or does a simpler check over the diff of the models themselves do the job?
  • Where does diff mode run — a release-time tool, or a CI check on every PR that fails when a new deprecation ships without a fragment? The second catches the omission when it is cheap to fix.
  • What is the manifest's stable identity for a field, given fields move between models? A qualified path is the obvious answer and needs confirming against the union/arm cases.

Acceptance

  • The manifest target emits one entry per deprecated field and model, with its message.
  • Diff mode against a tag with no deprecations emits a fragment per deprecated element; against the current HEAD it emits nothing.
  • A deprecation removed between releases does not emit a fragment.

Integration points

  • A new codegen output format alongside markdown, reading the same FieldSpec.deprecated / model-spec carrier from #674.
  • Fragments land in the affected package's changelog.d/ as <pr>.deprecation.md.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.