Skip to content

B2 SDK docs: add a practical v0-v3 interface compatibility and migration matrix #594

Description

@ffumero2003

Description

doc/source/api_types.rst explains why numbered interfaces exist, but it does not distinguish the installed package version from the imported interface version with a concrete support table. It also does not show how v0, v1, v2, and v3 differ or how to migrate between them. Users must inspect compatibility adapters and release history to discover differences such as v2 worker defaults, v1's legacy raw_api constructor argument and return types, and v0's raw list/delete responses.

Steps to reproduce

from b2sdk.v1 import B2Api as V1B2Api
from b2sdk.v3 import B2Api as V3B2Api

# The documentation does not provide a migration checklist between these APIs.

Expected behavior

Documentation should distinguish package versions such as 2.12.0 from interface imports such as b2sdk.v3. It should provide a support matrix and migration notes for each transition, organized around changed imports, constructor and method signatures, defaults, return values, exception types, and removed or renamed helpers. Each transition should include a minimal before-and-after example and point to the tests that preserve the old behavior.

Actual behavior

The compatibility concept is documented, but users cannot answer practical questions such as "what must change when moving from v1 to v3?" or "can I upgrade the installed package while retaining a v1 import?" from a single authoritative page. That increases migration risk and encourages indefinite use of older interfaces.

Environment

  • Python version: Any supported version
  • b2sdk version: master at f3ab7b71
  • OS: Any

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions