From d5ef2fd37690bcc9acfc8597c8b72271d33f2fc3 Mon Sep 17 00:00:00 2001 From: Munendra S N Date: Fri, 24 Apr 2026 15:58:46 +0530 Subject: [PATCH 1/2] chore: pin Rust toolchain to 1.95.0 via rust-toolchain.toml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add rust-toolchain.toml at the workspace root to pin the exact Rust version and required components (clippy, rustfmt). This gives local dev and CI a single source of truth — rustup reads the file automatically, so developers no longer need to manually select a version. CI switches from the dtolnay/rust-toolchain action to `rustup show`, which installs the pinned toolchain and components on the fly from the checked-in file. DEVELOPER.md updated to reference the toolchain file instead of a hardcoded minimum version. --- .github/workflows/ci.yml | 6 ++---- DEVELOPER.md | 4 +++- rust-toolchain.toml | 3 +++ 3 files changed, 8 insertions(+), 5 deletions(-) create mode 100644 rust-toolchain.toml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f156ee3..bdce071 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,9 +18,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@stable - with: - components: clippy, rustfmt + run: rustup show - name: Install protoc # Issue #28: prost-build needs protoc to compile our internal @@ -60,7 +58,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@stable + run: rustup show - name: Install protoc # Issue #28: prost-build needs protoc; ubuntu-latest does not diff --git a/DEVELOPER.md b/DEVELOPER.md index 29b2322..bf254af 100644 --- a/DEVELOPER.md +++ b/DEVELOPER.md @@ -2,10 +2,12 @@ ## Prerequisites -- **Rust stable** (1.80+): install via [rustup](https://rustup.rs/) +- **Rust**: install via [rustup](https://rustup.rs/) ``` curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ``` + The exact toolchain version is pinned in `rust-toolchain.toml` at the workspace root. + `rustup` reads this file automatically — no manual version selection needed. - **Git** ## Python bindings (`merutable-python`) diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..38ab2c6 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,3 @@ +[toolchain] +channel = "1.95.0" +components = ["clippy", "rustfmt"] From bec2030ea494a444098841dbf48e88a0f593c3a9 Mon Sep 17 00:00:00 2001 From: Sreeram Garlapati Date: Sat, 25 Apr 2026 08:35:08 -0700 Subject: [PATCH 2/2] Use stable channel + set MSRV to 1.88.0 - Change rust-toolchain.toml channel from pinned 1.95.0 to stable - Add rust-version = "1.88.0" to Cargo.toml (floor set by time 0.3.47, darling 0.23.0, serde_with 3.18.0) - rust-toolchain.toml governs local dev + CI components; rust-version in Cargo.toml protects downstream consumers --- crates/merutable/Cargo.toml | 1 + rust-toolchain.toml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/merutable/Cargo.toml b/crates/merutable/Cargo.toml index a9632ea..d59a1b1 100644 --- a/crates/merutable/Cargo.toml +++ b/crates/merutable/Cargo.toml @@ -4,6 +4,7 @@ version = "0.0.1" edition = "2021" description = "Embeddable single-table engine: row + columnar Parquet with Iceberg-compatible metadata" keywords = ["embedded", "lsm", "iceberg", "parquet", "table"] +rust-version = "1.88.0" license = "Apache-2.0" repository = "https://github.com/merutable/merutable" homepage = "https://github.com/merutable/merutable" diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 38ab2c6..d0ead5e 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "1.95.0" +channel = "stable" components = ["clippy", "rustfmt"]