Skip to content

docs(dev): add compatibility policy (SemVer + deprecation + public-API) (#1952)#1978

Open
mvillmow wants to merge 2 commits into
mainfrom
1952-compatibility-policy
Open

docs(dev): add compatibility policy (SemVer + deprecation + public-API) (#1952)#1978
mvillmow wants to merge 2 commits into
mainfrom
1952-compatibility-policy

Conversation

@mvillmow
Copy link
Copy Markdown
Collaborator

Summary

Repo had no migration or backwards-compatibility policy. Adds docs/dev/compatibility.md:

  • SemVer — what counts as breaking; what triggers a major bump
  • Deprecation window — one minor cycle of DeprecationWarning before removal
  • Public API surface — curated list (narrower than __init__.py.__all__ which re-exports 9 whole sub-packages)
  • Migration notes — go in PR descriptions and release notes (auto-generated; CHANGELOG.md was removed in PR chore: remove CHANGELOG.md and changelog tooling #1960)

CONTRIBUTING.md gets a new 'Versioning & Compatibility' subsection linking to the policy.

Closes #1952

🤖 Generated with Claude Code

@mvillmow mvillmow enabled auto-merge (squash) May 12, 2026 03:32
mvillmow and others added 2 commits May 14, 2026 22:41
…quired.yml (#1944)

Partial fix for #1944 — converts the two security jobs (pip-audit and
secrets-scan) from inline copies in _required.yml into a single
workflow_call to security.yml.  _required.yml now delegates via
`uses: ./.github/workflows/security.yml` rather than copy-pasting 74
lines of job body.

Branch-protection contexts "Dependency vulnerability scan" and
"Secrets scan (gitleaks)" are unchanged — they are emitted by the
jobs inside security.yml directly.  No job IDs visible from outside
are renamed.

Remaining duplicated jobs (lint, unit-tests, integration-tests) are
deferred to follow-up PRs using the same workflow_call pattern.

Refs #1944

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
)

Repo had no migration or backwards-compatibility policy documented.
Adds docs/dev/compatibility.md with:
- SemVer interpretation and breaking-change triggers
- Deprecation window (one minor cycle of DeprecationWarning before removal)
- Curated public-API surface (narrower than __init__.py __all__ which
  re-exports 9 sub-packages)

CONTRIBUTING.md links to it from a new 'Versioning & Compatibility'
subsection under the existing Versioning and Releases section.

Notes that release notes are auto-generated via gh release create
--generate-notes (CHANGELOG.md was removed in PR #1960).

Closes #1952
@mvillmow mvillmow force-pushed the 1952-compatibility-policy branch from f1c03f5 to ddd7d3d Compare May 15, 2026 05:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Audit] §12 MAJOR: No migration / backwards-compatibility policy documented

1 participant