Bug reports, fixes, documentation and new capabilities are welcome.
git clone https://github.com/structured-world/structured-proxy.git
cd structured-proxy
cargo build --features cliTests run under cargo-nextest, which is not part of the Rust toolchain:
cargo install cargo-nextest --lockedBefore opening a pull request, run what CI runs. The crate builds with each crypto backend, without one and with both, and the code differs between them:
cargo fmt --all -- --check
cargo clippy --all-targets --features cli -- -D warnings
cargo clippy --all-targets --no-default-features --features cli -- -D warnings
cargo clippy --all-targets --all-features -- -D warnings
cargo nextest run --features cli
cargo nextest run --no-default-features --features cli
cargo nextest run --all-features
cargo test --doc --all-featuresCI runs these on every pull request, and three more checks that need a particular toolchain or host. To run them yourself:
# The minimum supported Rust version, `rust-version` in Cargo.toml.
rustup toolchain install 1.99
cargo +1.99 check --all-targets --all-features
cargo +1.99 check --all-targets --no-default-features --features cli
# The static musl build the release ships (Linux, with musl-tools installed).
rustup target add x86_64-unknown-linux-musl
cargo nextest run --target x86_64-unknown-linux-musl --features cli
# The advisory check of the dependencies.
cargo install cargo-deny --locked
cargo deny check advisoriesThe rate-limit reconciliation test runs against Redis when
SHIELD_REDIS_TEST_URL names one (redis://127.0.0.1:6379/).
- Create a branch from
main. - Make the change, with tests. A bug fix comes with a test that fails without it.
- Write commit messages and the pull request title in the
Conventional Commits form; pull
requests are squash-merged, so the title becomes the commit on
main. - A change to what the proxy serves or how it is configured updates the README in the same pull request.
Before a first pull request can be merged, you sign the Structured World
Contributor License Agreement once, at https://sw.foundation/cla. It covers
every repository of the organisation and takes a minute: sign in with GitHub,
confirm your e-mail address, sign. The CLA status on your pull request then
turns green by itself.
You keep the copyright in your contribution. If you contribute as part of your job, your employer may also need to sign the corporate agreement; the page above explains when.
Do not report vulnerabilities in public issues; see SECURITY.md.