CI / cargo fmt (push) Has been cancelled
CI / cargo clippy (macos-latest) (push) Has been cancelled
CI / cargo clippy (ubuntu-latest) (push) Has been cancelled
CI / cargo clippy (windows-latest) (push) Has been cancelled
CI / cargo test (macos-latest) (push) Has been cancelled
CI / cargo test (ubuntu-latest) (push) Has been cancelled
CI / cargo test (windows-latest) (push) Has been cancelled
CI / cargo build (macos-latest) (push) Has been cancelled
CI / cargo build (ubuntu-latest) (push) Has been cancelled
CI / cargo build (windows-latest) (push) Has been cancelled
CI / cargo build --release (macos-latest) (push) Has been cancelled
CI / cargo build --release (ubuntu-latest) (push) Has been cancelled
CI / cargo build --release (windows-latest) (push) Has been cancelled
CI / CLI smoke (macos-latest) (push) Has been cancelled
CI / CLI smoke (ubuntu-latest) (push) Has been cancelled
CI / CLI smoke (windows-latest) (push) Has been cancelled
CI / Minimal E2E (macos-latest) (push) Has been cancelled
CI / Minimal E2E (ubuntu-latest) (push) Has been cancelled
CI / Minimal E2E (windows-latest) (push) Has been cancelled
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
30 lines
1.3 KiB
Markdown
30 lines
1.3 KiB
Markdown
# How to contribute
|
|
|
|
rustunnel is a small, focused project. Contributions should align with the project's purpose: a lab and development tunneling tool with strong security defaults.
|
|
|
|
## Work pickup
|
|
|
|
- Check the CI status before starting work.
|
|
- Open issues or PRs against the `master` branch.
|
|
- Keep changes focused. The codebase is small enough that large refactors should be discussed first.
|
|
|
|
## PR process
|
|
|
|
1. Run the full test suite locally: `cargo fmt --check && cargo clippy --all-targets -- -D warnings && cargo test --all-targets`
|
|
2. Ensure E2E tests pass if your change touches the tunnel or SOCKS5 path.
|
|
3. Write tests for new behavior. The project uses inline `#[cfg(test)]` modules.
|
|
4. Update relevant wiki pages if your change adds or removes features.
|
|
|
|
## Review expectations
|
|
|
|
- Security-sensitive changes (TLS, auth, framing) get extra scrutiny.
|
|
- All CI jobs must pass: fmt, clippy, test, build, smoke, and E2E.
|
|
- The project runs CI on Linux, macOS, and Windows. Avoid platform-specific code unless necessary (the signal handling module is the only current exception).
|
|
|
|
## Definition of done
|
|
|
|
- Code is formatted with `rustfmt`.
|
|
- Clippy warnings are resolved.
|
|
- Tests cover the new behavior, including edge cases.
|
|
- No `TODO` or `FIXME` comments are introduced (the project currently has zero).
|