railiance-clock/tools
tegwick c29bf39b5d Verify reproducible release artifacts and map acceptance evidence
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0e6f0-a6f6-7b93-9124-55ef584930e2
2026-09-28 10:22:52 +02:00
..
build-requirements.in Verify reproducible release artifacts and map acceptance evidence 2026-09-28 10:22:52 +02:00
build-requirements.txt Verify reproducible release artifacts and map acceptance evidence 2026-09-28 10:22:52 +02:00
observe_host_clock.py Add repeatable read-only host clock inventory and live receipt 2026-09-14 13:19:22 +02:00
README.md Verify reproducible release artifacts and map acceptance evidence 2026-09-28 10:22:52 +02:00
verify_release.py Verify reproducible release artifacts and map acceptance evidence 2026-09-28 10:22:52 +02:00
wheel_smoke.py Verify reproducible release artifacts and map acceptance evidence 2026-09-28 10:22:52 +02:00

Host clock inventory

From the repository root, using an existing SSH alias and trust configuration:

python3 tools/observe_host_clock.py railiance01 --output docs/evidence/UNIQUE-host-clock-inventory.json
python3 -m unittest discover -s tests -v

Choose a unique output name for every observation. The collector refuses to replace an existing file. The remote host needs Python 3 and the systemd/ss tools; individual unavailable commands are recorded as failed observations. SSH failure aborts collection. No sudo, installation or host configuration change is performed.

The JSON records daemon/upstream metadata, configuration hashes and command exit codes. synchronized_reported is an OS report; authority_usable remains null. Neither host nor workstation observation timestamps are authenticated Railiance time, and this tool cannot establish an independent UTC error bound. It supports RCLK-WP-0005-T01 inventory; service acceptance remains in the specification and later workplan tasks.

The 2026-09-14 live JSON receipt accompanies the human-readable host inventory. Six unit tests cover transport failure, host argument validation, fixed command transport and unknown-versus-synchronized semantics.

Release verification

python3 tools/verify_release.py --output /tmp/rclk-release-UNIQUE builds and compares source archives and wheels, installs the wheel into a fresh environment, and runs wheel_smoke.py with isolated imports. It retains artifact/input hashes and a runtime component SBOM. See the procedure for build pins, evidence and platform limits.