determa-state is the Python implementation of the
Determa State specification. The
language-neutral conformance suite
is the executable arbiter of behavior.
python -m venv .venv
. .venv/bin/activate
python -m pip install -e '.[dev]'Python 3.11 or newer is supported. The distribution is determa-state; the import is
determa.state.
Run the implementation gates and the full format-1 conformance suite before review:
ruff check .
ruff format --check .
mypy src/determa
pytest -q
pytest conformance -qtests/ is hermetic and offline. conformance/ uses the approved immutable
specification and suite commits recorded in conformance/pins.py. The harness caches
those checkouts under .cache/. For offline or local cross-repository work:
DETERMA_CONFORMANCE_DIR=/path/to/determa-state-conformance \
DETERMA_SPEC_DIR=/path/to/determa-state-spec \
pytest conformance -qCI checks out both immutable inputs directly and also verifies that the packaged schema is byte-for-value equivalent to the pinned specification schema.
- Read
AGENTS.mdand the linked specification/conformance changes first. - Create one branch and one pull request for one issue.
- Never push directly to protected
main. - Resolve every review thread and keep the branch current before squash-merging.
- Do not add assistant attribution to commits, PRs, comments, or documentation.
- Specify and add conformance behavior before changing an engine.
Do not reintroduce compatibility aliases for abandoned pre-format-1 grammar or public behavior.
src/determa/state/__about__.py is the single package version source. Determa State
specification, conformance, Python, and Rust versions are synchronized. The package
metadata is 0.3.0 for the next synchronized format 1 release.
The exact synchronized 0.3.0 specification and conformance commits recorded in
conformance/pins.py are the authoritative release inputs.
A vX.Y.Z tag triggers release.yml and publishes to PyPI through Trusted Publishing,
gated by the manually approved pypi environment. Version bumps, tags, and publication
are separate release work and require explicit authorization.
Contributions are made under the MIT license.