Skip to content

Establish the copick-shared-ui migration test and fixture gate #49

Description

@uermel

Parent epic: #53

Objective

Establish a real storage-sensitive test and packaging gate before changing copick-shared-ui's runtime dependencies.

Work

  • Add pytest and offscreen Qt configuration and a workflow that fails if zero tests collect.
  • Preserve the current Zarr 2 production runtime for this baseline phase.
  • Add independently constructed OME-Zarr 0.4 / Zarr v2 and OME-Zarr 0.5 / Zarr v3 twins with numeric and nonnumeric metadata paths.
  • Reproduce the current bug with metadata selecting s0 while a distracting array named 0 exists.
  • Cover unsharded, one-shard, multi-shard, alternate chunk, alternate key, and supported alternate codec layouts.
  • Add invalid fixtures for empty and malformed stores, missing paths, root arrays, and non-3D arrays.
  • Verify metadata selection, read-only behavior, source immutability, and error propagation through runtime tests; do not add AST parsing or structural source-guard tests.
  • Align the formatter used by pre-commit, the lock, and CI.
  • Run the baseline on Python 3.11 through 3.14, with the dependency-floor and locked jobs required by the migration plan.

Acceptance criteria

  • The current metadata-selection defect is one explicit expected failure.
  • All other baseline tests pass without production storage changes.
  • Fixtures do not use the helper they are intended to test.
  • CI fails if pytest collects no tests.
  • Lock, lint, format, compile/import, build, and artifact checks pass.

Release context

This work starts immediately. It does not wait for another core release: copick 2.0.0-alpha.1 is already published.

Metadata

Metadata

Assignees

No one assigned

    Labels

    zarr-v3-migrationMigration to OME-Zarr 0.5 and Zarr v3

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions