diff --git a/AGENTS.md b/AGENTS.md index 87fb90c9..65f5dc42 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -796,11 +796,20 @@ jupyter lab notebooks/MorphoBricks_Preprocessing.ipynb multi-plane image is refused (PR #43); strict manifest flags, per-file roles and uint64 labels (PR #44); a folder holding images and subfolders is an error (PR #46); the normalization brick pinned to v0.3.2 (PR #47). Released 30 October 2026. -- **v0.3.3** (to be tagged, question 39): the shared rules other bricks call instead of +- **v0.3.3** (question 39): the shared rules other bricks call instead of copying them (MorphoBricks D86, question 38, contract §16), PRs #49–#55: length units, int32 labels, header axes, identity text and case, source checks against a run's manifest, masks named as images, pixel sizes within 0.1 %; and the - `unsupported_pixel_size_unit` warning (PR #56). + `unsupported_pixel_size_unit` warning (PR #56). Released 31 October 2026. +- **v0.3.4** (to be tagged, question 41): core fixes for the other bricks. Declared axes + (PR #58): a plain stack's positional Y and X are left open, so a plain `QYX` stack + declared `YXC` is accepted; the named Y and X declared swapped are accepted and read + transposed (`declared_axes_transposed` reports it); any other disagreement is refused; + new `named_axes`, `series_axes_from_metadata`, `TiffMetadata.axes_from_metadata`. One + strict experiment-design reader for every brick (PR #59, question 40): + `read_confirmed_design`; edits to `experiment_design.csv` with an empty or NA-like + `repeat_group`, repeat groups differing only in case, or a `confirmed_on` that is not + `YYYY-MM-DD` are refused, naming the line and column. - **Next (not started):** the notebook step for the masks (name each mask, confirm or correct the relationships) and a file saving those answers for the other bricks (question 32); 3D and time-lapse masks later. diff --git a/docs/plan.md b/docs/plan.md index 810dfdf2..f4fe9579 100644 --- a/docs/plan.md +++ b/docs/plan.md @@ -979,3 +979,15 @@ Raised during review; to be decided before the milestones that need them: `design_issues` reports such values in a design built in code (`invalid_experiment_design`), and the writer refuses them, so the brick only ever writes ISO dates.* +41. What does v0.3.4 hold? + *Decided (31 October 2026): v0.3.3 and the core fixes of the owner's answers of 31 + October 2026 (PRs #58, #59). Declared axes (question 38, amended): a plain stack's + positional Y and X are left open, so a plain stack declared `YXC` is accepted; a + declaration that differs from the named axes only by swapping Y and X is accepted and + the image read transposed (`declared_axes_transposed`); any other disagreement is + refused. One strict experiment-design reader for every brick, `read_confirmed_design` + (question 40). Inputs that passed before may now be refused: design edits with an empty + or NA-like `repeat_group` (an empty group no longer means the folder name), repeat + groups differing only in case, or a `confirmed_on` that is not `YYYY-MM-DD`. The + normalization brick stays at v0.3.2. The version in `pyproject.toml` is 0.3.4 before + tagging. Every brick pins this tag (D79).* diff --git a/pyproject.toml b/pyproject.toml index 6fee70eb..13408511 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "morphobricks-preprocessing" -version = "0.3.3" +version = "0.3.4" description = "MorphoBricks preprocessing brick: per-plane intensity histograms and normalization methods for microscopy TIFFs." readme = "README.md" license = "MIT"