Policies

Toolchain policy

Python 3.10 is the floor (requires-python = ">=3.10" in pyproject.toml), with Linux CI on 3.10, 3.11, 3.12, 3.13 and 3.14. The floor matches the pain001 core library, which this package depends on; it moves when the core’s does, in the same family release, and the change is recorded in the changelog. No distro-system Python is supported.

Dependency policy

pain001 is the only runtime dependency. Its floor is the family’s release version, capped below 1, so a release never resolves an older core and the older advisory floors it declares. CI installs every tool from hash-pinned requirements/*.txt, compiled from the .in files beside them with make pip-compile, and audits each of them with pip-audit on every pull request. A dependency with a published advisory is constrained so no affected version can resolve.

Versioning policy

The package follows the pain001 suite: the members release together at one version, core first, in 0.0.1 steps. scripts/verify_versions.py checks every place the version is restated, and the scheduled Suite Consistency workflow compares the tree and the published suite with PyPI.