Skip to content

define our deprecation policy #2924

Closed

Description

@d-v-b

An update to our versioning scheme is pending in #2910. That PR spawned a necessary discussion about what deprecation policy we should have. This also relates to the question of our release schedule. We can use this issue to figure these things out.

cc @dstansby

Activity

  1. maxrjones commented on Jun 4, 2026

    @maxrjones
    Member

    I think tackling this issue would help a lot in PR and issue reviews that propose eventually removing some functionality. Could we adopt https://numpy.org/neps/nep-0023-backwards-compatibility.html with minor changes to match Zarr-Python?

  2. d-v-b commented on Jun 4, 2026

    @d-v-b
    ContributorAuthor

    that looks good to me! are there any alternatives to use for comparison?

  3. maxrjones commented on Jun 4, 2026

    @maxrjones
    Member

    that looks good to me! are there any alternatives to use for comparison?

    xarray's backwards compatibility guidance is deliberately judgment-based. it asks contributors to avoid breakage where possible, justify it in the PR when unavoidable, and run a deprecation cycle (warn first, remove later) rather than codifying fixed timelines.

    Apache Arrow's arrow-rs deprecation guidelines are a close analogue: minor releases may deprecate but not remove APIs, deprecations are tagged with #[deprecated] and the version they landed in, and removal happens no sooner than two major releases (~6–9 months) later.

  4. maxrjones commented on Jun 4, 2026

    @maxrjones
    Member

    FWIW I like that NumPy's guidance includes a framework for deciding "is this deprecation cycle worth it". I think in Zarr we often have conflicting opinions about the weight of those factors, and it'd be helpful to have something shared.

  5. added a commit that references this issue on Oct 9, 2026
    09bb377
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    choreMaintenance work

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions