Skip to content

Draft GeoTIFF release-notes section in CHANGELOG (#2345 PR 5)#2384

Merged
brendancol merged 3 commits into
mainfrom
issue-2383
May 25, 2026
Merged

Draft GeoTIFF release-notes section in CHANGELOG (#2345 PR 5)#2384
brendancol merged 3 commits into
mainfrom
issue-2383

Conversation

@brendancol
Copy link
Copy Markdown
Contributor

Closes #2383. Part of epic #2345 (PR 5).

Summary

Adds a GeoTIFF release contract block to the [Unreleased] section of
CHANGELOG.md. The section keeps the placeholder version label so the
release manager can stamp the real number later.

Five tier groupings, mirroring xrspatial.geotiff.SUPPORTED_FEATURES:

  • Stable: local-file GeoTIFF read and write, dask reads, local COG read
    and write, lossless stable codecs.
  • Advanced: fsspec, HTTPS, HTTP COG, VRT, sidecar OVR, writer overviews,
    BigTIFF, BigTIFF COG.
  • Experimental: GPU read and write, experimental codecs, permissive
    read escape hatches, rich-tag writes.
  • Internal-only: codec.jpeg.
  • Unsupported for this release: warped VRT, nested VRT, mixed-CRS VRT,
    cog=True, tiled=False, rotated transforms on writes, degenerate-axis
    writes without an explicit transform.

Each bullet links to the owning epic or PR (#2286, #2321, #2340, #2341,
#2342, #2344) and matches the tier reported by SUPPORTED_FEATURES in
xrspatial/geotiff/_attrs.py. The reference page at
docs/source/reference/geotiff.rst was used as the second source of
truth for the contract surface.

Test plan

  • Bullets cross-checked against SUPPORTED_FEATURES keys and tiers.
  • Bullets cross-checked against docs/source/reference/geotiff.rst
    (Stable COG contract, VRT support matrix, BigTIFF COG section).
  • No bullet promises behaviour outside the contract.
  • Section header stays as [Unreleased]; no version number chosen.

Adds a GeoTIFF release contract block to the [Unreleased] section of
CHANGELOG.md, covering all five tiers (Stable, Advanced, Experimental,
Internal-only, Unsupported for this release). Each bullet links to its
owning epic or PR (#2286, #2321, #2340, #2341, #2342, #2344) and matches
SUPPORTED_FEATURES in xrspatial/geotiff/_attrs.py.

Closes #2383. Part of epic #2345 (PR 5).
@github-actions github-actions Bot added the performance PR touches performance-sensitive code label May 25, 2026
Copy link
Copy Markdown
Contributor Author

@brendancol brendancol left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR Review: Draft GeoTIFF release-notes section in CHANGELOG (#2345 PR 5)

Docs-only against CHANGELOG.md, so I checked the bullets against SUPPORTED_FEATURES in _attrs.py and the reference page at docs/source/reference/geotiff.rst.

Blockers

None. Every bullet maps to an entry in xrspatial/geotiff/_attrs.py::SUPPORTED_FEATURES with the same tier, and every bullet carries an epic or PR link.

Suggestions

  • CHANGELOG.md:7: the rest of the changelog stops at ####; this PR introduces ##### for the five tier subheadings. Either is fine, but it would help to either keep the precedent (bold labels like **Stable** on intro lines) or call out the new depth on purpose so future entries follow the same pattern.

  • CHANGELOG.md:21 (VRT advanced bullet) links epic #2342, PR #2321. The reference doc only cites issue #2321 for the VRT support matrix. Both citations are accurate; the mismatch is just that the doc page doesn't mention #2342. Worth a follow-up to line the two sources up.

Nits

  • CHANGELOG.md:13: the preamble line "This release locks down what the public GeoTIFF and COG surface promises." reads stronger than the rest of the file, which uses plain past-tense behaviour notes. Something closer to "Tiers what the public GeoTIFF and COG surface promises for this release." matches the existing voice.

  • CHANGELOG.md:30: the BigTIFF COG bullet uses "release-cycle soak rule" the same way the reference docs do, but neither source pins the actual soak duration. Worth a follow-up against epic #2345.

What looks good

  • The tier mapping is complete: all 27 SUPPORTED_FEATURES entries are accounted for and every bullet's tier matches the dict.
  • The internal-only JPEG bullet correctly notes that allow_experimental_codecs=True does not unlock the path. That lines up with _validate_read_codec_optin in _attrs.py, which keeps allow_internal_only_jpeg as a separate flag.
  • The Unsupported section names concrete failure modes (warped VRT, nested VRT, mixed-CRS VRT, cog=True, tiled=False, rotated writes, degenerate-axis writes) instead of abstract categories.

Checklist

  • Tier mapping cross-checked against SUPPORTED_FEATURES.
  • Bullets cross-checked against docs/source/reference/geotiff.rst.
  • Epic/PR links match the requested set (#2286, #2321, #2340, #2341, #2342, #2344) plus the per-feature gate PRs cited in _attrs.py (#2292, #2293, #2294, #2298).
  • No bullet promises behaviour outside the contract.
  • Section header stays as [Unreleased].
  • [N/A] Algorithm / NaN / dask / benchmarks / README / docstrings -- docs-only change.

- Switch tier subheadings from h5 to inline bold labels to match the
  existing changelog's max-h4 precedent.
- Soften the GeoTIFF release-contract preamble to match the file's
  plain past-tense behaviour-note voice.

Deferred: cross-ref note in docs/source/reference/geotiff.rst linking
epic #2342 (the issue scopes work to CHANGELOG.md only).
Deferred: pinning the COG release-cycle soak duration (out of scope
for this PR; worth a follow-up against epic #2345).
Copy link
Copy Markdown
Contributor Author

@brendancol brendancol left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR Review (loop 2): Draft GeoTIFF release-notes section in CHANGELOG

Re-checking after the heading and preamble fixes. The diff is a single 49-line addition to CHANGELOG.md.

Blockers

None.

Suggestions

None. Loop-1 items are addressed: tier headings use **Stable** etc. instead of #####, and the preamble reads in plain past tense.

Nits

  • CHANGELOG.md:39-41 (Unsupported tier): the **Unsupported for this release** label has a blank line and an explanatory paragraph between it and the bullets, while the four tiers above it have the label sitting directly on top of the bullets. The "These combinations fail closed..." sentence is worth keeping; it's the only label that doesn't follow the pattern. Either move that sentence into the first bullet or accept the small inconsistency.

What looks good

  • Both loop-1 suggestions landed cleanly.
  • Tier mapping still matches SUPPORTED_FEATURES. No bullet contents changed, so the loop-1 cross-checks still hold.

Checklist

  • Tier mapping cross-checked against SUPPORTED_FEATURES.
  • Bullets cross-checked against docs/source/reference/geotiff.rst.
  • Loop-1 review items addressed.
  • Section header stays as [Unreleased].
  • [N/A] Algorithm / NaN / dask / benchmarks / README / docstrings -- docs-only change.

Loop-2 review nit: the Unsupported tier had a blank-line gap and a
standalone preamble paragraph, while the four tiers above it placed
the label directly on top of the bullets. Inline the preamble into the
label so all five tiers follow the same shape.
Copy link
Copy Markdown
Contributor Author

@brendancol brendancol left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR Review (loop 3): Draft GeoTIFF release-notes section in CHANGELOG

Final pass. The five tier labels now use the same shape (label directly above bullets), and the Unsupported preamble is inlined as a parenthetical on the label line.

Blockers

None.

Suggestions

None.

Nits

None remaining.

What looks good

  • All three review loops landed: heading depth, preamble tone, and label-pattern consistency.
  • Tier mapping still matches SUPPORTED_FEATURES; no bullet content has changed across the three commits, so the original cross-checks still hold.

Checklist

  • Tier mapping cross-checked against SUPPORTED_FEATURES.
  • Bullets cross-checked against docs/source/reference/geotiff.rst.
  • Loop-1 and loop-2 items addressed.
  • Section header stays as [Unreleased].
  • [N/A] Algorithm / NaN / dask / benchmarks / README / docstrings -- docs-only change.

@brendancol brendancol merged commit a000f98 into main May 25, 2026
4 of 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.

GeoTIFF release-notes draft in CHANGELOG (#2345 PR 5)

1 participant