Skip to content

geotiff: sync attrs_contract.rst with the deprecated-tier landings#2015

Merged
brendancol merged 1 commit into
mainfrom
1984-rst-deprecated-tier-sync
May 18, 2026
Merged

geotiff: sync attrs_contract.rst with the deprecated-tier landings#2015
brendancol merged 1 commit into
mainfrom
1984-rst-deprecated-tier-sync

Conversation

@brendancol
Copy link
Copy Markdown
Contributor

Summary

Docs-only follow-up. The four PR 7 deprecation slices (#2010 vertical, #2011 geographic, #2013 projected, #2014 colormap variants) moved 13 attrs from the pass-through tier to a new deprecated tier in the Python module docstring of xrspatial/geotiff/_attrs.py, but did not update the user-guide page. As a result docs/source/user_guide/attrs_contract.rst still listed those 13 attrs as round-trip-best-effort while the code fires a DeprecationWarning every time one is emitted on read.

This PR brings the user-guide page back in line with the code:

  • Trim the Pass-through keys table to image_description, extra_samples, colormap (the three attrs that actually round-trip via _merge_friendly_extra_tags). The eleven GeoKey-derived attrs plus the two colormap variants moved out.
  • Unify the two deprecated sections that existed pre-PR (Deprecated keys for the colormap variants, Deprecated GeoKey attrs for the GeoKey slices) into one Deprecated keys section with two subsections: GeoKey-derived attrs (sharing the pyproj migration recipe) and matplotlib colormap variants (per-row migration in a list-table).
  • Update the opening summary from "three tiers" to "four tiers".
  • Update the Round-trip invariants section: the pass-through subsection now reflects that only three attrs live there and all three round-trip; add a deprecated subsection that explains the warning-only phase and points at the future contract-version bump to 2.

No production-code change.

Test plan

  • docutils parses the page (:func: / :mod: role warnings are Sphinx-only; same pattern as the rest of the docs).
  • Sphinx build in CI confirms the page renders.

Refs #1984.

The four PR 7 deprecation slices (#2010 vertical, #2011 geographic,
#2013 projected, #2014 colormap variants) moved 13 attrs from the
pass-through tier to a new deprecated tier in
``xrspatial/geotiff/_attrs.py`` but did not update the user-guide
page, which left ``docs/source/user_guide/attrs_contract.rst``
listing those attrs as round-trip-best-effort while the Python code
fires a DeprecationWarning every time one is emitted.

This is docs-only:

* Trim ``Pass-through keys`` table to ``image_description``,
  ``extra_samples``, ``colormap`` -- the three attrs that genuinely
  round-trip via ``_merge_friendly_extra_tags``. The 11 GeoKey-
  derived attrs plus the two colormap variants moved out.
* Merge the two separate deprecated sections that existed pre-PR
  (``Deprecated keys`` for colormap variants, ``Deprecated GeoKey
  attrs`` for the GeoKey slices) into one ``Deprecated keys``
  section with two subsections: GeoKey-derived attrs (with the
  shared pyproj migration recipe) and matplotlib colormap variants
  (with per-row migration in a list-table).
* Update the page's opening summary from "three tiers" to "four
  tiers" so the first paragraph matches the table-of-contents.
* Update the ``Round-trip invariants`` section: the pass-through
  subsection now reflects that only three attrs live there and all
  three round-trip; add a deprecated subsection that explains the
  warning-only phase and points at the future contract-version bump
  to 2 when removal lands.

No production-code change. Verified the file still parses with
docutils (Sphinx-specific ``:func:`` / ``:mod:`` role warnings are
the same pattern used across the rest of the docs).

Refs #1984.
@github-actions github-actions Bot added the performance PR touches performance-sensitive code label May 18, 2026
@brendancol brendancol merged commit a56336c into main May 18, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

performance PR touches performance-sensitive code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant