Repository navigation
spec: draft 3, the 0.2 and 0.3 contract - #1
Merged
Merged
Conversation
0.2, metadata and placed creation: ome_multiscales with explicit per-level placement, level_placement and level_shape (the BigDataViewer rule inverted, origin included), chunk_key and parse_chunk_key, create (format follows the group, chunks required, codecs explicit with a zstd default, exists error or adopt-with-verify, create-race backoff, no delete or overwrite anywhere), open(mode="r+"), write_index with whole-unit alignment and an explicit partial mode, write, write_shape, add_level as metadata plus an empty array. 0.3, grids and blocks: Grid, blocks with context and clipping, write_chunk, level_factors, public store path helpers, units.abbreviation. Written from the five writer sessions' answers of 2026-10-22 and a census of the I/O code the five repos still carry (section 6); the new open questions cover legacy attributes, the block iterator's shape, sidecar attributes, NRS creation races, the codec default and sharding. Claude-Session: https://claude.ai/code/session_0141wgF8mkGbjGfBFKfKhp64
davidackerman
force-pushed
the
spec-0.2-0.3
branch
from
October 22, 2026 18:21
a898de9 to
cf4b86f
Compare
0.1.1 moved offset-less N5 pyramids by half a base voxel as a patch release; every consumer pins a floating range and installs the newest version in CI, so cellmap-flow's CI was red on every open PR until it pinned 0.1.1. Section 8 now says what a patch may and may not do. Claude-Session: https://claude.ai/code/session_0141wgF8mkGbjGfBFKfKhp64
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Specification only; no code changes.
docs/spec.mdbecomes draft 3 with the contract for the next two versions, for review before anything is built.0.2, metadata and placed creation (Behaviours 10 to 16):
ome_multiscaleswith explicit per-level placement,level_placementandlevel_shape(Convention 1's BigDataViewer rule inverted, with the level's origin, so mesh-n-bone's ROI-origin bug cannot be expressed),chunk_keyandparse_chunk_keyfor zarr v2, zarr v3 (sharded too), N5 and precomputed,create(the format follows the group, OME 0.4 with v2 and 0.5 with v3,chunksrequired, codecs explicit with a zstd default,exists="error"or"adopt"with verification naming every difference, registration-station's create-race backoff, fill-only units not stored),open(mode="r+"),write_indexwith whole-unit alignment and an explicitpartialmode,write,write_shape, andadd_levelas metadata plus an empty array. The package never deletes, truncates or overwrites; downsampling, scheduling, N5 and precomputed writing stay out.0.3, grids and blocks (Behaviours 17 to 19):
Grid,blockswith context and clipping,write_chunk,level_factors, publicstore.join/parent/basename,units.abbreviation.Section 6 gains the writer migration table and the census of 2026-10-22 (what the five repos still carry, what 0.1 already covers, what 0.2 and 0.3 remove). Section 7 gains open questions 5 to 10: legacy funlib attributes on new outputs, the block iterator's shape (to confirm with mesh-n-bone and cellmap-analyze), registration-station's sidecar attributes, creation races on NRS, the codec default, sharding.
https://claude.ai/code/session_0141wgF8mkGbjGfBFKfKhp64