Skip to content

Latest commit

 

History

History
88 lines (63 loc) · 2.38 KB

File metadata and controls

88 lines (63 loc) · 2.38 KB

Release process

How a maintainer cuts a release of devops-ai-toolkit. The package is built with hatchling and versioned with semantic versioning.

Versioning

  • SemVer: MAJOR.MINOR.PATCH.
    • MAJOR — incompatible API changes (rare; the result contract is meant to be additive).
    • MINOR — new signatures, providers, features, or additive fields.
    • PATCH — bug fixes and doc-only changes.
  • The version is declared in pyproject.toml ([project].version) and exposed at runtime as devops_ai_toolkit.__version__ (and via devops-ai version, /version, and /health).

Adding new signatures or a new provider is a minor release. Removing or renaming a result field would be major — avoid it; prefer additive changes (see Coding standards).

Pre-release checklist

ruff check .
ruff format --check .
mypy src
pytest
  • All checks green
  • CHANGELOG updated (notable changes, new signatures, new providers)
  • docs/ updated for any behaviour or API change
  • Version bumped in pyproject.toml
  • New signatures have tests and references

Build

uv build            # produces sdist + wheel in dist/

The wheel force-includes the packaged knowledge-base data (knowledge/data) per pyproject.toml, so signatures ship with the package. Verify the data is present in the built wheel before publishing.

Smoke test the artifact

In a clean environment:

pip install dist/devops_ai_toolkit-*.whl
devops-ai version
devops-ai list                  # confirms packaged signatures load
devops-ai explain CrashLoopBackOff

pip install 'dist/devops_ai_toolkit-*.whl[api]'
devops-ai serve &              # then curl /health and /version

Publish

# Recommended: validate on TestPyPI first
uv publish --repository testpypi

# Then production
uv publish

(Or use twine upload dist/* if that's your workflow.)

Tag and announce

git tag -a vX.Y.Z -m "vX.Y.Z"
git push origin vX.Y.Z

Post-release

  • Confirm pip install devops-ai-toolkit==X.Y.Z works from PyPI.
  • Open the next development cycle (bump to the next dev version if you use one).

See also