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",