diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 7afa4d56..e24c5900 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -15,4 +15,5 @@ Read and follow the CONTRIBUTING.md file in this repository for all code style c - Custom errors: `#[derive(Debug, Display, Error)]` - Minimize `unwrap()` in non-test code — use proper error handling - Install toolchain before running tests: `rustup toolchain install "$(< rust-toolchain)" && rustup component add --toolchain "$(< rust-toolchain)" rustfmt clippy` -- Run `FMT=true LINT=true BUILD=true TEST=true DOC=true ./test.sh` to validate changes +- Run `FMT=true LINT=true BUILD=true TEST=true DOC=true ./test.sh` to validate changes. If a test fails with a hint about `RUSTFLAGS` and `--cfg pdu_test_skip_*`, follow the hint and rerun with the suggested flags. +- **ALWAYS run the full test suite** (`FMT=true LINT=true BUILD=true TEST=true DOC=true ./test.sh`) before committing, regardless of how trivial the change seems — this includes documentation-only changes, comment edits, config changes, and refactors. The test suite checks formatting, linting, building, tests, and docs across multiple feature combinations; any type of change can break any of these checks. diff --git a/AGENTS.md b/AGENTS.md index 7afa4d56..e24c5900 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -15,4 +15,5 @@ Read and follow the CONTRIBUTING.md file in this repository for all code style c - Custom errors: `#[derive(Debug, Display, Error)]` - Minimize `unwrap()` in non-test code — use proper error handling - Install toolchain before running tests: `rustup toolchain install "$(< rust-toolchain)" && rustup component add --toolchain "$(< rust-toolchain)" rustfmt clippy` -- Run `FMT=true LINT=true BUILD=true TEST=true DOC=true ./test.sh` to validate changes +- Run `FMT=true LINT=true BUILD=true TEST=true DOC=true ./test.sh` to validate changes. If a test fails with a hint about `RUSTFLAGS` and `--cfg pdu_test_skip_*`, follow the hint and rerun with the suggested flags. +- **ALWAYS run the full test suite** (`FMT=true LINT=true BUILD=true TEST=true DOC=true ./test.sh`) before committing, regardless of how trivial the change seems — this includes documentation-only changes, comment edits, config changes, and refactors. The test suite checks formatting, linting, building, tests, and docs across multiple feature combinations; any type of change can break any of these checks. diff --git a/CLAUDE.md b/CLAUDE.md index f27d3302..84945705 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -15,5 +15,6 @@ Read and follow the CONTRIBUTING.md file in this repository for all code style c - Custom errors: `#[derive(Debug, Display, Error)]` - Minimize `unwrap()` in non-test code — use proper error handling - Install toolchain before running tests: `rustup toolchain install "$(< rust-toolchain)" && rustup component add --toolchain "$(< rust-toolchain)" rustfmt clippy` -- Run `FMT=true LINT=true BUILD=true TEST=true DOC=true ./test.sh` to validate changes +- Run `FMT=true LINT=true BUILD=true TEST=true DOC=true ./test.sh` to validate changes. If a test fails with a hint about `RUSTFLAGS` and `--cfg pdu_test_skip_*`, follow the hint and rerun with the suggested flags. +- **ALWAYS run the full test suite** (`FMT=true LINT=true BUILD=true TEST=true DOC=true ./test.sh`) before committing, regardless of how trivial the change seems — this includes documentation-only changes, comment edits, config changes, and refactors. The test suite checks formatting, linting, building, tests, and docs across multiple feature combinations; any type of change can break any of these checks. - `gh` (GitHub CLI) is not installed — do not attempt to use it diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 10d1b7e4..444a1460 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -342,3 +342,9 @@ The CI script `test.sh` runs all of these across 5 feature combinations. You can ```sh FMT=true LINT=true BUILD=true TEST=true DOC=true ./test.sh ``` + +> [!IMPORTANT] +> Always run the full test suite before committing, even for seemingly trivial changes such as documentation edits, comment changes, or config updates. Any change can break formatting, linting, building, tests, or doc generation across the different feature combinations. + +> [!NOTE] +> Some tests may fail with a hint about `RUSTFLAGS` and `--cfg pdu_test_skip_*` flags. Follow the hint and rerun with the suggested flags. diff --git a/template/ai-instructions/shared.md b/template/ai-instructions/shared.md index 7afa4d56..e24c5900 100644 --- a/template/ai-instructions/shared.md +++ b/template/ai-instructions/shared.md @@ -15,4 +15,5 @@ Read and follow the CONTRIBUTING.md file in this repository for all code style c - Custom errors: `#[derive(Debug, Display, Error)]` - Minimize `unwrap()` in non-test code — use proper error handling - Install toolchain before running tests: `rustup toolchain install "$(< rust-toolchain)" && rustup component add --toolchain "$(< rust-toolchain)" rustfmt clippy` -- Run `FMT=true LINT=true BUILD=true TEST=true DOC=true ./test.sh` to validate changes +- Run `FMT=true LINT=true BUILD=true TEST=true DOC=true ./test.sh` to validate changes. If a test fails with a hint about `RUSTFLAGS` and `--cfg pdu_test_skip_*`, follow the hint and rerun with the suggested flags. +- **ALWAYS run the full test suite** (`FMT=true LINT=true BUILD=true TEST=true DOC=true ./test.sh`) before committing, regardless of how trivial the change seems — this includes documentation-only changes, comment edits, config changes, and refactors. The test suite checks formatting, linting, building, tests, and docs across multiple feature combinations; any type of change can break any of these checks.