docs: fix README, CONTRIBUTING, and AGENTS drift - #650
Conversation
- CONTRIBUTING: clarify nix develop does not provide Rust toolchain; document nightly rustfmt, Go, and Docker daemon requirements; document pre-push hook sequence; fix dhat TOML fence and use a valid version - README: rewrite Version compatibility section for Pluto (was copy-pasted from Charon); add Build/Run/Test quickstart; add 5 missing examples - AGENTS.md: add 8 missing crates (consensus, eth1wrap, featureset, frost, infosync, parsigex, priority, ssz); add third_party/ and scripts/ to tree - cli.rs: replace user-visible "Verify that Charon" and "charon clients" with Pluto in long_about help strings; fix "Creates a local charon cluster" - cli/commands/run.rs: fix misleading comment that said "pluto enr private key" when the actual default filename is charon-enr-private-key - crates/cluster/src/lib.rs, crates/tracing/src/lib.rs: rename module doc headings from "# Charon ..." to "# Pluto ..." Closes #634 Co-Authored-By: Bohdan Ohorodnii <35969035+varex83@users.noreply.github.com>
| This automatically provides all required dependencies (Rust toolchain, Protobuf, oas3-gen, cargo-deny, cargo-machete) and configures git hooks. | ||
| This automatically provides the auxiliary dependencies (Protobuf, Go, oas3-gen, cargo-deny, cargo-machete) and configures git hooks. | ||
|
|
||
| > **Note:** `nix develop` does **not** manage the Rust toolchain. The toolchain is pinned in `rust-toolchain.toml` and must be installed separately via [rustup](https://rustup.rs/). After installing rustup, run `rustup show` once in the repo root to install the pinned toolchain automatically. The nightly toolchain is also required for `rustfmt` — install it with `rustup toolchain install nightly`. |
There was a problem hiding this comment.
This is outdated: the Nix setup already provides the correct Rust toolchain. Drop this note entirely.
There was a problem hiding this comment.
Done — dropped the note entirely. Merged main in so the branch now carries the #598 flake fix; the dev shell derives the pinned toolchain from rust-toolchain.toml and provides nightly rustfmt, so the caveat no longer applies.
| ``` | ||
|
|
||
| This automatically provides all required dependencies (Rust toolchain, Protobuf, oas3-gen, cargo-deny, cargo-machete) and configures git hooks. | ||
| This automatically provides the auxiliary dependencies (Protobuf, Go, oas3-gen, cargo-deny, cargo-machete) and configures git hooks. |
| docker pull ghcr.io/nethermindeth/pluto:latest | ||
| docker run --rm ghcr.io/nethermindeth/pluto:latest pluto --help |
There was a problem hiding this comment.
We don't use Github's container registry. Also, the entrypoint is already pluto so this command as is does not work:
| docker pull ghcr.io/nethermindeth/pluto:latest | |
| docker run --rm ghcr.io/nethermindeth/pluto:latest pluto --help | |
| docker pull nethermindeth/pluto:latest | |
| docker run --rm nethermindeth/pluto:latest --help |
There was a problem hiding this comment.
Applied the suggestion — Docker Hub (nethermindeth/pluto) instead of ghcr.io, and dropped the redundant pluto arg since the entrypoint is already /app/bin/pluto.
- CONTRIBUTING.md: drop the outdated note claiming `nix develop` does not manage the Rust toolchain. Since #598 the dev shell derives the pinned toolchain from rust-toolchain.toml and provides nightly rustfmt, so the note is wrong. Fold the accurate facts into the intro sentence. - README.md: pull from Docker Hub (`nethermindeth/pluto`), not ghcr.io, and drop the redundant `pluto` arg since the image entrypoint is already `/app/bin/pluto`. Co-authored-by: varex83 <bohdan.ohorodnii@nethermind.io>
Closes #634
Summary
CONTRIBUTING.md: Correct the false claim that `nix develop` provides the Rust toolchain (it doesn't — `rust-toolchain.toml` + rustup does). Document that nightly rustfmt, Go, and a running Docker daemon are required for the full quality gate. Document what the pre-push hook actually runs (deny + machete + nightly fmt + clippy + test). Fix the dhat profiling section: wrong code fence (```rust → ```toml) and invalid version (`"latest"` → `"0.3"`).
README.md: Rewrite the "Version compatibility" section to describe Pluto's own promise (was verbatim copy from Charon, talking about "two versions of Charon"). Add a minimal Build/Run/Test quickstart covering Docker image, source build, and test-infra. Add 5 missing examples (bootnode, consensus/qbft, dkg/bcast, dkg/sync, parsigex).
AGENTS.md: Add 8 missing crates to the workspace tree diagram: `consensus`, `eth1wrap`, `featureset`, `frost`, `infosync`, `parsigex`, `priority`, `ssz`. Add `scripts/` and `third_party/` to the tree.
crates/cli/src/cli.rs: Replace user-visible "Verify that Charon …" and "charon clients" in `long_about` strings with Pluto. Fix "Creates a local charon cluster configuration" to say "local cluster configuration". File/flag names (`charon-enr-private-key`) are compatibility surface and are left untouched.
crates/cli/src/commands/run.rs: Fix the `help` comment that said "pluto enr private key" while the actual default is `charon-enr-private-key`; comment now explains the Charon-compatible filename is intentional.
crates/cluster/src/lib.rs, crates/tracing/src/lib.rs: Rename module-doc headings from "# Charon Cluster" / "# Charon Observability" to "# Pluto Cluster" / "# Pluto Observability".
🤖 Generated with Claude Code