Skip to content

B2 SDK docs: add a maintainer guide for API-version test placement #592

Description

@ffumero2003

Description

The repository has shared tests, v0-v3 test directories, v_all, integration tests, and a custom apiver marker, but contributor documentation does not explain how to choose among them. test/unit/conftest.py dynamically selects apiver_deps, ignores the other version directories, and supports exact-version and version-range markers. Nox then runs the unit suite once for each interface version. A new maintainer currently has to read those hooks and infer the compatibility model before knowing where a regression test belongs.

Steps to reproduce

1. Open CONTRIBUTING.md and doc/source/contributing.rst.
2. Look for guidance on test/unit/v0-v3, test/unit/v_all, and pytest.mark.apiver.
3. Observe that test commands are documented but test placement is not.

Expected behavior

The contributor guide should include a decision table covering shared unit tests, version-specific tests, v_all, integration tests, and static checks. It should explain apiver_deps, show exact-version and version-range marker examples, identify when real B2 credentials are required, and provide a checklist for shared _internal changes.

Actual behavior

Only commands for running tests are documented. A test can therefore be placed where it is skipped for the affected interface, duplicated unnecessarily, or run only against v3 even though the changed _internal behavior is shared by v0-v3. This weakens the repository's main backward-compatibility safeguard.

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