Tools & Connectors
API Policy
Stable surface, semantic versioning, and the deprecation policy.
#Public API policy
maivn-tools follows semantic versioning. This page is the contract
between the package and its users about what is stable, what is not, and
how breaking changes are introduced.
#Versioning
Releases use MAJOR.MINOR.PATCH semantics:
- MAJOR — incompatible public-API changes.
- MINOR — new public surface and new connectors that do not break
existing imports. - PATCH — bug fixes and internal changes.
#Stable surface
Anything reachable from maivn_tools.* is part of the stable surface.
Specifically:
maivn_tools.core— protocols, metadata, permissions, dry-run, registration.maivn_tools.auth— auth strategies, secret resolvers, OAuth flow layer.maivn_tools.runtime— HTTP client, retries, rate limits, pagination,
errors.maivn_tools.events— audit events and webhook helpers.maivn_tools.files— MIME, attachments, extractors, transfers.maivn_tools.testing— mock transport and helpers.maivn_tools.connectors.*— every shipped connector and its tools.
Stable means:
- Module paths do not move between minor releases.
- Constructor argument names and types follow semver.
- Tool function names and keyword arguments follow semver.
- Public dataclass fields can be added but not removed or renamed without a
major bump. - Exceptions raised by public functions stay within the documented
hierarchy.
#Internal surface
Anything matching the following patterns is internal and may change at any
time:
- Identifiers prefixed with
_(e.g._SharedCursor). - Anything under
maivn_tools._internal(currently unused, reserved). - Module-level constants prefixed with
_.
#Deprecation policy
When a public symbol is replaced:
- The new symbol ships alongside the old in a minor release.
- The old symbol emits a
DeprecationWarningfrom the same release. - The old symbol is removed no sooner than the next major release.
Deprecations are recorded in CHANGELOG.md under the affected version.
#Optional dependencies
Connectors that need third-party drivers (e.g. psycopg, pypdf,python-docx) declare them through pip extras:
pip install maivn-tools[postgres,pdf,docx]A new extra is added in a minor release. Removing an extra requires a
major bump.
#Python support
The package supports the three most recent CPython minor versions. The
classifier list in pyproject.toml is authoritative.
#Connector additions and removals
- Adding a new connector is always a minor change.
- Removing a connector is a major change. Connectors that are being
superseded are deprecated for at least one major version before removal.
#Reporting incompatibilities
If a release breaks an import that this policy promises is stable, file
an issue at https://github.com/mAIvn-developer/maivn-tools/issues. The
fix is to restore the symbol in a patch release and re-deprecate it if
necessary.