Skip to content

v3.0.0

Choose a tag to compare

@github-actions github-actions released this 25 Sep 11:46
· 337 commits to main since this release
5afe74d

♻️ Refactoring

  • ️ one chunk_slices helper; vectorise per-object accounting

⚡ Performance

  • ome_zarr: unlocked shard writes
  • ome_zarr: pyramid downsampling on strided views
  • dog: cache the deconvolution setup per worker; dup_rev_z auto

✅ Tests

  • napari: drive view_in_napari itself, not just its resolvers
  • make the allocation and ISO-export tests machine-independent
  • codec check portable across zarr releases

✨ Features

  • workflow: a separate pixi workspace for viewing results
  • ome_zarr: block-average image pyramids; labels stay nearest
  • workflow: resume a retried segment batch per tile
  • ome_zarr: majority-vote label pyramids keep small objects
  • merge: IoU stitching and resumable tile_process
  • seams: seam_report -- does the tiling show in the labels?
  • io: configurable compression codec
  • cli: a patchworks command: convert, segment, seams, info, view
  • dog: DoG sigmas in micrometres (sigma_units="um")
  • io: remote stores (s3://, gs://, https://) without local litter
  • provenance: label images record how they were made
  • core: several GPUs in one tile_process run (gpus=)
  • core: dry_run: plan a run before submitting it
  • postprocess: fill_holes and open_labels
  • autotune: suggest_overlap -- pick the overlap from the data
  • launcher: bring in the Streamlit launcher, updated for the current settings and multi runs

🏗️ Build

  • ️ require zarr 3 and Python 3.11; drop the dead zarr-2 paths
  • ️ ship a py.typed marker
  • ️ dependency floors verified by a minimum-versions CI job

🐛 Bug Fixes

  • workflow: let the viewer environment solve off the cluster
  • workflow: keep the workspace linux-64, platforms belong to the feature
  • workflow: drop the per-feature platforms; they are not scoped
  • napari: recognise a .zip bundle as a zarr source
  • core: unique stage stores, cleanup on failure, no default log file
  • merge: pin fork for the relabel pool on Linux
  • merge: release the LUT after an in-process relabel; open arrays once
  • merge: never wrap label ids in a narrow dtype
  • relabel: keep the smallest object when there is no background
  • relations: overlap_fraction is over the whole a label
  • postprocess: dilate_labels grows into background only
  • core: name the function when fn returns the wrong shape
  • io: keep auto_empty_threshold's sample windows inside the image
  • io: only a path component ending in .zip is a bundle
  • chunks: find the job's own cgroup; count headroom, not the ceiling
  • ome_zarr: pyramid levels pin the configured codec
  • ome_zarr: crash-safe reshard swap
  • cluster: give make_local_cluster workers a real memory limit
  • gpu: release GPU memory outside the except block before backing off
  • geometry: labels segmented at level > 0 take that level's calibration
  • napari: view_in_napari opens non-zarr files

👷 CI

  • run the test suite in CI
  • build the docs strictly on every pull request
  • run docstring examples; report macOS and Windows
  • type-check with mypy
  • head-vs-base benchmarks on pull requests

📝 Documentation

  • occupancy: build_occupancy_map names the sibling store
  • ome_zarr: drop a doubled blank line markdownlint flags
  • gpu: drop a doubled blank line markdownlint flags
  • launcher: add a user guide for the Streamlit launcher

🔧 Chores

  • pre-commit hooks mirroring the lint workflow

👥 Contributors