Skip to content

build(deps): upgrade to ultrack 0.8, clearing the last alert and the zarr cap - #313

Merged
ieivanov merged 1 commit into
mainfrom
deps/ultrack-0.8
Aug 13, 2026
Merged

ieivanov merged 1 commit into
mainfrom
deps/ultrack-0.8

Conversation

@ieivanov

Copy link
Copy Markdown
Collaborator

Follow-up to #310. ultrack 0.8.0 fixes both issues we filed against 0.7.2, so the two workarounds that PR carried can come out.

The last alert is gone

royerlab/ultrack#283 — ultrack 0.8 declares pyarrow>=16.1.0, dropping the <20 cap. pyarrow moves 19.0.1 → 25.0.1, so GHSA-rgxp-2hwp-jwgg no longer applies.

biahub is now at zero open Dependabot alerts. Verified by rematching the remaining open advisory against the resolved lockfile.

The zarr cap is gone

royerlab/ultrack#284 — large_chunk_size now casts its computed chunk sizes to plain ints instead of leaking np.int64, so zarr<3.3 is no longer needed. zarr moves 3.2.1 → 3.3.0.

Verified directly rather than assumed, because the zarr-side fix is merged but not released — zarr-developers/zarr-python#4257 landed, but PyPI is still on the unpatched 3.3.0. Against that exact version:

ultrack 0.8.0 | zarr 3.3.0
chunks: (1, 3, 16, 16) ['int', 'int', 'int', 'int']
array_apply OK -> (5, 3, 16, 16)

So dropping the cap is safe because the fix reaching us comes from ultrack's casting, not from zarr. ultrack was the only caller in our tree passing numpy integer chunk sizes (iohub writes chunk_shape into OME-Zarr JSON and never goes through zarr's chunk-normalization path).

Python 3.14

pyarrow 25 ships cp314 wheels, so it is no longer the 3.14 blocker that #310 noted. ultrack 0.8 declares requires-python <3.14 instead — still blocked, but by an explicit bound rather than an sdist build that fails on a missing Arrow C++ toolchain.

Verification

  • 0 open Dependabot alerts still apply to the lockfile
  • pytest: 126 passed, 1 skipped — including the track tests that zarr 3.3.0 broke under ultrack 0.7.2
  • Only ultrack, zarr and pyarrow change in the lockfile

🤖 Generated with Claude Code

…zarr cap

ultrack 0.8.0 resolves both problems we filed against 0.7.2:

  * royerlab/ultrack#283 -- the `pyarrow<20` cap is gone (now `pyarrow>=16.1.0`),
    so pyarrow moves 19.0.1 -> 25.0.1 and GHSA-rgxp-2hwp-jwgg no longer applies.
    That was the one alert #310 could not clear; biahub is now at zero open
    Dependabot alerts.
  * royerlab/ultrack#284 -- large_chunk_size casts its computed chunk sizes to
    plain ints instead of leaking np.int64, so zarr no longer needs capping
    below 3.3. Verified directly: on zarr 3.3.0 it returns (1, 3, 16, 16) as
    four Python ints and array_apply completes.

Note the zarr side is fixed but unreleased -- zarr-developers/zarr-python#4257
is merged, yet PyPI is still on the unpatched 3.3.0. Dropping the cap is safe
because the fix reaching us comes from ultrack's casting, not from zarr; ultrack
was the only caller in our tree passing numpy integer chunk sizes.

Also worth recording: pyarrow 25 ships cp314 wheels, so it is no longer what
blocks Python 3.14. ultrack 0.8 declares `requires-python <3.14` instead, which
is at least an explicit bound rather than a source build that fails on a missing
Arrow C++ toolchain.

126 passed, 1 skipped -- including the track tests that zarr 3.3.0 broke under
ultrack 0.7.2.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
@ieivanov
ieivanov merged commit a262655 into main Aug 13, 2026
7 checks passed
@ieivanov
ieivanov deleted the deps/ultrack-0.8 branch August 13, 2026 21:16
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.

1 participant