diff --git a/examples/weight-custody-manifest/README.md b/examples/weight-custody-manifest/README.md index 929043d..35459dd 100644 --- a/examples/weight-custody-manifest/README.md +++ b/examples/weight-custody-manifest/README.md @@ -15,7 +15,7 @@ For a public open-weight model, base-weight confidentiality is theater (anyone c ```bash git clone https://github.com/agentrust-io/integrations.git cd integrations/examples/weight-custody-manifest -pip install -r requirements.txt # weight-custody-manifest>=0.33.1, Python 3.11+ +pip install -r requirements-model-signing.txt # all offline demos, Python 3.11+ ``` The offline demos need nothing else. `real_open_model.py` needs run-local extras (below). @@ -67,7 +67,7 @@ The same machinery, two trust settings. **Closed** weights (a frontier model dep - **`transparency_log.py`** -- the append-only Merkle log (SPEC 3.7 / RFC 9162): inclusion and consistency proofs, and a monitor detecting a suppressed revocation. - **`post_quantum.py`** -- sign and verify a manifest with ML-DSA-65 and with the Ed25519+ML-DSA-65 hybrid profile. -- **`provenance_model_signing.py`** -- interop with OpenSSF model-signing: a WCM manifest references a model-signing signature as its provenance, and `verify_provenance` cryptographically verifies it. Needs the extra: `pip install "weight-custody-manifest[model-signing]"`. +- **`provenance_model_signing.py`** -- interop with OpenSSF model-signing: a WCM manifest references a model-signing signature as its provenance, and `verify_provenance` cryptographically verifies it. Install `requirements-model-signing.txt` for this demo. ### Verifying real attestations @@ -81,7 +81,7 @@ The same machinery, two trust settings. **Closed** weights (a frontier model dep ```bash python closed_model_e2e.py # any of the offline examples -pip install "weight-custody-manifest[model-signing]" # for provenance_model_signing.py +python provenance_model_signing.py # model-signing interop pip install -r requirements-infer.txt # for real_open_model.py python real_open_model.py ``` @@ -93,6 +93,7 @@ python real_open_model.py `run_demos.py` runs every offline example and the unit tests, and must exit 0. ```bash +pip install pytest # required for the unit-test phase python run_demos.py # run everything python run_demos.py --list # show the plan, including what is skipped and why ``` diff --git a/examples/weight-custody-manifest/provenance_model_signing.py b/examples/weight-custody-manifest/provenance_model_signing.py index 7518c74..97bcd12 100644 --- a/examples/weight-custody-manifest/provenance_model_signing.py +++ b/examples/weight-custody-manifest/provenance_model_signing.py @@ -1,6 +1,6 @@ """Provenance interop: WCM custody on top of an OpenSSF model-signing signature. - pip install "weight-custody-manifest[model-signing]" + pip install -r requirements-model-signing.txt python provenance_model_signing.py Real WCM code, no hardware. OpenSSF model-signing (Sigstore) answers "who signed diff --git a/examples/weight-custody-manifest/requirements-lora.txt b/examples/weight-custody-manifest/requirements-lora.txt index ed115d0..72f9a9c 100644 --- a/examples/weight-custody-manifest/requirements-lora.txt +++ b/examples/weight-custody-manifest/requirements-lora.txt @@ -1,3 +1,5 @@ +# Include WCM and the model-signing dependency setup used by the offline demo. +-r requirements-model-signing.txt huggingface_hub==1.33.0 safetensors==0.8.0 transformers==5.19.0 diff --git a/examples/weight-custody-manifest/requirements-model-signing.txt b/examples/weight-custody-manifest/requirements-model-signing.txt new file mode 100644 index 0000000..f14a06c --- /dev/null +++ b/examples/weight-custody-manifest/requirements-model-signing.txt @@ -0,0 +1,7 @@ +-r requirements.txt +weight-custody-manifest[model-signing]>=0.33.1 + +# model-signing 1.1.1 imports OpenSSL.crypto without declaring pyOpenSSL. +# sigstore 4.5.1 no longer brings it in transitively. This range resolves +# alongside WCM's cryptography 50 requirement. +pyOpenSSL>=26.4.0,<27 diff --git a/examples/weight-custody-manifest/requirements.txt b/examples/weight-custody-manifest/requirements.txt index 9627bf9..28d0d96 100644 --- a/examples/weight-custody-manifest/requirements.txt +++ b/examples/weight-custody-manifest/requirements.txt @@ -1,4 +1,4 @@ # The Weight Custody Manifest reference SDK, from PyPI. -# Covers the offline examples. provenance_model_signing.py additionally needs the -# [model-signing] extra: pip install "weight-custody-manifest[model-signing]". +# Covers the offline examples. For provenance_model_signing.py, install +# requirements-model-signing.txt instead. weight-custody-manifest>=0.33.1