Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 17 additions & 3 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

**Key Facts:**
- **Language:** Rust (edition 2024)
- **MSRV:** 1.86.0 (Minimum Supported Rust Version)
- **MSRV:** 1.87.0 (Minimum Supported Rust Version)
- **Size:** ~6,000 lines of source code, ~4,400 lines of tests
- **Type:** Library crate (no binary)
- **Dependencies:** Minimal (num-traits, indexmap, rustc-hash, integer-sqrt, thiserror, deprecate-until)
Expand All @@ -15,7 +15,7 @@
## Build and Validation Commands

### Prerequisites
All commands should be run from the repository root. The project requires Rust toolchain (stable, beta, nightly, or MSRV 1.86.0).
All commands should be run from the repository root. The project requires Rust toolchain (stable, beta, nightly, or MSRV 1.87.0).

### Essential Commands (In Order)

Expand Down Expand Up @@ -99,7 +99,7 @@
## Project Structure

### Root Directory Files
- `Cargo.toml` - Project manifest with dependencies, MSRV (rust-version = "1.86.0"), and linting configuration
- `Cargo.toml` - Project manifest with dependencies, MSRV (rust-version = "1.87.0"), and linting configuration
- `Cargo.lock` - Locked dependency versions
- `README.md` - User-facing documentation
- `CHANGELOG.md` - Version history
Expand Down Expand Up @@ -166,6 +166,20 @@
3. **codspeed.yml** (Runs on main branch pushes and PRs):
- Runs performance benchmarks

## MSRV (Minimum Supported Rust Version)

When updating the MSRV, you must update it in the following locations:
1. **Cargo.toml** - The `rust-version` field (line 14)
2. **src/lib.rs** - Documentation comment stating "The minimum supported Rust version (MSRV) is Rust X.Y.Z" (line 89)
3. **.github/copilot-instructions.md** - Three locations:
- "MSRV: X.Y.Z" in Key Facts section (line 9)
- "MSRV X.Y.Z" in Prerequisites section (line 18)
- "rust-version = X.Y.Z" in Root Directory Files section (line 102)

**Note:** The GitHub Actions workflow (.github/workflows/tests.yml) automatically reads the MSRV from Cargo.toml, so it does not need manual updates.

After updating the MSRV, always run `sh tests/check-msrv-consistency.sh` to verify that Cargo.toml and src/lib.rs are in sync.

## Critical Validation Rules

### Before Committing
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ authors = ["Samuel Tardieu <sam@rfc1149.net>"]
categories = ["algorithms"]
readme = "README.md"
edition = "2024"
rust-version = "1.86.0"
rust-version = "1.87.0"
include = [
"src/**/*",
"tests/**/*",
Expand Down
2 changes: 1 addition & 1 deletion src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@
//! in this context, you can wrap them into compliant types using the
//! [ordered-float](https://crates.io/crates/ordered-float) crate.
//!
//! The minimum supported Rust version (MSRV) is Rust 1.86.0.
//! The minimum supported Rust version (MSRV) is Rust 1.87.0.
//!
//! [A*]: https://en.wikipedia.org/wiki/A*_search_algorithm
//! [BFS]: https://en.wikipedia.org/wiki/Breadth-first_search
Expand Down
Loading