[1.0.0] Scope freeze: reconcile dark corners

Open
#2,930 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Refactor
Clarity
Needs clarification
Activity status
Quiet
Tech stack
python

Research direction

Start with the README feature matrix, xrspatial/init.py, and the stability policy referenced by #2415; then inspect the listed module files and compare their public symbols. Record a decision for each checklist item, update the matrix or public markers accordingly, and complete the LTS and re-sweep bookkeeping.

Written by the indexing model from the issue text.

Description

1.0.0-tracking scope-freeze

Scope freeze: reconcile dark corners before 1.0.0

1.0.0 freezes the public surface to the README feature matrix. Before the freeze we resolve every function that lives in the code but is not cleanly accounted for in the matrix: either promote it (export from xrspatial/__init__.py and document it in the matrix) or drop it from the public surface (mark private or keep experimental). Each group tracking issue blocks its "Scope frozen" checkbox on the relevant decisions here.

Multispectral indices (in README, not exported) — xrspatial/multispectral.py
  • gci: promote or drop
  • ebbi: promote or drop
  • nbr2: promote or drop
  • true_color: promote or drop
Focal (in README, not exported) — xrspatial/focal.py
  • apply: promote or drop
  • hotspots (Getis-Ord Gi*): promote or drop. Distinct from the exported emerging_hotspots.
  • focal_stats: promote or drop
Experimental — xrspatial/experimental/min_observable_height.py
  • min_observable_height: keep experimental, promote, or drop
Exported but underdocumented in the matrix
  • diagnose (xrspatial/diagnostics.py): document or mark internal
  • hypsometric_integral (xrspatial/zonal.py): document or mark internal
  • suggest_zonal_canvas (xrspatial/zonal.py): document or mark internal
  • clip_polygon (xrspatial/polygon_clip.py): document or mark internal
LTS commitment
  • Declare the xrspatial/__init__.py high-level spellings and the .xrs accessor as LTS. See the stability policy doc and #2415.
Re-sweep currency (process)
  • Approved current models: opus-4.x, gpt-5.5. A sweep field is set to Clear only after a fresh /deep-sweep <module> by a current model finds no new CRITICAL/HIGH. Record Last swept = <model> <date> on the item.
  • One fix per PR for sweep findings.
  • When a newer frontier model ships, add it to the approved list. The "Stale sweeps" board view then surfaces every group whose Last swept predates it, and those re-enter sweeping. A Clear is provisional until re-swept by the newest model.
Dominant language
Python
Stars
972
Forks
92
Avg merge
2d 12h
Merged PRs (30d)
7

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from xarray-contrib/xarray-spatial

All issues in xarray-contrib/xarray-spatial

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.