From 60d490393a471e589ed934a8a4452a488ba74a19 Mon Sep 17 00:00:00 2001 From: Rohit Goswami Date: Thu, 5 Nov 2026 22:15:24 +0000 Subject: [PATCH] chore(msrv): raise minimum to 1.90 ordered-float 5.5.1 in the lockfile requires rustc 1.90, and uuid 1.29.0 requires 1.89. The 1.88 minimum job cannot build the locked tree. Cargo.toml, the msrv job, and the install notes now say 1.90. --- .github/workflows/ci_test.yml | 8 ++++---- AGENTS.md | 2 +- CHANGELOG.md | 8 ++++++++ CONTRIBUTING.md | 2 +- Cargo.toml | 6 +++--- README.md | 2 +- docs/orgmode/contributing.org | 2 +- docs/orgmode/index.org | 2 +- docs/orgmode/reference/mcp.org | 2 +- llms-full.txt | 6 +++--- llms.txt | 2 +- scripts/gen-llms-txt.py | 2 +- tests/public_metadata.rs | 4 ++-- 13 files changed, 28 insertions(+), 20 deletions(-) diff --git a/.github/workflows/ci_test.yml b/.github/workflows/ci_test.yml index ecaffb3b..a23b8880 100644 --- a/.github/workflows/ci_test.yml +++ b/.github/workflows/ci_test.yml @@ -43,16 +43,16 @@ jobs: run: cargo test --locked --test ledger --test ledger_posix_lock --test ledger_lock_aliases --test ledger_retry --test ledger_durability msrv: - name: Rust 1.88 minimum + name: Rust 1.90 minimum runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - uses: dtolnay/rust-toolchain@master with: - toolchain: 1.88.0 + toolchain: 1.90.0 - uses: Swatinem/rust-cache@v2 - # `time` 0.3.55 (cyclonedx-bom) declares rust-version 1.88.0. Cargo - # 1.83 cannot parse the edition2024 manifests those crates ship. + # `ordered-float` 5.5.1 declares rust-version 1.90. `uuid` 1.29.0 + # declares 1.89.0. Cargo 1.89 rejects the lockfile on ordered-float. - name: Locked all-targets build run: cargo build --locked --all-targets diff --git a/AGENTS.md b/AGENTS.md index 4122cab2..ac5ddb85 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -96,7 +96,7 @@ only when `EB_STACK_ALLOW_BUILD=1`. ## Build, test, lint, and docs -Rust 1.88 is the minimum. CI uses current stable. Run builds and tests on +Rust 1.90 is the minimum. CI uses current stable. Run builds and tests on the repository's configured build machine when local compilation is prohibited. ```sh diff --git a/CHANGELOG.md b/CHANGELOG.md index dc8dc256..9390d082 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ All notable changes to this project are documented here. +## Unreleased + +### Changed + +- Rust 1.90 is the minimum. `ordered-float` 5.5.1 sets `rust-version` + 1.90. `uuid` 1.29.0 sets 1.89.0. The CI minimum job builds every + target with that compiler. + ## 0.4.0 - 2026-11-05 ### Changed diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d40319b2..2a3f6663 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,7 +7,7 @@ win. ## Development environment -Rust 1.88 is the minimum supported toolchain; current stable is used for the +Rust 1.90 is the minimum supported toolchain; current stable is used for the main test and lint gates. [pixi](https://pixi.sh) provides docs and optional dev tasks: diff --git a/Cargo.toml b/Cargo.toml index 13357b66..5c510991 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,9 +2,9 @@ name = "eb_stack" version = "0.4.0" edition = "2021" -# Floor is 1.88.0: `time` 0.3.55, pulled in by cyclonedx-bom, sets -# rust-version 1.88.0. Edition 2024 dependencies need Cargo 1.85, below that. -rust-version = "1.88" +# Floor is 1.90: `ordered-float` 5.5.1 sets rust-version 1.90. +# `uuid` 1.29.0 sets 1.89.0. Edition 2024 dependencies need Cargo 1.85. +rust-version = "1.90" description = "Turn conda-forge, Spack, and EasyBuild recipes into Resolvo-solved variants, CycloneDX SBOMs, and build-evaluated package bundles" license = "MIT" authors = ["Rohit Goswami "] diff --git a/README.md b/README.md index acfbb1cf..c345d466 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ Report these claims independently: ## Install The crate is `eb_stack` on crates.io; the installed binary is `eb-stack`. -Rust 1.88 or newer is required when building from source. `rustc` 1.83 +Rust 1.90 or newer is required when building from source. `rustc` 1.83 stops while reading the crate index: the Cargo feature `edition2024` is not stabilized. `rustup toolchain install stable` and `rustup default stable` provide a new enough compiler. diff --git a/docs/orgmode/contributing.org b/docs/orgmode/contributing.org index 74272d48..58e484a5 100644 --- a/docs/orgmode/contributing.org +++ b/docs/orgmode/contributing.org @@ -7,7 +7,7 @@ repo root; keep them aligned when you change either. * Development environment -Rust 1.88 is the minimum supported toolchain; current stable runs the main test +Rust 1.90 is the minimum supported toolchain; current stable runs the main test and lint gates. Documentation uses [[https://pixi.sh][pixi]]: #+begin_src bash diff --git a/docs/orgmode/index.org b/docs/orgmode/index.org index e8db1035..23d79103 100644 --- a/docs/orgmode/index.org +++ b/docs/orgmode/index.org @@ -264,7 +264,7 @@ Build from main for ``stack gap``, ``stack oom``, ``stack from-commit``, ``rebui * Install - Rust 1.88 or newer. ~rustc~ 1.83 stops while reading the crate index: + Rust 1.90 or newer. ~rustc~ 1.83 stops while reading the crate index: the Cargo feature ~edition2024~ is not stabilized. With rustup: #+begin_src bash diff --git a/docs/orgmode/reference/mcp.org b/docs/orgmode/reference/mcp.org index 64798ad3..b4bf848f 100644 --- a/docs/orgmode/reference/mcp.org +++ b/docs/orgmode/reference/mcp.org @@ -20,7 +20,7 @@ and the client then runs that binary by name. * Build the binary -Rust 1.88 or newer builds this tree. The binary that the snippets below +Rust 1.90 or newer builds this tree. The binary that the snippets below call is ~eb-stack~. #+begin_src bash diff --git a/llms-full.txt b/llms-full.txt index 4d77e146..5ddcabe6 100644 --- a/llms-full.txt +++ b/llms-full.txt @@ -32,7 +32,7 @@ This file is the manual in one document. The short index is llms.txt. # Install - Rust 1.88 or newer. `rustc` 1.83 stops while reading the crate index: + Rust 1.90 or newer. `rustc` 1.83 stops while reading the crate index: the Cargo feature `edition2024` is not stabilized. With rustup: ```bash @@ -8376,7 +8376,7 @@ and the client then runs that binary by name. # Build the binary -Rust 1.88 or newer builds this tree. The binary that the snippets below +Rust 1.90 or newer builds this tree. The binary that the snippets below call is `eb-stack`. ```bash @@ -12515,7 +12515,7 @@ repo root; keep them aligned when you change either. # Development environment -Rust 1.88 is the minimum supported toolchain; current stable runs the main test +Rust 1.90 is the minimum supported toolchain; current stable runs the main test and lint gates. Documentation uses [pixi](https://pixi.sh): ```bash diff --git a/llms.txt b/llms.txt index 5e8c27b6..7a63547b 100644 --- a/llms.txt +++ b/llms.txt @@ -2,7 +2,7 @@ > eb-stack parses conda-forge, Spack, PyPI, CRAN, Cargo, LuaRocks, Raku, and EasyBuild recipes into one package plan, a planned CycloneDX SBOM, Resolvo locks, and conventional EasyBuild recipes. -The binary is `eb-stack`. The crate is `eb_stack`. Rust 1.88 or newer builds it from source. Each link below is the markdown form of a page on https://eb-stack.rgoswami.me/. `llms-full.txt` repeats those pages in one file. Contribution guidelines are in CONTRIBUTING.md. The Model Context Protocol server is `eb-stack mcp`. +The binary is `eb-stack`. The crate is `eb_stack`. Rust 1.90 or newer builds it from source. Each link below is the markdown form of a page on https://eb-stack.rgoswami.me/. `llms-full.txt` repeats those pages in one file. Contribution guidelines are in CONTRIBUTING.md. The Model Context Protocol server is `eb-stack mcp`. ## Getting started diff --git a/scripts/gen-llms-txt.py b/scripts/gen-llms-txt.py index 0ed3147d..9e220f1d 100644 --- a/scripts/gen-llms-txt.py +++ b/scripts/gen-llms-txt.py @@ -370,7 +370,7 @@ def render_index(pages: list[dict[str, str]]) -> str: + "Raku, and EasyBuild recipes into one package plan, a planned " + "CycloneDX SBOM, Resolvo locks, and conventional EasyBuild recipes.", "", - "The binary is `eb-stack`. The crate is `eb_stack`. Rust 1.88 or " + "The binary is `eb-stack`. The crate is `eb_stack`. Rust 1.90 or " "newer builds it from source. Each link below is the markdown form " "of a page on https://eb-stack.rgoswami.me/. `llms-full.txt` repeats " "those pages in one file. Contribution guidelines are in CONTRIBUTING.md. " diff --git a/tests/public_metadata.rs b/tests/public_metadata.rs index 1b6b150c..3e9b0cb4 100644 --- a/tests/public_metadata.rs +++ b/tests/public_metadata.rs @@ -161,12 +161,12 @@ fn local_agent_state_stays_out_of_public_commits() { #[test] fn ci_enforces_the_declared_msrv_and_quality_gates() { let cargo = std::fs::read_to_string(repo().join("Cargo.toml")).expect("read Cargo.toml"); - assert!(cargo.contains("rust-version = \"1.88\"")); + assert!(cargo.contains("rust-version = \"1.90\"")); let ci = std::fs::read_to_string(repo().join(".github/workflows/ci_test.yml")) .expect("read test workflow"); for command in [ - "toolchain: 1.88.0", + "toolchain: 1.90.0", "cargo build --locked --all-targets", "cargo fmt --all --check", "cargo clippy --locked --all-targets -- -D warnings",