Skip to content

Commit e757b4d

Browse files
authored
[rust] Upgrade to 1.86.0 and Edition 2024 (#31574)
### Motivation Upgrades us to Rust 1.86 and switches to Edition 2024. Should provide faster compile times on Linux AArch64 as well as unlocks new Rust features like async closures. ### Tips for reviewer **Focus on commits 2 and 4**, the other commits are mostly generated changes from running `bin/bazel gen` or `bin/fmt` ### Checklist - [ ] This PR has adequate test coverage / QA involvement has been duly considered. ([trigger-ci for additional test/nightly runs](https://trigger-ci.dev.materialize.com/)) - [ ] This PR has an associated up-to-date [design doc](https://github.com/MaterializeInc/materialize/blob/main/doc/developer/design/README.md), is a design doc ([template](https://github.com/MaterializeInc/materialize/blob/main/doc/developer/design/00000000_template.md)), or is sufficiently small to not require a design. <!-- Reference the design in the description. --> - [ ] If this PR evolves [an existing `$T ⇔ Proto$T` mapping](https://github.com/MaterializeInc/materialize/blob/main/doc/developer/command-and-response-binary-encoding.md) (possibly in a backwards-incompatible way), then it is tagged with a `T-proto` label. - [ ] If this PR will require changes to cloud orchestration or tests, there is a companion cloud PR to account for those changes that is tagged with the release-blocker label ([example](MaterializeInc/cloud#5021)). <!-- Ask in #team-cloud on Slack if you need help preparing the cloud PR. --> - [ ] If this PR includes major [user-facing behavior changes](https://github.com/MaterializeInc/materialize/blob/main/doc/developer/guide-changes.md#what-changes-require-a-release-note), I have pinged the relevant PM to schedule a changelog post.
1 parent 2981634 commit e757b4d

File tree

694 files changed

+5958
-3942
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

694 files changed

+5958
-3942
lines changed

Cargo.lock

+26-16
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -253,8 +253,8 @@ exclude = [
253253
resolver = "2"
254254

255255
[workspace.package]
256-
edition = "2021"
257-
rust-version = "1.83.0"
256+
edition = "2024"
257+
rust-version = "1.86.0"
258258

259259
[profile.dev]
260260
split-debuginfo = "unpacked"
@@ -380,7 +380,7 @@ useless_asref = "warn"
380380
useless_conversion = "warn"
381381
builtin_type_shadow = "warn"
382382
duplicate_underscore_argument = "warn"
383-
double_neg = "warn"
383+
double_negations = "warn"
384384
unnecessary_mut_passed = "warn"
385385
wildcard_in_or_patterns = "warn"
386386
crosspointer_transmute = "warn"

WORKSPACE

+42-42
Original file line numberDiff line numberDiff line change
@@ -335,9 +335,9 @@ rules_rust_dependencies()
335335
# Fetch and register the relevant Rust toolchains. We use a custom macro that
336336
# depends on `rules_rust` but cuts down on bloat from their defaults.
337337

338-
RUST_VERSION = "1.83.0"
338+
RUST_VERSION = "1.86.0"
339339

340-
RUST_NIGHTLY_VERSION = "nightly/2024-12-02"
340+
RUST_NIGHTLY_VERSION = "nightly/2025-04-02"
341341

342342
load("//misc/bazel/toolchains:rust.bzl", "bindgen_toolchains", "rust_toolchains")
343343

@@ -349,66 +349,66 @@ rust_toolchains(
349349
{
350350
"aarch64-apple-darwin": {
351351
"stable": {
352-
"cargo": "1608c47547350e17a6c8adde254ccce1d728c2a88bf83c28079918f265dcf5e9",
353-
"clippy": "be37e667fb9fc7f1cccbeff65138f538ff74fac87487ad0e98b75a01313ded14",
354-
"llvm-tools": "ed8b7cb072a171fd9254366e30c9b3223eb7d82ae028dbf0c6875cc2d4ddaf96",
355-
"rust-std": "d4f6a6c23c8cb643ba8a7a166bdf86d054eae2ea4e4b3bd7562dc2cb373b9fe2",
356-
"rustc": "94bc661bda0ee93a2760068e539750f80a71017b5d0d6d4fc7be46587ff6febc",
352+
"cargo": "707781ebdbee7ac3622acb32d6757cf9c08dab2c2f49b6f22978f0571e3682e1",
353+
"clippy": "40ab3c3cd20f946f3fc79f121d5fec8c1e1a0f3e2f21308e21c752c2152b2a80",
354+
"llvm-tools": "ac5c07d387302b8bec2a4abb88ca23dfa2d55982558918e451258b388ba9a864",
355+
"rust-std": "04f3b73e5bcbd5dfabed96726c0b5ba22c9e5fec6952932e01e3b89f0798f7d9",
356+
"rustc": "2fd62ce8a9d0c58e92a248820d5a22a0277bdc5efd200ce731cc87e9816ec5e2",
357357
},
358358
"nightly": {
359-
"cargo": "efc0487a586e8b3d2f611374b135d6877833a98e352dea1a2c3500545cf67dc1",
360-
"clippy": "76e8a48b0209027c7d0d887194837a0d731a72c4faf90c420e846c34f5075450",
361-
"llvm-tools": "a0a9549fbd77648b843af8d081c443db08a900327c1d90a81c62ea187aee0e85",
362-
"rust-std": "a101b44e0f97d5484c02d82396570e6b61a8d7ec816452d6e4c3a208e863672b",
363-
"rustc": "7213e573a87b737ea98a0b32ef4ff0e65f56d03937b9897a69a9386d2bf998f9",
359+
"cargo": "0e8376dc79c840063a8cdeeff0f53e255fb91ec4ead2ca5109a5ec9c3f13cf54",
360+
"clippy": "d1c40f30ccba46ce9802c10ff5e02034e8209ad2033f7b2a3a549f5c63ee7aed",
361+
"llvm-tools": "e036730779756e79c73db930e3fbf4e1f11a9a6d30041205ab906ffff15cc203",
362+
"rust-std": "937ee38916b93e1d6309f7ef709da0120aa3ee62c8e39f0241d90187aafa1df3",
363+
"rustc": "6a78b11a4740b7a90926dae1f2c8c43259077599ac50b8dd752814cea6959f96",
364364
},
365365
},
366366
"aarch64-unknown-linux-gnu": {
367367
"stable": {
368-
"cargo": "facfde3caea4919e4fbf48da8fe87cf67ab59bacc2e277f481e3d700f0c09b18",
369-
"clippy": "f83e26c85e880b4473e10f7acc7ecb8097923061bb9592b7e51179e5bf101df2",
370-
"llvm-tools": "66bf1fade70c32b540c38e938219d7ef7bb3cc858c0301942f07c946742dabf8",
371-
"rust-std": "27d90fb3322f5f60d8c1adde3a0c5081de66343323616ba19462db6159041cdf",
372-
"rustc": "875597345b11c42c726a42c9405c8ed37cc6a23c4b09553a79e65960562b342d",
368+
"cargo": "73e3e8a96b044de32fc242129fef9a4d332f4a0fe7265eff4272d3f3d9abde93",
369+
"clippy": "0c938032791951d5fce10d53ec35e12fba3e341b9b2cfd94bf6b6ce9582d2257",
370+
"llvm-tools": "462fdcbe9d2bc048d8cf9bf6d3b7fe168471ed39500d70111c874e6f32fff4b4",
371+
"rust-std": "aa0c2aff7bb69fb970e34d194830a3e9692b1299731b33228dee5f730d42e94e",
372+
"rustc": "113e4123cb4a3903d72dbf44db91938e7f2c37f3e73b04d10359145e9e395eeb",
373373
},
374374
"nightly": {
375-
"cargo": "71bd7220e9412a30bc9e7fd5e159cbfc358a908f073dc1c2afea5fdc698b4788",
376-
"clippy": "91286bc8cacd615421ed3e90a4b7b1b4c736e8ba680a8fc27f35a3fd6af621da",
377-
"llvm-tools": "cfb01325e555ed05217c6d32800a3344dc4353ffd9b9dc32bc0020a497872cf0",
378-
"rust-std": "ea2d8acf5c8cf2e56f87419b80d1a7849061f4869091ecdcf959267aa6a2c4d9",
379-
"rustc": "ff8c5cbf4c152ddce1519c9641269b30316fd29f1f1487e76c7a0e1e97270706",
375+
"cargo": "8f0a8b12effea97fd1930747dbd70857225a5465037844bb39ed9d17e01abfdd",
376+
"clippy": "0a4bce6ad740405802d4c56d7ab9935825cc60bcc5f04bd1cc8896554a29833b",
377+
"llvm-tools": "331d5dd0330447734e05d184ba59b310d075c889b2aa1a3003b7b24db30572e4",
378+
"rust-std": "8f87d8e883cdca26233ead24eca0c62a39d0ff14b9813e8846f91f189ae635c2",
379+
"rustc": "f5e2ad3ec85851fc9b24f331bde0d4985ab99f42c12a995853baed0bae64ef3c",
380380
},
381381
},
382382
"x86_64-apple-darwin": {
383383
"stable": {
384-
"cargo": "8296adfdd7ca78ee8b8ef0ec97d42d4a9fd754af197e0a079d65795e927f1963",
385-
"clippy": "94f9fa4f67dc6933bf5ad47cc1c6673184e0db5fca9f2a57e251f273e22b2071",
386-
"llvm-tools": "b39bc3518ef6a253b80f58facee36fdc5e54199e5e0264249902d1c545242ba4",
387-
"rust-std": "8e43cc2dbd2f8a4fb1120fa8ff685c5929d3c71d68d75836d88ecde3fd9af4f4",
388-
"rustc": "5c51f5ff7955e8c2b013ea9ebfcc89ce9a86d33d3bd229d8fa98b0f4b29759bd",
384+
"cargo": "85560e557f81b329407a8143281fa309e6a9d01a8104de6742081a2771f49df1",
385+
"clippy": "e38499209dd7da03990cdbbf4b7abebc084e4b0191b7252be238a17f96b87c42",
386+
"llvm-tools": "98e0408a0dc18bd9ba394ef40980775ab54e9b138dddd5d2141d2f0634676010",
387+
"rust-std": "e4c344cbb7d6e7088941a153fd48d57cc22041905b38552e7c7dd97f5bf68259",
388+
"rustc": "ff50df0bc0d1ab517746b2bf742afd13cb543cdeebb1b847f7c069cb6b3feb19",
389389
},
390390
"nightly": {
391-
"cargo": "42034eef7f0cc76ebb5605363a660c6c5bb4e403c3cbe5169f76601d54d894b1",
392-
"clippy": "4bd33568e73f9972890fbdfd5ccf2756a7f51992f7434cc29097b3ef8cbcb10d",
393-
"llvm-tools": "83fbbe591566f7ccf28ec599b5cfbed9285ce14cee41d94ac263dc72e5d5a94c",
394-
"rust-std": "9c93397a365cbdf940575967a084910adf78441eb045408ecc6e16ffe213e7c3",
395-
"rustc": "8676f69a3303d19d226667a0b7b60bc28dd03f3d1b975c6fcce716606c2243d3",
391+
"cargo": "d7c58810f851cb34110d5434a4f66f8bf444e896eb951e9cb744a7bef815c9a1",
392+
"clippy": "e8e38063a4b66393c5c3b4da95651bcb2e0ba8bbb25ac944f72713de2daabf1f",
393+
"llvm-tools": "93c5e0e64363b3e8a222df2703096731431abf1b08023a0737354e567c90988c",
394+
"rust-std": "67c0251a6d798a0990f7700f672a4c86b09ffad24d215860f84cfa32c4c81a5c",
395+
"rustc": "3c1228f40db684108cb5ff2e0b12adf5f1b5a1c3fa930bcbc6465eeacd55f3a9",
396396
},
397397
},
398398
"x86_64-unknown-linux-gnu": {
399399
"stable": {
400-
"cargo": "49a1426f692cd26dfe8e41e5cff2954d686133d5d777893d0c2fe78cc8e39237",
401-
"clippy": "c9523adb965ef47ca924c6f5f10496075ae7e3678622668eef3e612303737b6b",
402-
"llvm-tools": "49fee083c3d09f3b75b57c8072682932aabdedb0880a8b8935262fe7ba83c5a7",
403-
"rust-std": "9ee7421198c668a6f61c1202c262243c0a9d2ceff894ec6ac5ab78af27c73e48",
404-
"rustc": "055407ec7be6d3e95b10d4426f0c14cfacadc5d4fa9834a02f96797061cd0818",
400+
"cargo": "9dccd8fb635701a173fa74335d91837a264c0a1d7009d5f047851de217ddeeab",
401+
"clippy": "9a34aefbbdf8b5bc6dbaad8555cf12577d9ef60b167211515feadbd16afdcb28",
402+
"llvm-tools": "fbcc69f9c140a5fe0621c280628372233644818eb1826baadb303acdbc6e6395",
403+
"rust-std": "348e96d4d5261895d6014c428b54b40fd4c210f453b889b4180e19916c6b594e",
404+
"rustc": "c2c7f2b80ddd43834e53c25840ba68491671ac52af25f076059011677d922083",
405405
},
406406
"nightly": {
407-
"cargo": "9eddd8e51f87de1239db8f35c3e4a574c231fa883ed055b5ac64471c2f272501",
408-
"clippy": "0adb5c12df13550daf954af7414cd7af9c849878c7894a02e61b9720d32f9143",
409-
"llvm-tools": "e5a79a9b1c0816e613abe6c5764946688668412985edc2b1728308db2a69ba4f",
410-
"rust-std": "665d761c020c0f9320a3e0aedad27ad466c54e802c59ac773a40f7899cc994e5",
411-
"rustc": "8685599744c5b6b7a2cbad4fa5c5dec8fcc4a42e04fc864a7b9bb8371ffbfdbe",
407+
"cargo": "74dc885d2f1374ca9999c094ab411b3d0abc9616ad2ea39c5dab429f0321e15d",
408+
"clippy": "ecafbe40e08b2c4557494544d1402364e3cfc6e729435fe41188e0ea147dc093",
409+
"llvm-tools": "4fb508d652140eb8d607f8d65f99f0dacc93b444645f634b02d9d18cae425cf1",
410+
"rust-std": "dfc87df7be3ed8ee35500272e0b87c472b1331578bf5c24f73f5344aa426c294",
411+
"rustc": "7207b8a852d82c3c396bf4374db808b5fa1bfec268cf02183db2a564f14d41af",
412412
},
413413
},
414414
},

bin/ci-builder

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
set -euo pipefail
1818

19-
NIGHTLY_RUST_DATE=2024-12-02
19+
NIGHTLY_RUST_DATE=2025-04-02
2020

2121
cd "$(dirname "$0")/.."
2222

bin/lint-versions

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@
1111
#
1212
# lint-versions - Check rust version
1313

14-
grep "rust-version = " Cargo.toml | grep -q "1\.83\.0" || \
14+
grep "rust-version = " Cargo.toml | grep -q "1\.86\.0" || \
1515
(echo "Please validate new Rust versions for compilation time performance regressions or ask Team Testing to do so. Afterwards change the tested version in bin/lint-versions" && exit 1)

clippy.toml

+2-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,8 @@ disallowed-methods = [
8787
disallowed-macros = [
8888
{ path = "proptest::prop_oneof", reason = "use `proptest::strategy::Union::new` instead" },
8989
{ path = "log::log", reason = "use the macros provided by `tracing` instead (database-issues#3001)" },
90-
{ path = "tracing::instrument", reason = "use `mz_ore::instrument` instead" },
90+
# TODO: Re-enable once <https://github.com/rust-lang/rust-clippy/issues/13521> is fixed.
91+
# { path = "tracing::instrument", reason = "use `mz_ore::instrument` instead" },
9192
]
9293

9394
disallowed-types = [

deny.toml

+1
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ skip = [
8181

8282
# A few crates -> `num_enum_derive` -> `proc-macro-crate` -> `toml_edit v0.19.14`.
8383
{ name = "toml_edit", version = "0.19.14" },
84+
{ name = "winnow", version = "0.5.4" },
8485

8586
# tabled_derive and enum-as-inner
8687
{ name = "heck", version = "0.4.0" },

misc/bazel/cargo-gazelle/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ workspace = true
1515
[dependencies]
1616
anyhow = "1.0.95"
1717
camino = "1"
18-
cargo_toml = "0.19.1"
18+
cargo_toml = "0.22.1"
1919
clap = { version = "4.5.23", features = ["derive", "env"] }
2020
convert_case = "0.7"
2121
guppy = "0.17.10"

misc/bazel/cargo-gazelle/examples/gen.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010
use anyhow::Context;
1111
use cargo_toml::Manifest;
1212

13+
use cargo_gazelle::BazelBuildFile;
1314
use cargo_gazelle::config::{CrateConfig, GlobalConfig};
1415
use cargo_gazelle::context::CrateContext;
1516
use cargo_gazelle::header::BazelHeader;
1617
use cargo_gazelle::targets::{CargoBuildScript, RustLibrary, RustTarget};
17-
use cargo_gazelle::BazelBuildFile;
1818

1919
pub fn main() -> Result<(), anyhow::Error> {
2020
let path = "../../../src/proto/Cargo.toml";

misc/bazel/cargo-gazelle/src/bin/main.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ use std::path::Path;
1313
use std::sync::Arc;
1414

1515
use anyhow::Context;
16+
use cargo_gazelle::BazelBuildFile;
1617
use cargo_gazelle::args::Args;
1718
use cargo_gazelle::config::{CrateConfig, GlobalConfig};
1819
use cargo_gazelle::context::CrateContext;
1920
use cargo_gazelle::header::BazelHeader;
2021
use cargo_gazelle::targets::{
2122
CargoBuildScript, ExtractCargoLints, RustBinary, RustLibrary, RustTarget, RustTest,
2223
};
23-
use cargo_gazelle::BazelBuildFile;
2424
use cargo_toml::Manifest;
2525
use clap::Parser;
2626
use guppy::graph::{BuildTargetId, PackageMetadata};

misc/bazel/cargo-gazelle/src/context.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use std::fs::File;
1414
use std::io::Read;
1515
use std::path::Path;
1616

17-
use anyhow::{anyhow, Context};
17+
use anyhow::{Context, anyhow};
1818
use camino::Utf8PathBuf;
1919
use guppy::graph::{BuildTargetId, PackageMetadata};
2020
use quote::ToTokens;

misc/bazel/cargo-gazelle/src/targets.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010
//! Definitions for the "rules_rust" Bazel targets.
1111
1212
use convert_case::{Case, Casing};
13+
use guppy::DependencyKind;
1314
use guppy::graph::feature::{FeatureLabel, FeatureSet, StandardFeatures};
1415
use guppy::graph::{
1516
BuildTarget, BuildTargetId, BuildTargetKind, DependencyDirection, PackageMetadata,
1617
};
1718
use guppy::platform::EnabledTernary;
18-
use guppy::DependencyKind;
1919

2020
use std::collections::{BTreeMap, BTreeSet};
2121
use std::fmt::{self, Write};

0 commit comments

Comments
 (0)