Skip to content

Latest commit

 

History

History
48 lines (37 loc) · 1.76 KB

File metadata and controls

48 lines (37 loc) · 1.76 KB

Contributing to ASPL

Thanks for your interest in ASPL (Agent Supply Protocol Layer). ASPL is a protocol first and a reference implementation second — contributions to both are welcome.

Getting set up

git clone <your fork>
cd aspl-protocol
./install.sh --dev          # venv + ASPL + dev/test extras
source .venv/bin/activate
make test                   # full suite

Ground rules

  • Tests, not mocks. Every behavioural change ships with a test that exercises it over the real protocol (HTTP/ASGI), like the existing suite. No mocked stand-ins for the thing under test.
  • The spec is the contract. If you change wire behaviour, update SPEC.md and conformance/aspl_conformance.py in the same change. A change that makes the reference node fail its own conformance suite will not be merged.
  • Additive by default. Prefer extending over removing. If a change would remove or break an existing capability, call it out explicitly in the PR.
  • Security-relevant changes (crypto, auth, scanning, trust, revocation) get an adversarial test in tests/test_adversarial.py showing the attack is defended.

Before opening a PR

make test                                  # all tests green
ruff check aspl/ tests/                    # lint clean
aspl-server --port 5010 &                  # then, in another shell:
python -m conformance.aspl_conformance http://127.0.0.1:5010   # CONFORMANT

Commit style

Small, focused commits with a clear subject line describing the behaviour change. Reference the spec section you touched where relevant.

Reporting bugs / proposing features

Use the issue templates under .github/ISSUE_TEMPLATE/. For protocol changes, describe the wire-level change and its backward-compatibility impact.