WIP: 0.9.dev1 - #190
Conversation
Automated Review URLs |
|
@jni thanks for starting this work. We're looking forward to having a first rendered version of this specification as well as dev schemas that we can use to validate datasets generated by implementations! Immediate question: is the next version number 0.9dev1 (as in this PR) or 0.9.dev1 (used in a few public discussions)? We have no opinion one way or the other, but we have used the latter so far so if the consensus is to move towards the first form, we will need to update our implementation and regenerate sample data /cc @melissalinkert |
This came up with the dev versions in 0.6. Because we use python tooling in the build step of the repo, we normalised on PEP440-style version specifiers Standard SemVer would use something like IMO we should stick with PEP440 ( |
|
Just to be clear, then, is the use of |
|
Apologies, for the confusion, my confusion indeed stemmed from the inconsistency between 0.6.devN and 0.6rcN noted by @clbarnes above. I think consistency with the 0.6 series makes sense, which means I'll update this PR to match that. In short @melissalinkert @sbesson, let's go with 0.9.dev1, no need to change your outputs, I will update this PR accordingly. |
|
Here's the current validation test failures: Most of these are because they have now become valid, so I'll move them. But these two: I don't understand why they are failing. Here's the orientation schema, which specifies that the strings must come from specific lists: and here's the relevant part of the files that are unexpectedly passing validation: I'm a noob with jsonschema so I would appreciate any tips or advice here! |
The development version that carries RFC-3 is 0.9.dev1. ome/ngff-spec#190 titles the specification 0.9.dev1 and its _version.schema enum holds that value; bioformats2raw#330 writes the same string. Renames the package py/ngff_zarr/v10 to v09 and its test module, the NgffVersion member V10DEV to V09dev1, and the version string in both ports. LATEST stays 0.6.dev4 and the version stays opt-in.
The development version that carries RFC-3 is 0.9.dev1. ome/ngff-spec#190 titles the specification 0.9.dev1 and its _version.schema enum holds that value; bioformats2raw#330 writes the same string. Renames the package py/ngff_zarr/v10 to v09 and its test module, the NgffVersion member V10DEV to V09dev1, and the version string in both ports. LATEST stays 0.6.dev4 and the version stays opt-in.
Update axes and cooordinate transformations schemas to remove axes restrictions as per RFC-3.
First, copied schema directly from RFC-4. Then, harmonised it to other schemas: - 2 spaces for indents - schema and ID at top - ID is NGFF url - add title and description - removed additionalproperties, metamodel, and version fields Added ref to orientation in axes schema and moved orientation def to top level.
- Add valid image data with axis orientation - Add invalid orientation attribute files - Add invalid orientation zarr folders - xfail duplicate orientation and orientation on non-space axes (these can't be easily expressed in jsonschema)
- index.md - Add 0.9.dev1 to version history - Update version string in all schemas - Update version in _version.py - Update version number on all examples - Update version string in omero valid test
|
@joshmoore @clbarnes @jo-mueller This should be ready for review. I've also rebased my changes into logical commits to make review easier. Especially if you skip the last commit (which updates the version string in every file), the list of changes should be manageable. |
0.9.dev1 is intended to be:
probablyomero fields optional #87in current WIP this only includes RFC3. I need to get RFC4 in before we merge this.
Edit 1 (2026-08-20): updated title to 0.9.dev1 to reflect discussion and match PEP-440.
Edit 2 (2026-08-21): This PR now contains all of the listed requirements (RFC3, RFC4, #87 omero fields optional) and should be ready to merge to allow implementations to start to be written against it. Some notes below.
notes
The limits removals on coordinate-transformations are the thing I'm least sure about, would appreciate extra eyes there.
In
schemas/coordinate_transformations.schema,rotationis defined by a 2, 3, 4, or 5-dimensional rotation matrix. This is incompatible with RFC-3 but cannot be easily extended to an arbitrary number of dimensions.Possible solutions:
I'm also not sure about 6199f0e and the difference to 93c1ba7.
Finally I don't know how to express that orientation can only be present if axis type is "space".