All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
0.2.0 - 2026-06-04
tests/test_cli.py- Additional comments on surface.toml
__main__.pycorrectly named
0.1.0 - 2026-06-04
- Initial
se-codeownersPython package. se-codeowners generatecommand for rendering.github/CODEOWNERSfrom.accountability/surfaces.toml.se-codeowners checkcommand for detecting drift between the manifest and a committed CODEOWNERS file.- Role-based owner resolution through
[codeowners.role_handles]. - Explicit projected-surface ordering through
codeowners_order. - Fail-loud translation for path patterns GitHub CODEOWNERS cannot express.
- Strict mode for rejecting placeholder GitHub handles or teams.
- Typed TOML loading boundary with frozen dataclass models.
- Generated Python API documentation support.
- We use SemVer:
- *MAJOR- - breaking changes
- *MINOR- - backward-compatible changes
- *PATCH- - fixes, documentation, tooling
- Versions are driven by git tags. Tag
vX.Y.Zto release. - Docs are deployed per version tag and aliased to latest.
Follow these steps exactly when creating a new release.
1.1. CITATION.cff: update version and date-released 1.2. CHANGELOG.md: add section, move unreleased entries, update links 1.3. pyproject.toml: update build fallback-version (near end of the file)
uv lock --upgrade
uv sync --extra dev --extra docs --upgrade
uv run se-codeowners --help
uv run se-codeowners generate
uv run se-codeowners generate --strict --output .github/CODEOWNERS
uv run se-codeowners check
uvx se-manifest-schema validate-manifest --path SE_MANIFEST.toml --strict
git add -A
uvx pre-commit run --all-files
# repeat if changes were made
uvx pre-commit run --all-files
uv run python -m pyright
uv run python -m pytest
uv run python -m zensical build
# check import layers
uvx --with-editable . --from import-linter lint-imports --config .github/.importlinter
# check complexity; no output is good (all A or B)
uvx radon cc src/se_codeowners -s -a -n C
uv build
uvx twine check dist/*git add -A
git commit -m "Prepare X.Y.Z"
git push -u origin mainVerify actions run on GitHub. After success:
git tag vX.Y.Z -m "X.Y.Z"
git push origin vX.Y.Zuvx se-manifest-schema check-version --require-tagConfirms CITATION.cff version matches the pushed git tag.
Run this after git push origin vX.Y.Z; it will fail before that point.
git tag -d vX.Z.Y
git push origin :refs/tags/vX.Z.Y