Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[ENH]: Backend versioning #30559

@timhoffm

Description

@timhoffm

Problem

Beyond our builtin backends there are a few third party ones. It is extremely difficult to evolve the backend API without hard-breaking these third party backends.

Issues with the current state:

Proposed solution

We define a backend version. It unambiguously describes the expected functionality of an interface.

  • The current is version 1.0
  • API changes result in a new backend version.
  • Backends must define the version they are written for. All backends that do not explicitly specify a version are considered to be version 1.0.
  • A Matplotlib version can decide to accept multiple backend versions, e.g. we could at some point accept v1.0, v2.0 and v3.0 and selectively call appropriate functions.
  • We may later decide to drop support for v1.0 in which case we'd reject to load backends of that version.

This should allow to evolve the backend API and third partry backends alongside with grace transition periods so that we maintain maximal compatibility throughout the evolution.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions