Remove incorrect nightly Rust requirements from DEVELOPMENT.md#69
Conversation
…toml Co-authored-by: tcrypt25519 <212655132+tcrypt25519@users.noreply.github.com>
Co-authored-by: tcrypt25519 <212655132+tcrypt25519@users.noreply.github.com>
Co-authored-by: tcrypt25519 <212655132+tcrypt25519@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Updates developer-facing documentation to accurately reflect that Jet uses the stable Rust toolchain (including rustfmt/clippy), and aligns CI documentation with the current GitHub Actions workflow.
Changes:
- Remove incorrect nightly-Rust requirements and installation steps from
DEVELOPMENT.md. - Update CI workflow documentation to reflect the current stable-only CI job (including LLVM caching and auto-format behavior).
- Remove outdated nightly-related comments from
rust-toolchain.toml.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| rust-toolchain.toml | Removes outdated nightly-related comments; keeps stable as the configured toolchain. |
| DEVELOPMENT.md | Updates prerequisites, formatting/linting guidance, Makefile target descriptions, and CI step documentation to match current tooling/CI behavior. |
| 1. **Rust Toolchain** | ||
| - Stable Rust (for building, testing, formatting, and linting) |
There was a problem hiding this comment.
PR description claims “No references to nightly remain in documentation”, but the repo still contains “nightly” references (e.g., docs/manifesto.md). Either narrow the claim in the PR description (e.g., “in DEVELOPMENT.md / toolchain docs”) or update the remaining docs to be consistent with “stable for all operations”.
| # Use stable Rust by default | ||
| channel = "stable" | ||
|
|
||
| # Specify the profile - minimal is faster to install |
There was a problem hiding this comment.
The comment says the toolchain profile is “minimal” (faster to install), but the config sets profile = "default". Either change the comment to match default, or switch the profile to minimal if that’s intended.
| # Specify the profile - minimal is faster to install | |
| # Use the default profile (includes common components like rustfmt) |
| 1. **Cache LLVM 21** - Checks for cached LLVM installation | ||
| 2. **Restore LLVM from cache** - Restores if cache hit (conditional) | ||
| 3. **Install LLVM 21** - Uses `scripts/install-llvm.sh` if not cached (conditional) | ||
| 4. **Log LLVM shared libraries** - Verification step | ||
| 5. **Set LLVM environment variables** - Configures LLVM_SYS_211_PREFIX | ||
| 6. **Cache Rust build artifacts** - Uses Swatinem/rust-cache | ||
| 7. **Install Rust stable** - With rustfmt and clippy components | ||
| 8. **Apply formatting fixes** - `cargo fmt --all` | ||
| 9. **Commit formatting fixes** - Automatically commits and pushes formatting changes (conditional) | ||
| 10. **Run clippy** - `cargo clippy --all-targets --all-features -- -D warnings` | ||
| 11. **Install cargo-nextest** - Test runner | ||
| 12. **Check all targets** - `cargo check --all-targets --all-features` | ||
| 13. **Build** - `cargo build --verbose --all-features` | ||
| 14. **Run tests with nextest** - `cargo nextest run --all-features --no-fail-fast` | ||
| 15. **Run doctests** - `cargo test --doc --all-features` |
There was a problem hiding this comment.
The CI steps list says the workflow has 15 steps, but the actual .github/workflows/ci.yml also includes an actions/checkout@v4 step before caching LLVM. Consider including checkout in the numbered list (or adjust the “15 steps” wording) so the documentation matches the workflow.
| 1. **Cache LLVM 21** - Checks for cached LLVM installation | |
| 2. **Restore LLVM from cache** - Restores if cache hit (conditional) | |
| 3. **Install LLVM 21** - Uses `scripts/install-llvm.sh` if not cached (conditional) | |
| 4. **Log LLVM shared libraries** - Verification step | |
| 5. **Set LLVM environment variables** - Configures LLVM_SYS_211_PREFIX | |
| 6. **Cache Rust build artifacts** - Uses Swatinem/rust-cache | |
| 7. **Install Rust stable** - With rustfmt and clippy components | |
| 8. **Apply formatting fixes** - `cargo fmt --all` | |
| 9. **Commit formatting fixes** - Automatically commits and pushes formatting changes (conditional) | |
| 10. **Run clippy** - `cargo clippy --all-targets --all-features -- -D warnings` | |
| 11. **Install cargo-nextest** - Test runner | |
| 12. **Check all targets** - `cargo check --all-targets --all-features` | |
| 13. **Build** - `cargo build --verbose --all-features` | |
| 14. **Run tests with nextest** - `cargo nextest run --all-features --no-fail-fast` | |
| 15. **Run doctests** - `cargo test --doc --all-features` | |
| 1. **Checkout repository** - Uses `actions/checkout@v4` | |
| 2. **Cache LLVM 21** - Checks for cached LLVM installation | |
| 3. **Restore LLVM from cache** - Restores if cache hit (conditional) | |
| 4. **Install LLVM 21** - Uses `scripts/install-llvm.sh` if not cached (conditional) | |
| 5. **Log LLVM shared libraries** - Verification step | |
| 6. **Set LLVM environment variables** - Configures LLVM_SYS_211_PREFIX | |
| 7. **Cache Rust build artifacts** - Uses Swatinem/rust-cache | |
| 8. **Install Rust stable** - With rustfmt and clippy components | |
| 9. **Apply formatting fixes** - `cargo fmt --all` | |
| 10. **Commit formatting fixes** - Automatically commits and pushes formatting changes (conditional) | |
| 11. **Run clippy** - `cargo clippy --all-targets --all-features -- -D warnings` | |
| 12. **Install cargo-nextest** - Test runner | |
| 13. **Check all targets** - `cargo check --all-targets --all-features` | |
| 14. **Build** - `cargo build --verbose --all-features` | |
| 15. **Run tests with nextest** - `cargo nextest run --all-features --no-fail-fast` | |
| 16. **Run doctests** - `cargo test --doc --all-features` |
| - **Smart caching**: Uses `Swatinem/rust-cache` for optimized Rust artifact caching and LLVM binary caching | ||
| - **LLVM Setup**: Automatically installs and caches LLVM 21 using project scripts | ||
| - **Strict Mode**: Warnings are treated as errors (`-D warnings`) | ||
| - **Auto-formatting**: Automatically applies formatting fixes and pushes them back to the branch on push/PR |
There was a problem hiding this comment.
The docs say CI “pushes [formatting fixes] back to the branch on push/PR”, but the workflow’s Commit formatting fixes step is conditional and won’t run for PRs from forks (no write permission). Suggest clarifying the condition (e.g., only on pushes and same-repo PRs) to avoid misleading contributors.
| - **Auto-formatting**: Automatically applies formatting fixes and pushes them back to the branch on push/PR | |
| - **Auto-formatting**: Automatically applies formatting fixes in CI and, when the workflow has write permission (pushes and same-repo PRs only), pushes them back to the branch |
* Initial plan * Remove all nightly references from DEVELOPMENT.md and rust-toolchain.toml Co-authored-by: tcrypt25519 <212655132+tcrypt25519@users.noreply.github.com> * Update CI workflow steps to match actual workflow more precisely Co-authored-by: tcrypt25519 <212655132+tcrypt25519@users.noreply.github.com> * Clarify CI auto-formatting behavior in documentation Co-authored-by: tcrypt25519 <212655132+tcrypt25519@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: tcrypt25519 <212655132+tcrypt25519@users.noreply.github.com>
DEVELOPMENT.md incorrectly stated that nightly Rust was required for formatting and linting. The project uses stable Rust for all operations.
Changes
rustup toolchain install nightlyinstructionscargo +nightlyValidation
cargocommands (not+nightly)💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.