Skip to content

docs: fix README, CONTRIBUTING, and AGENTS drift - #650

Merged
emlautarom1 merged 11 commits into
mainfrom
feat/fix-634
Oct 6, 2026
Merged

emlautarom1 merged 11 commits into
mainfrom
feat/fix-634

Conversation

@varex83agent

Copy link
Copy Markdown
Collaborator

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

- 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 <[email protected]>

@emlautarom1 emlautarom1 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd leave this PR as pending until we have #597 and #611 merged: there is no point in describing a setup that will change in the near future.

Comment thread CONTRIBUTING.md Outdated
Comment thread CONTRIBUTING.md Outdated
Comment thread README.md Outdated
varex83agent and others added 2 commits August 20, 2026 23:11
- 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 <[email protected]>
@varex83
varex83 requested a review from emlautarom1 August 31, 2026 09:41
Resolve the conflicts and re-align the docs with what main now does:

- AGENTS.md: keep both sides' new crates (ssz, test-compose) and add the
  two still missing from the tree (proto, stacktrace).
- CONTRIBUTING.md: drop the Go and oas3-gen dev-dependency mentions now
  that #597 and #611 have landed, and describe what the Nix shell
  actually provides. The pre-push description and the test command moved
  from `--all-features` to `--features pluto-eth2api/integration`, which
  is what the hook runs; the Docker caveat now hangs off that feature,
  and the opt-in smoke tests need Docker too. List cargo-llvm-cov under
  manual setup, since the Nix shell provides it.
- README.md: same test command fix.
- crates/cluster/src/lib.rs: take main's module doc, which already
  carries the "# Pluto Cluster" heading this branch was renaming to.

Co-Authored-By: Bohdan Ohorodnii <[email protected]>
@varex83agent

Copy link
Copy Markdown
Collaborator Author

Merged main and addressed the outstanding review.

On the blocker — #597 (Go toolchain) and #611 (oas3-gen) are both closed now, so there's no longer a setup in flux being described. Dropped both from CONTRIBUTING entirely rather than carrying them as a future cleanup.

Conflicts resolved:

  • AGENTS.md — both sides added a crate to the tree (ssz here, test-compose on main); kept both and added the two still missing, proto and stacktrace. The tree now matches crates/ exactly.
  • CONTRIBUTING.md — see below.
  • crates/cluster/src/lib.rs — took main's module doc verbatim; it already carries the # Pluto Cluster heading this branch was renaming to, plus a better body. No diff against main here any more.

Further drift found while merging (main moved these after the PR was opened):

  • The pre-push hook now runs cargo test --locked --workspace --features pluto-eth2api/integration, not --all-features. CONTRIBUTING's description of the hook and the README quickstart both still said --all-features; fixed both. The Docker caveat now hangs off pluto-eth2api/integration, which is the feature that actually pulls in testcontainers.
  • Noted that the opt-in smoke tests (--features smoke) need Docker too, and that Docker is not part of the Nix shell — it's a host daemon.
  • Added cargo-llvm-cov to the manual-setup list, since the Nix shell provides it.

Verified all 11 example paths in the README resolve to real files, and that nethermindeth/pluto + ENTRYPOINT ["/app/bin/pluto"] match publish-dockerhub.yml and the Dockerfile.

Gates: cargo +nightly fmt --all --check, cargo clippy --workspace --all-targets --all-features -- -D warnings, cargo test --workspace --features pluto-eth2api/integration (66 targets, 0 failures) and cargo deny check all pass. The two cargo deny duplicate warnings (windows-sys, yamux) are pre-existing on main.

🤖 Generated with Claude Code

@emlautarom1 emlautarom1 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Made some follow up fixes:

  • More consistent help messages
  • Simplified README and CONTRIBUTING docs
  • Include nightly rustfmt requirement
  • Pin dependencies in instructions

@emlautarom1
emlautarom1 merged commit db74fa1 into main Oct 6, 2026
14 checks passed
@emlautarom1
emlautarom1 deleted the feat/fix-634 branch October 6, 2026 01:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix README, CONTRIBUTING, and AGENTS drift

2 participants