{"owner":"PyO3","repo":"maturin","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# AGENTS.md\n\n## Project overview\n\nmaturin builds and publishes Rust crates with pyo3, cffi, and uniffi bindings (and standalone Rust binaries) as Python packages. The core is written in Rust (`src/`) and exposed both as a CLI (`maturin`) and as a PEP 517 build backend through a small Python shim (`maturin/`).\n\n- `src/` — Rust source for the CLI, build backend, and library crate.\n- `maturin/` — Python package: PEP 517 bootstrap backend, `__main__` shim, and the import hook.\n- `tests/` — Rust integration tests (`cli.rs`, `run.rs`, helpers in `common/`, `cmd/`).\n- `test-crates/` — Fixture crates exercised by integration tests; do not commit changes here unless updating fixtures intentionally.\n- `guide/` — mdBook user documentation published at https://maturin.rs.\n- `sysconfig/` — Captured Python sysconfigs used for cross-compilation; treat as data.\n- `src/templates/` — `cargo-generate` templates for `maturin new`/`init`. Excluded from formatters/linters.\n- `noxfile.py` — Maintenance automation (e.g. `update-pyo3`, pyodide setup).\n\n## Build & run\n\n- Build the CLI: `cargo build` (or `cargo build --release`).\n- Run the CLI from source: `cargo run -- <args>`.\n\n## Tests\n\n- Rust unit + integration tests: `cargo test --all-features`.\n- A single integration test: `cargo test --test run -- <substring>`.\n- Python tests: `pytest tests/` (some require a built `maturin` on `PATH`).\n- Long-running cross-compile / manylinux tests live in `tests/manylinux_*.sh` and `tests/run.rs`; many require Docker, zig, or specific Python interpreters and are skipped by default.\n\nAlways run the relevant tests for code you touched and report failures faithfully.\n\n## Lint & format\n\nBefore finishing a change, run:\n\n- `cargo fmt --all`\n- `cargo clippy --tests --all-features -- -D warnings`\n- `cargo deny --all-features check` (when touching dependencies)\n- `pre-commit run --all-files` for Python / general hooks; `pre-commit run --hook-stage manual --all-files` to also run cargo-check and clippy.\n\nPython code uses `ruff` and `black` (line length 120, target py37) and `mypy` with strict untyped-def checks; see `pyproject.toml`.\n\n## Conventions\n\n- Rust edition and MSRV are pinned in `Cargo.toml` (`rust-version`); do not bump casually.\n- Keep public CLI flags and `pyproject.toml` `[tool.maturin]` keys backward compatible.\n- When adding a CLI option, regenerate the JSON schema via `cargo run --bin generate_json_schema` (see `src/generate_json_schema.rs`) so `maturin.schema.json` stays in sync.\n- Do not edit files under `src/templates/` to satisfy formatters; they are intentionally excluded.\n- Do not modify `sysconfig/` snapshots by hand.\n- Document what & why in git commit message instead of just a list of changes, use backtick for code snippets in commit message.\n- Do not edit `Changelog.md` by hand; it is generated from git history by [git-cliff](https://github.com/orhun/git-cliff) (see `cliff.toml`).\n"},"files":{"AGENTS.md":"# AGENTS.md\n\n## Project overview\n\nmaturin builds and publishes Rust crates with pyo3, cffi, and uniffi bindings (and standalone Rust binaries) as Python packages. The core is written in Rust (`src/`) and exposed both as a CLI (`maturin`) and as a PEP 517 build backend through a small Python shim (`maturin/`).\n\n- `src/` — Rust source for the CLI, build backend, and library crate.\n- `maturin/` — Python package: PEP 517 bootstrap backend, `__main__` shim, and the import hook.\n- `tests/` — Rust integration tests (`cli.rs`, `run.rs`, helpers in `common/`, `cmd/`).\n- `test-crates/` — Fixture crates exercised by integration tests; do not commit changes here unless updating fixtures intentionally.\n- `guide/` — mdBook user documentation published at https://maturin.rs.\n- `sysconfig/` — Captured Python sysconfigs used for cross-compilation; treat as data.\n- `src/templates/` — `cargo-generate` templates for `maturin new`/`init`. Excluded from formatters/linters.\n- `noxfile.py` — Maintenance automation (e.g. `update-pyo3`, pyodide setup).\n\n## Build & run\n\n- Build the CLI: `cargo build` (or `cargo build --release`).\n- Run the CLI from source: `cargo run -- <args>`.\n\n## Tests\n\n- Rust unit + integration tests: `cargo test --all-features`.\n- A single integration test: `cargo test --test run -- <substring>`.\n- Python tests: `pytest tests/` (some require a built `maturin` on `PATH`).\n- Long-running cross-compile / manylinux tests live in `tests/manylinux_*.sh` and `tests/run.rs`; many require Docker, zig, or specific Python interpreters and are skipped by default.\n\nAlways run the relevant tests for code you touched and report failures faithfully.\n\n## Lint & format\n\nBefore finishing a change, run:\n\n- `cargo fmt --all`\n- `cargo clippy --tests --all-features -- -D warnings`\n- `cargo deny --all-features check` (when touching dependencies)\n- `pre-commit run --all-files` for Python / general hooks; `pre-commit run --hook-stage manual --all-files` to also run cargo-check and clippy.\n\nPython code uses `ruff` and `black` (line length 120, target py37) and `mypy` with strict untyped-def checks; see `pyproject.toml`.\n\n## Conventions\n\n- Rust edition and MSRV are pinned in `Cargo.toml` (`rust-version`); do not bump casually.\n- Keep public CLI flags and `pyproject.toml` `[tool.maturin]` keys backward compatible.\n- When adding a CLI option, regenerate the JSON schema via `cargo run --bin generate_json_schema` (see `src/generate_json_schema.rs`) so `maturin.schema.json` stays in sync.\n- Do not edit files under `src/templates/` to satisfy formatters; they are intentionally excluded.\n- Do not modify `sysconfig/` snapshots by hand.\n- Document what & why in git commit message instead of just a list of changes, use backtick for code snippets in commit message.\n- Do not edit `Changelog.md` by hand; it is generated from git history by [git-cliff](https://github.com/orhun/git-cliff) (see `cliff.toml`).\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# AGENTS.md\n\n## Project overview\n\nmaturin builds and publishes Rust crates with pyo3, cffi, and uniffi bindings (and standalone Rust binaries) as Python packages. The core is written in Rust (`src/`) and exposed both as a CLI (`maturin`) and as a PEP 517 build backend through a small Python shim (`maturin/`).\n\n- `src/` — Rust source for the CLI, build backend, and library crate.\n- `maturin/` — Python package: PEP 517 bootstrap backend, `__main__` shim, and the import hook.\n- `tests/` — Rust integration tests (`cli.rs`, `run.rs`, helpers in `common/`, `cmd/`).\n- `test-crates/` — Fixture crates exercised by integration tests; do not commit changes here unless updating fixtures intentionally.\n- `guide/` — mdBook user documentation published at https://maturin.rs.\n- `sysconfig/` — Captured Python sysconfigs used for cross-compilation; treat as data.\n- `src/templates/` — `cargo-generate` templates for `maturin new`/`init`. Excluded from formatters/linters.\n- `noxfile.py` — Maintenance automation (e.g. `update-pyo3`, pyodide setup).\n\n## Build & run\n\n- Build the CLI: `cargo build` (or `cargo build --release`).\n- Run the CLI from source: `cargo run -- <args>`.\n\n## Tests\n\n- Rust unit + integration tests: `cargo test --all-features`.\n- A single integration test: `cargo test --test run -- <substring>`.\n- Python tests: `pytest tests/` (some require a built `maturin` on `PATH`).\n- Long-running cross-compile / manylinux tests live in `tests/manylinux_*.sh` and `tests/run.rs`; many require Docker, zig, or specific Python interpreters and are skipped by default.\n\nAlways run the relevant tests for code you touched and report failures faithfully.\n\n## Lint & format\n\nBefore finishing a change, run:\n\n- `cargo fmt --all`\n- `cargo clippy --tests --all-features -- -D warnings`\n- `cargo deny --all-features check` (when touching dependencies)\n- `pre-commit run --all-files` for Python / general hooks; `pre-commit run --hook-stage manual --all-files` to also run cargo-check and clippy.\n\nPython code uses `ruff` and `black` (line length 120, target py37) and `mypy` with strict untyped-def checks; see `pyproject.toml`.\n\n## Conventions\n\n- Rust edition and MSRV are pinned in `Cargo.toml` (`rust-version`); do not bump casually.\n- Keep public CLI flags and `pyproject.toml` `[tool.maturin]` keys backward compatible.\n- When adding a CLI option, regenerate the JSON schema via `cargo run --bin generate_json_schema` (see `src/generate_json_schema.rs`) so `maturin.schema.json` stays in sync.\n- Do not edit files under `src/templates/` to satisfy formatters; they are intentionally excluded.\n- Do not modify `sysconfig/` snapshots by hand.\n- Document what & why in git commit message instead of just a list of changes, use backtick for code snippets in commit message.\n- Do not edit `Changelog.md` by hand; it is generated from git history by [git-cliff](https://github.com/orhun/git-cliff) (see `cliff.toml`).\n","category":"root","tokens":729}]}