Run from examples/python-language/:
/tmp/tasklab24-clean-INVHXp/bin/python -m pip download --no-index --find-links artifacts --python-version 3.12 --only-binary=:all: --no-deps tasklab==0.1.0 --dest /tmp/tasklab26-wheel-xLtrAe > evidence/26/20261007-compat/compatible.stdout 2> evidence/26/20261007-compat/compatible.stderr
exit=0 (wheel dir was generated via mktemp; local wheel copy checksum in compatible.sha256)
/tmp/tasklab24-clean-INVHXp/bin/python -m pip download --no-index --find-links artifacts --python-version 3.11 --only-binary=:all: --no-deps tasklab==0.1.0 --dest /tmp/tasklab26-wheel-xLtrAe > evidence/26/20261007-compat/incompatible.stdout 2> evidence/26/20261007-compat/incompatible.stderr
exit=1 (resolver rejection, NOT runtime 3.11 execution)
/usr/bin/python3.12 tools/audit_release.py artifacts/tasklab-0.1.0-py3-none-any.whl artifacts/tasklab-0.1.0.tar.gz > evidence/26/20261007-compat/audit.stdout 2> evidence/26/20261007-compat/audit.stderr
exit=0
sha256sum -c evidence/25/20261007-wheel/artifacts.sha256 > evidence/26/20261007-compat/hash.stdout 2> evidence/26/20261007-compat/hash.stderr
exit=0 (two originals)
/usr/bin/python3.12 - artifacts/tasklab-0.1.0-py3-none-any.whl /tmp/tasklab26-tampered.whl > evidence/26/20261007-compat/tamper.stdout <<'PY'
import hashlib
from pathlib import Path
import sys
original = Path(sys.argv[1]).read_bytes()
modified = original[:-1] + bytes([original[-1] ^ 1])
Path(sys.argv[2]).write_bytes(modified)
print('original_sha256', hashlib.sha256(original).hexdigest())
print('tampered_sha256', hashlib.sha256(modified).hexdigest())
PY
exit=0 (raw hashes in tamper.stdout)
printf 'f7d919d3de1aedcdc2495ca2cbe9ee0f240a7e7e378f7d8cb7edf4d18e8dffbb  /tmp/tasklab26-tampered.whl\n' | sha256sum -c - > evidence/26/20261007-compat/tamper-check.stdout 2> evidence/26/20261007-compat/tamper-check.stderr
exit=1 (expected hash mismatch)
From /tmp without PYTHONPATH:
/tmp/tasklab25-install-Ac9pzR/bin/python /home/admin/workspace/my-blogs/examples/python-language/tools/check_release_install.py > /home/admin/workspace/my-blogs/examples/python-language/evidence/26/20261007-compat/stdout.log 2> /home/admin/workspace/my-blogs/examples/python-language/evidence/26/20261007-compat/stderr.log
exit=0 (five separate CLI child processes: 0,0,0,2,0)
From examples/python-language/ (source regression, not installed wheel regression):
PYTHONPATH=src /tmp/tasklab24-clean-INVHXp/bin/python -m unittest discover -s tests -v > evidence/26/20261007-compat/tests.stdout 2> evidence/26/20261007-compat/tests.stderr
exit=0 (71 tests)
From repository root with initially nonexistent output dir:
PATH=/opt/cloudcli/node/bin:$PATH sh examples/python-language/tools/build_selected_pages.sh /tmp/tasklab26-pages-tc8QrA > examples/python-language/evidence/26/20261007-compat/hexo-mini.stdout 2> examples/python-language/evidence/26/20261007-compat/hexo-mini.stderr
exit=0 (27 pages)
