Skip to content

Commit 695dda4

Browse files
authored
Allow automated commits and fix C-API test instructions (#8468)
* Allow automated commits through pre-commit hooks * Fix agent C-API test instructions Exclude rustpython-capi from root workspace test commands and run its tests from the crate directory so its Cargo configuration applies. Document the project AI policy and required commit trailer. Assisted-by: Codex:gpt-5
1 parent cf68876 commit 695dda4

1 file changed

Lines changed: 14 additions & 6 deletions

File tree

AGENTS.md

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,22 @@ See the "Code organization" section in [CONTRIBUTING.md](CONTRIBUTING.md#code-or
1717

1818
## AI Agent Rules
1919

20+
**CRITICAL: AI Policy**
21+
22+
- Follow RustPython's [AI Policy](https://github.com/RustPython/.github/blob/main/AI_POLICY.md) for every AI-assisted contribution.
23+
- Disclose AI assistance in commit messages with an `Assisted-by: AGENT_NAME:MODEL_VERSION` trailer. Use one trailer per AI tool, and never use `Co-authored-by` for an AI assistant.
24+
2025
**CRITICAL: Git Operations**
2126
- NEVER create pull requests directly without explicit user permission
2227
- NEVER push commits to remote without explicit user permission
2328
- Always ask the user before performing any git operations that affect the remote repository
2429
- Commits can be created locally when requested, but pushing and PR creation require explicit approval
2530

26-
**CRITICAL: Pre-commit Checks**
27-
- Before creating ANY commit, you MUST run `prek run --all-files` (or `pre-commit run --all-files`) AND the full test suite. Both must pass — do not commit if either fails.
28-
- Test commands are documented in the [Testing](#testing) section below. At minimum run `cargo test --workspace --exclude rustpython_wasm --exclude rustpython-venvlauncher`; if the change touches `extra_tests/snippets/` run `pytest -v` there too, and if it touches `Lib/` or interpreter behavior, run the relevant `cargo run --release -- -m test <module>` modules.
29-
- If a hook auto-fixes files (e.g. `ruff-format`, `rustfmt`), re-stage the fixes, re-run `prek` until it reports a clean pass, then re-run the tests, then commit.
30-
- NEVER bypass these checks with `--no-verify`, `--no-gpg-sign`, or by skipping tests "because the change is small". If a hook or test fails, fix the underlying issue and create a new commit — do not amend or force the failing commit through.
31+
**CRITICAL: Commit Hooks and Validation**
32+
- Install the repository's pre-commit hook with `prek install` (or `pre-commit install`) after cloning the repository.
33+
- Every commit must run the configured pre-commit hook. NEVER bypass it with `--no-verify`. Automated workflows that use a normal `git commit`, such as `scripts/update_lib quick`, should be allowed to create local commits through the hook.
34+
- If a hook auto-fixes files (e.g. `ruff-format`, `rustfmt`), re-stage the fixes and retry the commit. Do not amend or force a failing commit through.
35+
- Before completing a task, run the tests appropriate for the change. Test commands are documented in the [Testing](#testing) section below. At minimum run `cargo test --workspace --exclude rustpython_wasm --exclude rustpython-venvlauncher --exclude rustpython-capi`, then run `cargo test` from `crates/capi`; if the change touches `extra_tests/snippets/` run `pytest -v` there too, and if it touches `Lib/` or interpreter behavior, run the relevant `cargo run --release -- -m test <module>` modules.
3136

3237
## Important Development Notes
3338

@@ -113,7 +118,10 @@ rm -r target/debug/build/rustpython-* && find . | grep -E "\.pyc$" | xargs rm -r
113118

114119
```bash
115120
# Run Rust unit tests
116-
cargo test --workspace --exclude rustpython_wasm --exclude rustpython-venvlauncher
121+
cargo test --workspace --exclude rustpython_wasm --exclude rustpython-venvlauncher --exclude rustpython-capi
122+
123+
# Run C-API tests from their directory so their separate Cargo config applies
124+
(cd crates/capi && cargo test)
117125

118126
# Run Python snippets tests (debug mode recommended for faster compilation)
119127
cargo run -- extra_tests/snippets/builtin_bytes.py

0 commit comments

Comments
 (0)