Parent Epic: #85
Objective
Adopt the published copick, copick-shared-ui, and ChimeraX-OME-Zarr alphas and replace the Zarr 2 mapping-style density-map existence check.
Published targets
copick
- GitHub tag:
copick-v2.0.0-alpha.1
- Python:
copick==2.0.0a1
- Commit:
5b3aff2ae4bf9bcf85b4a1d4132205640171f85b
copick-shared-ui
- GitHub tag:
copick-shared-ui-v2.0.0-alpha.1
- Python:
copick-shared-ui==2.0.0a1
- Commit:
3aa10791d02f7e11f36d092460a7248d76126c12
- PyPI wheel:
copick_shared_ui-2.0.0a1-py3-none-any.whl
- SHA-256:
c56d06ee53cffc7cda56a916d480793198e2311b099e7965c132ea27e43f6515
- Contract: Python
>=3.11, copick>=2.0.0a1,<3, zarr>=3.1.6,<4, and NumPy >=2.0.2
- Upstream evidence: metadata-defined Zarr 3 thumbnails, 39 passing tests plus three opt-in remote skips, backend/concurrency validation, and green release CI on Python 3.11–3.14
ChimeraX-OME-Zarr
- GitHub tag:
v1.0.0-alpha.1
- Python:
ChimeraX-OME-Zarr==1.0.0a1
- Commit:
c6b4038f18e022e8f876cbf285a612a7e6448477
- Wheel:
chimerax_ome_zarr-1.0.0a1-py3-none-any.whl
- SHA-256:
fd9f0c49505237d200c65afafb24a088ee1f7eb8f8ab29e84991a358354684b0
- Contract: Python
>=3.14, ChimeraX Core >=1.13.dev202608172052, NumPy >=2.0.2, and zarr>=3.1.6,<4
- Upstream evidence: runtime-alignment PR #19
Work
- Declare
copick[all]>=2.0.0a1,<3 and record the exact initial runbook selection as copick==2.0.0a1.
- Declare
copick-shared-ui>=2.0.0a1,<3 and record the exact initial runbook selection as copick-shared-ui==2.0.0a1.
- Install the shared-UI alpha from PyPI, verify the resolved wheel SHA-256, and retain its downstream gallery/worker consumer tests despite the upstream green matrix.
- Declare
ChimeraX-OME-Zarr>=1.0.0a1,<2, ChimeraX-Core>=1.13.dev202608172052, and a Python 3.14 bundle floor.
- Download the reader alpha wheel from its GitHub release, verify the recorded SHA-256, and install it before chimerax-copick; it is not currently listed on the public ChimeraX Toolshed package index.
- Adopt later core, shared-UI, or reader alphas only through an explicit runbook selection update after the full downstream matrix passes.
- Add NumPy as a direct runtime dependency.
- Remove direct runtime declarations for
pydantic, hatchling, aiohttp, and s3fs after installed-wheel tests confirm they are supplied by their owning packages.
- Retain
copick[all] so the application continues to install its advertised optional SMB backend; keep SMB non-gating.
- Replace
pick_obj.zarr() is not None and len(pick_obj.zarr()) > 0 with pick_obj.has_density_map(), one .zarr() call, and a clear error for an impossible true/None contract result.
- Pass the returned store unchanged to
open_ome_zarr_from_store(); add no direct Zarr import or OME parsing.
- Build and inspect the wheel for the intended Python, ChimeraX Core, and dependency bounds.
Acceptance criteria
- The clean exact environment installs
copick==2.0.0a1, copick-shared-ui==2.0.0a1, and checksum-verified ChimeraX-OME-Zarr==1.0.0a1 on ChimeraX Daily 1.13 / Python 3.14.
- The environment resolves one supported Zarr 3 version and no dependency requires Zarr
<3.1 or permits Zarr 2/4.
- The shared-UI PyPI artifact is used; a source-only checkout is not counted as the artifact gate.
- The density-map success path calls
has_density_map() once and .zarr() once.
- Nonparticle and missing-density-map cases preserve current no-volume behavior.
- A valid density-map store is passed unchanged to the viewer.
- The bundle imports, starts, registers commands, and initializes shared UI from the built wheel.
- chimerax-copick source contains no direct group/array open, codec, shard, store, or metadata implementation.
Parent Epic: #85
Objective
Adopt the published copick, copick-shared-ui, and ChimeraX-OME-Zarr alphas and replace the Zarr 2 mapping-style density-map existence check.
Published targets
copick
copick-v2.0.0-alpha.1copick==2.0.0a15b3aff2ae4bf9bcf85b4a1d4132205640171f85bcopick-shared-ui
copick-shared-ui-v2.0.0-alpha.1copick-shared-ui==2.0.0a13aa10791d02f7e11f36d092460a7248d76126c12copick_shared_ui-2.0.0a1-py3-none-any.whlc56d06ee53cffc7cda56a916d480793198e2311b099e7965c132ea27e43f6515>=3.11,copick>=2.0.0a1,<3,zarr>=3.1.6,<4, and NumPy>=2.0.2ChimeraX-OME-Zarr
v1.0.0-alpha.1ChimeraX-OME-Zarr==1.0.0a1c6b4038f18e022e8f876cbf285a612a7e6448477chimerax_ome_zarr-1.0.0a1-py3-none-any.whlfd9f0c49505237d200c65afafb24a088ee1f7eb8f8ab29e84991a358354684b0>=3.14, ChimeraX Core>=1.13.dev202608172052, NumPy>=2.0.2, andzarr>=3.1.6,<4Work
copick[all]>=2.0.0a1,<3and record the exact initial runbook selection ascopick==2.0.0a1.copick-shared-ui>=2.0.0a1,<3and record the exact initial runbook selection ascopick-shared-ui==2.0.0a1.ChimeraX-OME-Zarr>=1.0.0a1,<2,ChimeraX-Core>=1.13.dev202608172052, and a Python 3.14 bundle floor.pydantic,hatchling,aiohttp, ands3fsafter installed-wheel tests confirm they are supplied by their owning packages.copick[all]so the application continues to install its advertised optional SMB backend; keep SMB non-gating.pick_obj.zarr() is not None and len(pick_obj.zarr()) > 0withpick_obj.has_density_map(), one.zarr()call, and a clear error for an impossible true/Nonecontract result.open_ome_zarr_from_store(); add no direct Zarr import or OME parsing.Acceptance criteria
copick==2.0.0a1,copick-shared-ui==2.0.0a1, and checksum-verifiedChimeraX-OME-Zarr==1.0.0a1on ChimeraX Daily 1.13 / Python 3.14.<3.1or permits Zarr 2/4.has_density_map()once and.zarr()once.