Thanks for your interest.
This package is the Python reference verifier for Pipelock action receipts. The core rule: this implementation must match the Go reference byte-for-byte. Any change that causes verifier divergence needs coordination with the Go side before it lands.
- Python 3.9+
pip
git clone https://github.com/luckyPipewrench/pipelock-verify-python
cd pipelock-verify-python
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest- Fork the repository on GitHub.
- Clone your fork and create a feature branch.
- Make changes with tests.
- Run the pre-commit checklist below.
- Open a PR against
main.
Branch naming:
feat/for new featuresfix/for bug fixeschore/for maintenancedocs/for documentation
All four must pass with zero issues. These match what CI runs.
pytest # full test suite + conformance
ruff check pipelock_verify tests # lint
ruff format --check pipelock_verify tests # format check
mypy pipelock_verify # strict type checkThe tests/conformance/ directory holds golden files generated by the Go reference. When the Go side regenerates them, the Python side must still verify every one successfully.
To refresh conformance fixtures from a local Pipelock checkout:
cd /path/to/pipelock
go test ./sdk/conformance/ -run TestGenerateGoldenFiles -update
cp sdk/conformance/testdata/*.{json,jsonl} \
/path/to/pipelock-verify-python/tests/conformance/
pytestA Python change that causes a conformance fixture to fail is a bug. Fix the Python side. Do not edit the fixture.
- Changes to canonicalization rules (the SHA-256 signing input format)
- Changes to the receipt schema fields
- Changes to action type enum membership
- Changes to chain linkage rules (
chain_prev_hash,chain_seq, genesis handling)
For any of those, open an issue in the Go repo first, reach consensus, ship both sides together.
- New tests, including regression tests for bugs you find
- Doc improvements
- Type annotation improvements
- Performance improvements that do not change the verification result
- Python packaging, CI, and tooling changes
See SECURITY.md.