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.1.0 - 2026-05-23
- Established
se-contract-kitas the generic contract loading, resolution, and validation engine for Structural Explainability contract repositories. - Added staged source layout:
basedeclarationsresolutionvalidation
- Added repository declaration loading for
MANIFEST.tomlandSE_MANIFEST.toml. - Added contract configuration loading for
contract.toml. - Added dependency reference parsing.
- Added artifact and authority resolution primitives.
- Added lockfile data structures and JSON read/write support.
- Added immutable validation check registry for kit defaults and repository-specific extensions.
- Added validation result model using the shared check status vocabulary.
- Added validation runner with strict-mode support.
- Added initial generic validation checks.
- Added
se-contract-kitcommand-line entry point. - Added repository manifest, citation metadata, documentation, tests, and release configuration.
- Separated generic contract-engine machinery from Accountable Record contract content.
This project follows Semantic Versioning.
- MAJOR versions indicate breaking changes.
- MINOR versions indicate backward-compatible additions or clarifications.
- PATCH versions indicate editorial fixes, documentation updates, or non-normative changes.
Versions are defined by git tags of the form vX.Y.Z.
Tagged releases are the authoritative source of version state.
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. Confirm pyproject.toml fallback version matches CITATION.cff
uv self update
uv python pin 3.14
uv sync --extra dev --extra docs --upgrade
uvx pre-commit install
git add -A
uvx pre-commit run --all-files
# repeat if changes were made
git add -A
uvx pre-commit run --all-files
# validate manifest
uv run se-manifest validate-manifest --path MANIFEST.toml --strict
# run contract-kit checks
uv run se-contract-kit check --strict
# types, tests, docs
uv run python -m pyright
uv run python -m pytest
uv run python -m zensical build
uvx pre-commit run --all-filesrm -rf dist
uv build
uvx twine check dist/*For this repo, also confirm the wheel contains the packaged manifest:
python - <<'PY'
import pathlib
import zipfile
wheels = list(pathlib.Path("dist").glob("*.whl"))
assert wheels, "No wheel found"
wheel = wheels[-1]
names = zipfile.ZipFile(wheel).namelist()
expected = "se_contract_kit/_contract/MANIFEST.toml"
print([name for name in names if name.endswith("MANIFEST.toml")])
assert expected in names, f"Wheel is missing {expected}"
PYgit add -A
git commit -m "Prepare X.Y.Z"
git push -u origin mainVerify GitHub Actions pass on main. After success:
git tag vX.Y.Z -m "X.Y.Z"
git push origin vX.Y.Zuv run se-manifest 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