study last 100 days PRs

This commit is contained in:
Daniel Edrisian
2025-09-02 15:17:45 -07:00
parent 64751867ac
commit d2af202db7
308 changed files with 154487 additions and 1 deletions

View File

@@ -0,0 +1,60 @@
**DOs**
- Put test-only crates under `[dev-dependencies]`: keeps runtime clean and avoids unnecessary transitive deps.
```toml
# core/Cargo.toml (right)
[dependencies]
uuid = { version = "1", features = ["serde", "v4"] }
# … other runtime deps …
[dev-dependencies]
walkdir = "2.5.0" # used only in tests
```
- Prefer `Command::cargo_bin` in tests: runs the built binary directly instead of spawning `cargo run`.
```rust
use assert_cmd::prelude::*;
use assert_cmd::Command;
use tempfile::TempDir;
let home = TempDir::new().unwrap();
Command::cargo_bin("codex-cli")
.unwrap()
.args([
"exec",
"--skip-git-repo-check",
"-C",
env!("CARGO_MANIFEST_DIR"),
"echo integration-test-marker",
])
.env("CODEX_HOME", home.path())
.env("OPENAI_API_KEY", "dummy")
.env("OPENAI_BASE_URL", "http://unused.local")
.assert()
.success();
```
**DONTs**
- Dont add test-only crates to `[dependencies]`: this bloats the runtime dependency graph.
```toml
# core/Cargo.toml (wrong)
[dependencies]
walkdir = "2.5.0" # ❌ test-only; should be under [dev-dependencies]
```
- Dont shell out to `cargo run` from tests unless theres a compelling reason.
```rust
// ❌ Avoid this in tests
use assert_cmd::Command as AssertCommand;
let mut cmd = AssertCommand::new("cargo");
cmd.arg("run")
.arg("-p").arg("codex-cli")
.arg("--")
.arg("exec")
.arg("--skip-git-repo-check")
.arg("-C").arg(env!("CARGO_MANIFEST_DIR"))
.arg("echo integration-test-marker");
// Prefer Command::cargo_bin(...) instead (see DOs).
```