Uh oh!
There was an error while loading. Please reload this page.
Doc/v3 migration guide - #2102
Conversation
TomAugspurger
commented
Aug 20, 2024
One thing that might be helpful: what's the group's tolerance for either compatibility code or deprecations as a way to ease the transition? It sounds like strict backwards compatibility (perhaps with warnings) isn't a goal. Is there tolerance for things like #2098 (e.g. restore some properties to the |
dstansby
left a comment
There was a problem hiding this comment.
I left some comments - I'll mark this as request changes since it still needs major additions.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
| 1. Pin the supported Zarr-Python version to ``zarr>=2,<3``. This is a best practice and will protect your users from any incompatibilities that may arise during the release of Zarr-Python 3.0. | ||
| 2. Limit your imports from the Zarr-Python package. Most of the primary API ``zarr.*`` will be compatible in 3.0. However, the following breaking API changes are planned: | ||
| - ``numcodecs.*`` will no longer be available in ``zarr.*``. (Suggested action: transition to importing codecs from ``numcodecs`` directly.) |
There was a problem hiding this comment.
| - ``numcodecs.*`` will no longer be available in ``zarr.*``. (Suggested action: transition to importing codecs from ``numcodecs`` directly.) | |
| - ``zarr.numcodecs.*`` will no longer be available. These imports can be replaced by importing ``numcodecs`` directly. |
We should be doing more than "suggesting", we should be providing concrete fixes/code updates!
There was a problem hiding this comment.
Even if there isn't a reasonable way to deprecate the imports, as a minimum this migration guide should provide a complete list of all imports that are disappearing and how to replace them.
Uh oh!
There was an error while loading. Please reload this page.
| - The following internal modules are being removed or significant changed: | ||
| - ``zarr.attrs`` | ||
| - ``zarr.codecs`` | ||
| - ``zarr.context`` | ||
| - ``zarr.core`` | ||
| - ``zarr.hierarchy`` | ||
| - ``zarr.indexing`` | ||
| - ``zarr.meta`` | ||
| - ``zarr.meta_v1`` | ||
| - ``zarr.storage`` | ||
| - ``zarr.sync`` | ||
| - ``zarr.types`` | ||
| - ``zarr.util`` | ||
| - ``zarr.n5`` |
There was a problem hiding this comment.
This needs a clear list of how to update code to adapt to these removals or changes.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: David Stansby <dstansby@gmail.com>
Uh oh!
There was an error while loading. Please reload this page.
jni
commented
Sep 16, 2024
I just came here following the link from #1849. Currently, this guide feels very incomplete, and since #2182 is now in-flight, I think this guide should become very clear. From the perspective of a maintainer / close user of a bunch of libraries that depend on zarr but have extremely limited maintainer time, the most important thing I want to understand is how hard it will be to support both zarr 2.18 and zarr 3+ within a single library. I think this is the critical question for a smooth transition, because it is hard for libraries to all migrate at the same time, and you want libraries to be installable together in the same environment — you don't want someone depending on both napari and ome-zarr to face napari requiring zarr>=3 and ome-zarr requiring zarr<3. So many libraries would want to support the subset of zarr that is identical in v3 and v2 until everyone can agree to depend on 3+. |
jhamman
commented
Sep 17, 2024
@jni - thanks for the feedback. I agree this is not ready to ship yet. The main things that we know are changing is the |
dstansby
commented
Sep 17, 2024
If we want downstream packages to test with version 3.0.0a1, it might be good to do a blog post or add something to the docs explaining how to do that testing, what to look for, and how to provide feedback? |
jni
commented
Sep 18, 2024
Well, @Czaki started doing that for us in napari/napari#7215 and @d-v-b has been helping 🙏. It looks like one of the remaining issues is that But I think we can resolve this by explicitly writing a v2 zarr in the test?
Something along the lines of:
(An exhaustive list of such changes would be useful.) |
Tensorstore has supported zarr v3 for a long time: https://google.github.io/tensorstore/driver/zarr3/index.html |
jni
commented
Sep 18, 2024
oh, interesting, thanks for pointing that out @d-v-b! I couldn't actually find the relevant PR but did not look exhaustively. 🙏 |
TomAugspurger
commented
Oct 2, 2024
A few changes I've found while updating xarray. Are all of these intentional?
|
Over the past few weeks, we've had a number of conversations/questions about the policy for backward compatibility, deprecations, and breaking changes with the upcoming 3.0 release. This doc is meant to help us iterate toward common language. In its initial form, it is not complete.
Goals for the text here:
cc @zarr-developers/python-core-devs