Repository navigation
PP-13: migration guide, CHANGELOG, Colab release check, docs pass; version 0.4.0rc4 - #134
Merged
Merged
Conversation
…rsion 0.4.0rc4 - docs/migration-0.3-to-0.4.md: every breaking change from v0.3.4 for users and bricks (what changed, why, what to do), linked from README and user guide §7. - CHANGELOG.md for 0.4.0 (breaking, added, fixed, removed) with PR/issue numbers. - docs/colab-release-check.md: the Colab hand checks of #118, #123, #127 in one list for the major release; the notebook is verified headless only until then. - Docs pass: README (masks, RunInputs, resume), contract (§9.3 before §9.4, the removed declared-axes former text dropped), notebook step 3 note on resuming, plan §10 PP-13 entry, coordinator follow-ups and the release checklist. - Version 0.4.0rc4: pyproject and the notebook pin (RELEASE_TAG, current_version, version index, Colab callout). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G3qp9AxjpGPw9xfWAUJNqc
Contributor
Author
|
Independent review, merged with a merge commit. Verified:
No findings and no fixes were needed. Generated by Claude Code |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PP-13 of the v0.4.0 plan (design v0.4 §8, §9; plan §10 release checklist). Based on main af8f769. Docs only, plus the version bump: no behaviour change.
What's in it
docs/migration-0.3-to-0.4.md(new; linked from the README and user guide §7). Every breaking change from v0.3.4, each with what changed, why (the science rule) and what to do.calibration.csv/calibrate; thedesigncommand and the stricter readers; masks (image_named_as_maskerror, the masks field, stated/shared masks,mask_layout, labels always used); OME-Zarr (NGFF 0.1/0.2 and stores without axes refused, declared-role matching, rc3 fingerprints count as changed);convertreplacingconvert_tiffs(record v2, copy hashes); link containment,--logrules and exit codes; staging, resume and crash-consistent publication.RunInputs(open, fovs, pixel_sizes, read_plane/read_image, read_mask, design, the full list of refusals including unrecorded files, the conversion record and copy hashes, and the zarr extra); a removed-API table (convert_tiffs/zarr_export, the normalization shims, check_declared_axes/declared_axes_transposed,find_masks(ome_zarr_labels=),PYRAMID_OPTIONS,force_rebuild/--force-rebuild,PhysicalSizespickles); cache keys.CHANGELOG.md(new; the repo had none): 0.4.0, grouped into breaking, added, fixed and removed, with PR and issue numbers (Keep an unreadable experiment_design.csv untouched in step 1 #61–Micrometre conversions are always positive and finite; check and design exit 1 on errors (#93) #133; issues [Audit/Correctness]same_objectscounts many-to-one IoU overlaps as one-to-one matches #67, [Audit/Scientific integrity] OME-Zarr with matching axis letters can be processed under contradictory confirmed roles #72–[Sad Catapella B3][Memory] Blockwise pyramid region selector does not enforce a viable minimum budget #76, [Sad Catapella B3][Performance] TIFF-to-Zarr conversion rereads the converted pixels to compute histograms #79–[Sad Catapella B4][Scientific identity] Lenient experiment-design reader silently selects last duplicate column #83, [Sad Catapella B5][Scientific integrity] Aggregate OME-Zarr fingerprint misses changed chunks when newest mtime is unchanged #86–[Sad Catapella B5][Correctness] Channel-label copy freshness check accepts missing or truncated OMERO metadata #88, [Sad Catapella B5][Scientific integrity] Source files may change between fingerprint capture and histogram publication #90, [Sad Catapella B6][Scientific calibration] Reused OME-Zarr copies are not checked for numeric pixel-scale correctness #92–[Sad Catapella B6][Scientific QA] Malformed explicit NGFF coordinate transforms are silently treated as unknown calibration #94, [Sad Catapella B6][Performance] TIFF-to-Zarr conversion reopens headers to read physical calibration already inspected #96, [Sad Catapella B8][Scientific identity] Changing notebook output directory retains and can overwrite the wrong confirmed experiment design #98, [Sad Catapella B8][Data safety] CLI --log opens arbitrary files before validating experiment and output paths #99).docs/colab-release-check.md(new): the hand-check lists of PP-8d: Colab and LabConstrictor readiness of the notebook #118, PP-10d: the notebook's masks-step button (Describe the masks) #123 and PP-11b: the notebook's Make named-axis copies card #127 in one list (23 items). Two items were updated for later changes: the stale-lock button (PP-10a) and.publish/.staging(PP-12). It says plainly that the notebook is verified headless only until the major release. The release checklist and the README point to it.YXstatement); newRunInputsand resume bullets; the upgrade note.pair_countsexact-half tie break; masks not fingerprint-bound during a run; a.tmpleft after a kill;to_micrometersrefusing numpy scalars other than float64; the axis card not showing the recomputed size warnings.pyproject.toml,RELEASE_TAG,current_version,notebook_latest_versions.yamland the Step 0 Colab callout. The owner tags it. The final 0.4.0 bump comes after the audit.Bugs found (not fixed here)
length_units.to_micrometers(np.float32(0.5), "micrometer")andnp.int64(2)raiseValueError: … is not a number; Pythonint/floatandnp.float64are accepted. This was confirmed in the venv and is recorded as follow-up (d).Owner questions
PhysicalSizespickles. The design change log says breaking old pickles is accepted. In practice, a v0.3.4-shaped instance (without the newinvalidfield) pickles and loads fine, withinvalid=None, because the dataclass default is a class attribute. The guide therefore says "not supported / not guaranteed" rather than "broken". Is that wording right?designexits 1 after a write that leaves a conflict). The CHANGELOG and the guide describe it as implemented.Gate (own worktree and uv venv, Python 3.11,
.[dev,notebook,zarr], at 744b345)ruff checkandruff format --check: clean (204 files).tools/check.py --rules: exit 0.test_discovery.py:665(root) andtest_cli_log.py:165(case-insensitive FS check).Generated by Claude Code