Skip to content

Create Release#360

Open
github-actions[bot] wants to merge 1 commit intomainfrom
changeset-release/main
Open

Create Release#360
github-actions[bot] wants to merge 1 commit intomainfrom
changeset-release/main

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions bot commented Apr 7, 2026

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

zarrita@0.7.0

Minor Changes

  • Add AbortSignal support to open and set. Store options containing a signal are forwarded to underlying store.get calls and checked between async steps for early cancellation. (#379)

    const controller = new AbortController();
    const opts = { signal: controller.signal };
    
    await zarr.open(store, { kind: "array", opts });
    await zarr.get(arr, [null], { opts });
    await zarr.set(arr, [null], value, { opts });
  • Add dimension_names support to create() and expose dimensionNames getter on Array. For v2 arrays, _ARRAY_DIMENSIONS from attributes is automatically mapped to dimensionNames. (#377)

  • Add fillValue getter on Array to expose the fill value from array metadata. Works uniformly across v2 and v3 arrays, with proper deserialization of IEEE 754 special values (NaN, Infinity, -Infinity). (#378)

  • Add sel helper for named-dimension selection. Converts a record of dimension names to the positional selection array that get and set accept, using the array's dimensionNames metadata. Throws for unknown dimension names. (#382)

    let arr = await zarr.open(store, { kind: "array" });
    // arr.dimensionNames -> ["time", "lat", "lon"]
    
    let selection = zarr.sel(arr, { lat: zarr.slice(100, 200), time: 0 });
    // -> [0, slice(100, 200), null]
    
    let result = await zarr.get(arr, selection);
  • Add v3 consolidated metadata support to withConsolidated. The v3 format reads consolidated_metadata from the root zarr.json, matching zarr-python's implementation. Note that v3 consolidated metadata is not yet part of the official Zarr v3 spec and should be considered experimental. (#383)

    A new format option controls which format(s) to try, accepting a single string or an array for fallback ordering. When omitted, format is auto-detected using the store's version history.

    await withConsolidated(store); // auto-detect
    await withConsolidated(store, { format: "v2" }); // v2 only
    await withConsolidated(store, { format: "v3" }); // v3 only
    await withConsolidated(store, { format: ["v3", "v2"] }); // try v3, fall back to v2
  • Add mergeOptions to BatchedRangeStore. By default, only the first caller's options are forwarded to the inner store. Use mergeOptions to combine options (e.g., AbortSignals) across a batch: (#364)

    let store = zarr.withRangeBatching(inner, {
      mergeOptions: (batch) => ({
        ...batch[0],
        signal: AbortSignal.any(batch.map((o) => o?.signal).filter(Boolean)),
      }),
    });
  • Accept bigint in slice() (#381)

  • BREAKING: zarr.create options now use camelCase (chunkShape, fillValue, chunkSeparator, dimensionNames). (#387)

    await zarr.create(store, {
      dtype: "float32", // was data_type
      shape: [100, 100],
      chunkShape: [10, 10], // was chunk_shape
      fillValue: 0, // was fill_value
      dimensionNames: ["y", "x"], // was dimension_names
    });
  • feat: add withRangeBatching for request batching and range merging (#347)

  • Add numcodecs. namespace for v2 codec registry and built-in shuffle/delta codecs (#385)

    V2 filters and compressors are now registered under a numcodecs. prefix
    (e.g., numcodecs.blosc, numcodecs.zlib) matching zarr-python's convention.
    This separates v2-specific codecs from the v3 codec namespace.

    Adds built-in numcodecs.shuffle and numcodecs.delta codecs for reading v2
    data that uses these common numcodecs filters. Both are pure JS with no WASM
    dependencies.

    Custom v2 codecs can be registered under the same namespace:

    zarr.registry.set("numcodecs.my-filter", async () => ({
      fromConfig(config) {
        return {
          kind: "bytes_to_bytes",
          encode(data) {
            /* ... */
          },
          decode(data) {
            /* ... */
          },
        };
      },
    }));

Patch Changes

  • Allow attrs option in top-level open() to skip loading .zattrs for v2 stores (#372)

  • Add support for the delta codec (0ed6f72)

  • Fix NarrowDataType to correctly narrow the "boolean" query to Bool (#359)

  • Fix fill_value serialization and deserialization for NaN, Infinity, and -Infinity per the Zarr v3 spec (#373)

  • Fix zarr.open version autodetection failing in browsers when servers return non-JSON responses for v2 metadata keys (#374)

  • Fix get and set for scalar arrays (shape=[]) (#380)

  • Enable declarationMap so "go to definition" resolves to .ts source instead of .d.ts files (#361)

  • Updated dependencies [e2a0568, 5df59fe]:

    • @zarrita/storage@0.1.5

@zarrita/ndarray@0.1.9

Patch Changes

@zarrita/storage@0.1.5

Patch Changes

  • Enable declarationMap so "go to definition" resolves to .ts source instead of .d.ts files (#361)

  • Upgrade unzipit from 1.4.3 to 2.0.0 (#386)

@github-actions github-actions bot force-pushed the changeset-release/main branch 11 times, most recently from 417fa23 to 2be4c6e Compare April 8, 2026 19:07
@github-actions github-actions bot force-pushed the changeset-release/main branch 13 times, most recently from 2399b60 to 784a671 Compare April 8, 2026 21:54
@github-actions github-actions bot force-pushed the changeset-release/main branch 4 times, most recently from e102bf9 to 626efd8 Compare April 9, 2026 03:42
@github-actions github-actions bot force-pushed the changeset-release/main branch 2 times, most recently from f97397c to 98cd194 Compare April 9, 2026 04:33
@github-actions github-actions bot force-pushed the changeset-release/main branch from 98cd194 to e69f52a Compare April 9, 2026 11:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants