Skip to content

test(indexing): broaden planner property coverage - #4346

Merged
d-v-b merged 16 commits into
zarr-developers:mainfrom
d-v-b:codex/indexing-planner-properties
Sep 14, 2026
Merged

d-v-b merged 16 commits into
zarr-developers:mainfrom
d-v-b:codex/indexing-planner-properties

Conversation

@d-v-b

@d-v-b d-v-b commented Sep 13, 2026 •

Copy link
Copy Markdown
Contributor

This AI-authored PR ensures that zarr-indexing chunk planner machinery is tested against chunk grids with negative chunk indices.

🤖 AI text below 🤖

Depends on #4345. This draft targets upstream main, so its diff includes the prerequisite audit commits until that PR merges. Follow-up-only diff.

The planner's generated dependency-graph tests previously used zero-origin requests and a single nonnegative fixed grid. Expand the pointwise oracle to signed request origins, translated custom grids with signed chunk IDs, arbitrary broadcast ArrayMap dependencies, independent affine axes, ConstantMaps, offsets and strides, duplicate storage points, and empty requests. The oracle enumerates small transforms independently of planner grouping and verifies exact request/storage pairs, each request position exactly once, and the touched chunk set.

Add separate generated checks for shared affine dependencies and mixed affine/array dependencies, which the planner currently rejects explicitly. No production behavior changes.

Validation: 1,523 package tests passed; all applicable prek checks passed. Temporarily removing the negative chunk-ID guard in _chunk_keys made the expanded property fail on an out-of-bounds chunk-local coordinate (1 failed, 121 deselected); production code was restored and the 122 planner tests passed again. No new production defects were found.

Corresponding fork review: d-v-b#334.

All four final follow-up heads were also combined and verified together: 1,633 package tests/doctests passed, no skips, and the strict documentation build passed.

Correct mathematical API documentation to match supported coordinate, grid, and chunk projection contracts.

Assisted-by: Codex:GPT-6
Retain the existing unsigned selector fix and update the unsupported mixed-dependency error assertion for general intersection routing.

Assisted-by: Codex:GPT-6
Use lexicographic tuple grouping when chunk indices contain negative values. Cover shared one-axis and two-axis array dependencies, repeated points, and extreme signed coordinates.

Assisted-by: Codex:GPT-6
@github-actions github-actions Bot added the needs release notes Automatically applied to PRs which haven't added release notes label Sep 13, 2026
@read-the-docs-community

read-the-docs-community Bot commented Sep 13, 2026 •

Copy link
Copy Markdown

Remove implementation history and unsupported historical claims from source and test docstrings. Distinguish immutable coordinate mappings from mutable source values.

Assisted-by: Codex:GPT-6
@d-v-b
d-v-b marked this pull request as ready for review September 14, 2026 09:49
@d-v-b
d-v-b merged commit 1f13742 into zarr-developers:main Sep 14, 2026
39 checks passed
d-v-b added a commit that referenced this pull request Sep 29, 2026
* chore(zarr-indexing): render misc fragments and link entries to pull requests

Towncrier's built-in misc type sets showcontent = false, so the package's
misc fragments (#4346, #4364, #4406) would render as bare links. Restate
the five fragment types as zarr-metadata does, with misc showing its
content. Fragments are numbered by the merging PR, so link them under
/pull/ as zarr-metadata does.

Assisted-by: ClaudeCode:claude-opus-5-5

* docs(zarr-indexing): backfill the 0.1.0, 0.2.0 and 0.2.1 release notes

The three releases were tagged without running towncrier, so CHANGELOG.md
stayed empty and their fragments stayed in changes/, where the next build
would have announced them again as new. Build each release from the
fragments its tag shipped: #3906's (renumbered #4196, the PR that merged
it) for 0.1.0, #4222's for 0.2.0, and a new #4252 entry for 0.2.1, whose
only change was the docs build fix. Dates are the tag dates.

Assisted-by: ClaudeCode:claude-opus-5-5

* chore(zarr-indexing): build 0.3.0 changelog

Consume the pending fragments into CHANGELOG.md for the
zarr_indexing-v0.3.0 release.

Minor, not patch: #4350 makes LazyArray indexing lazy by default, so
iterating a view yields views rather than values, and views keep their
literal domain instead of re-zeroing after each selection; #4310 rejects
hand-built diagonal transforms with ValueError.

Assisted-by: ClaudeCode:claude-opus-5-5

* chore(zarr-indexing): date the 0.3.0 release 2026-09-29

Assisted-by: ClaudeCode:claude-opus-5-5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs release notes Automatically applied to PRs which haven't added release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant