Draft GeoTIFF release-notes section in CHANGELOG (#2345 PR 5)#2384
Conversation
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).
brendancol
left a comment
There was a problem hiding this comment.
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) linksepic #2342, PR #2321. The reference doc only citesissue #2321for 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_FEATURESentries are accounted for and every bullet's tier matches the dict. - The internal-only JPEG bullet correctly notes that
allow_experimental_codecs=Truedoes not unlock the path. That lines up with_validate_read_codec_optinin_attrs.py, which keepsallow_internal_only_jpegas 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).
brendancol
left a comment
There was a problem hiding this comment.
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.
brendancol
left a comment
There was a problem hiding this comment.
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.
Closes #2383. Part of epic #2345 (PR 5).
Summary
Adds a GeoTIFF release contract block to the
[Unreleased]section ofCHANGELOG.md. The section keeps the placeholder version label so therelease manager can stamp the real number later.
Five tier groupings, mirroring
xrspatial.geotiff.SUPPORTED_FEATURES:and write, lossless stable codecs.
BigTIFF, BigTIFF COG.
read escape hatches, rich-tag writes.
codec.jpeg.cog=True, tiled=False, rotated transforms on writes, degenerate-axiswrites 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_FEATURESinxrspatial/geotiff/_attrs.py. The reference page atdocs/source/reference/geotiff.rstwas used as the second source oftruth for the contract surface.
Test plan
SUPPORTED_FEATURESkeys and tiers.docs/source/reference/geotiff.rst(Stable COG contract, VRT support matrix, BigTIFF COG section).
[Unreleased]; no version number chosen.