Skip to content

Promote local COG contract to stable: flip tiers, document the contract, release notes (#2286 prod-ready wave A) #2300

@brendancol

Description

@brendancol

Follow-up to #2286 wave 1 (#2291, #2292, #2293, #2294 — all merged).

With the writer compliance suite, parity gate, byte-budget contract, and tier split in place, the gating evidence to flip the local COG paths to stable exists. This issue captures that flip and the documentation that goes with it.

Required changes

xrspatial/geotiff/_attrs.py

  • writer.cog: advancedstable
  • reader.local_cog: advancedstable
  • reader.http_cog: stays advanced (HTTP COG has separate transport/security/coalescing concerns; the byte-budget contract in Pin HTTP/range COG byte-budget contract (#2293) #2298 pins behavior but does not yet make a promotion case)
  • Update the comment block above SUPPORTED_FEATURES to describe what the stable COG contract guarantees and what stays advanced.

docs/source/reference/geotiff.rst

Add a section titled something like "Stable COG contract" with these bullets verbatim (or close), pulled from #2286:

  • Axis-aligned 2D/3D rasters.
  • CPU writer and CPU reader paths.
  • Stable codecs only: none, deflate, lzw, zstd, packbits.
  • Internal overviews only.
  • Normal CRS, transform, dtype, nodata, band, pixel-is-area / pixel-is-point behavior.

And a "Outside the stable contract" section listing:

  • GPU COG read/write.
  • Experimental codecs (lerc, jpeg2000, j2k, lz4).
  • Internal-only JPEG.
  • Rotated transforms.
  • External .tif.ovr sidecars.
  • File-like destinations with cog=True.
  • BigTIFF COG (tracked separately).
  • HTTP/range COG (tracked separately; see Pin HTTP/range COG byte-budget contract (#2293) #2298 byte-budget contract).

examples/user_guide/52_COG_Overview_Generation.ipynb

Update any prose that says "use with caution" / "experimental" for COG writer paths to reflect the stable contract. Keep the cautious phrasing for HTTP COG and the out-of-scope combos.

Release notes

Add an entry in the release notes file describing the COG stability contract — what is now stable, what stays advanced, and the gating tests that back the promotion (#2292, #2293, #2294 compliance + parity + byte-budget).

Out of scope

  • BigTIFF COG (tracked separately).
  • HTTP COG promotion (tracked separately).
  • Error-message UX (tracked separately).
  • Touching _writer.py or any other production code path.

Acceptance

  • SUPPORTED_FEATURES['writer.cog'] == 'stable' and SUPPORTED_FEATURES['reader.local_cog'] == 'stable'.
  • reader.http_cog remains advanced with a documented reason in the code comment.
  • Docs reference page renders with the stable-contract section and the out-of-scope list.
  • Notebook prose matches the new contract.
  • Release notes entry present.
  • Full test suite green.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions