Roadmap#

tilearray turns remote tile services into Dask-backed xarray arrays for geo data engineers: a large AOI becomes a polite fetch-and-assemble problem, with a clear memory / concurrency / lazy-vs-cache story and the same API from a laptop to a larger machine.

We prefer fewer, meaningful releases. Work lands on main continuously; PyPI is cut when a theme’s exit criteria clear — not as feature drip.

  0.1.x (shipped)          0.2                      0.3                         1.0
  open alpha proof    →    trustworthy core    →    scale + hosts          →    stable contract

Tracking lives in GitHub milestones (linked below once published) and a small set of thematic issues — not one ticket per checklist cell.

0.2 — Trustworthy core#

Make the installed library boringly reliable on the documented paths: fix objective-blocking engineering debt without expanding the protocol surface.

  • Replace or quarantine the GeoTIFF decode spine (drop the fragile zarr pin cage)

  • Analysis-ready CRS / attrs and a documented rioxarray handoff

  • One canonical compute habit and a fresh stranger first-look pass

  • Large-AOI politeness evidence / nightly soak under presets

  • Start HTTP consolidation (capabilities → httpx or one UA/timeout policy)

Exit criteria for tagging 0.2.0

  • [ ] Clean-env pip install tilearray + WCS GeoTIFF + XYZ quickstarts succeed without pin gymnastics

  • [ ] Documented attrs/CRS story sufficient for xarray → plot / simple rioxarray on EA + GIBS/OSM examples

  • [ ] Fresh stranger first-look: install → mosaic succeeds; no contradictory compute guidance on primary paths

  • [ ] CHANGELOG theme is coherent; attestations appear on this (or the immediately prior) PyPI artifact

  • [ ] No known silent mosaic corruption on documented RGB / single-band GeoTIFF paths

Milestone: 0.2 Trustworthy core

0.3 — Scale & hosts#

Big AOI on more real hosts, safely — including “larger machine” without a second API.

  • Host preset pack (USGS / GIBS / keyed XYZ pattern)

  • Larger-machine / distributed “don’t stampede” story

  • WMTS productization (guide + tests)

  • AOI/grid ergonomics + fetch summary UX

Exit criteria for tagging 0.3.0

  • [ ] ≥1 additional WCS and ≥1 WMTS/WMS host with preset or first-class recipe + visual guide

  • [ ] Written + tested guidance for scaling beyond a laptop that preserves host ceilings

  • [ ] Large-AOI soak evidence (hundreds–thousands of tiles on at least one preset host) in docs or benchmarks

  • [ ] WMS/WMTS contract coverage no longer the weak sibling of WCS

Milestone: 0.3 Scale & hosts

1.0 — Stable contract#

Freeze the public API users already rely on; graduate from Alpha.

  • Public API freeze / Alpha graduation checklist

  • Hardening (property tests, stronger nightly, supported Python matrix)

  • Docs maturity (deeper API reference; optional versioned docs later)

Exit criteria for tagging 1.0.0

  • [ ] Stability guarantee published; Alpha badge removed

  • [ ] North-star success criteria met on supported Python versions

  • [ ] No S0 gaps open; S1 gaps closed or explicitly accepted in docs as known limits

  • [ ] Provenance/attestations on the 1.0 artifact; release checklist boring

Milestone: 1.0 Stable contract

Non-goals (through ~0.3)#

  1. STAC / COG cube builder — leave to stackstac / odc-stac / rioxarray; interoperate, don’t duplicate.

  2. Map SDK or tile server — no Leaflet/Cesium UI; no OWS-style serving.

  3. Async-first rewrite — sync httpx + Dask threads stays the laptop-friendly model unless evidence forces otherwise.

  4. GDAL on every path — optional extra later is fine; basic XYZ should not require full GDAL.

  5. Many tiny PyPI releases — batch on main; cut when a theme exits.

  6. Universal host coverage / ToS-grey demos — presets only where politeness and licensing are clear.

  7. Full temporal datacube API — year/layer switching stays recipe-level until the spatial large-AOI story is solid.

  8. Rewriting Sphinx onto another docs stack — the usage-guides pipeline stays unless it fails the visual/live-host preference.

See also#