|
1 | 1 | - Added evaluation report: [[Markdown/Tool/Evaluation/Linters and Auto-Formatters for Table Alignment and Code Blocks]] |
2 | 2 | - [[dprint]] is a rust based autoformatter, but it's also got some involvement with [[Webassembly]] ... |
3 | | -- [[Cargo/nexttest]] |
4 | | - - I've started using this in [[Person/codekiln/GitHub/langstar]]. |
5 | | - - It surprised me [here](https://github.com/codekiln/langstar/pull/680#discussion_r2611003288) |
6 | | - - My question: |
7 | | - - > In python and js, tools like linters would typically be locked alongside the libraries and specified in the package manager. Does rust really differ from these that much? |
8 | | - - [[ChatGPT/Response]] |
9 | | - - `cargo-nextest` is a **binary tool** (cargo subcommand), not a Rust library. Binary tools must be installed via `cargo install`, not added to `Cargo.toml` dev-dependencies. |
10 | | - - **Yes — Rust really does differ here.** The difference is structural: |
11 | | - - **Cargo only manages libraries you compile into your project.** `Cargo.toml` is a crate manifest, not a general dependency manifest. Unlike JS (`package.json`) or Python (`requirements.txt`), it doesn't manage binary tools. |
12 | | - - **Rust ecosystem assumes tools are installed globally** via `cargo install`, Nix, Docker, or OS package managers. This matches systems languages like Go/C++/Zig, not Python/JS. |
13 | | - - **Version-locking tools happens outside Cargo** via devcontainer.json, Dockerfiles, Nix flakes, CI scripts, or a `tools/` workspace crate. |
14 | | - - **Bottom line:** Cargo intentionally separates build tools from build inputs. For reproducible tooling, use devcontainer/Docker/Nix/CI scripts, not `Cargo.toml`. |
| 3 | +- [[Rust]] learning |
| 4 | + - [[Cargo/nexttest]] |
| 5 | + - I've started using this in [[Person/codekiln/GitHub/langstar]]. |
| 6 | + - It surprised me [here](https://github.com/codekiln/langstar/pull/680#discussion_r2611003288) |
| 7 | + - My question: |
| 8 | + - > In python and js, tools like linters would typically be locked alongside the libraries and specified in the package manager. Does rust really differ from these that much? |
| 9 | + - [[ChatGPT/Response]] |
| 10 | + - `cargo-nextest` is a **binary tool** (cargo subcommand), not a Rust library. Binary tools must be installed via `cargo install`, not added to `Cargo.toml` dev-dependencies. |
| 11 | + - **Yes — Rust really does differ here.** The difference is structural: |
| 12 | + - **Cargo only manages libraries you compile into your project.** `Cargo.toml` is a crate manifest, not a general dependency manifest. Unlike JS (`package.json`) or Python (`requirements.txt`), it doesn't manage binary tools. |
| 13 | + - **Rust ecosystem assumes tools are installed globally** via `cargo install`, Nix, Docker, or OS package managers. This matches systems languages like Go/C++/Zig, not Python/JS. |
| 14 | + - **Version-locking tools happens outside Cargo** via devcontainer.json, Dockerfiles, Nix flakes, CI scripts, or a `tools/` workspace crate. |
| 15 | + - **Bottom line:** Cargo intentionally separates build tools from build inputs. For reproducible tooling, use devcontainer/Docker/Nix/CI scripts, not `Cargo.toml`. |
0 commit comments