From c34a0477f7ceb4bf85fa029bed3a19aaae1f18d8 Mon Sep 17 00:00:00 2001 From: Arun Sharma Date: Mon, 23 Mar 2026 10:10:13 -0700 Subject: [PATCH 1/5] lbug: update to 0.15.2 --- server/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/Cargo.toml b/server/Cargo.toml index 749943a..1c25b4a 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -20,7 +20,7 @@ env_logger = "0.10" bolt4rs = { path = "../lib", features = ["unstable-bolt-protocol-impl-v2", "unstable-serde-packstream-format"] } anyhow = "1.0" clap = { version = "4.4", features = ["derive"] } -lbug = { version = "^0.12.0", features = ["arrow"] } +lbug = { version = "^0.15.2", features = ["arrow"] } arrow-array = { version = "55.0.0", default-features = false } arrow = { version = "55.0.0", default-features = false } arrow-schema = { version = "55.0.0", default-features = false } From 49d9f57ceec4f4129f6dbeec647104c213c55a64 Mon Sep 17 00:00:00 2001 From: Arun Sharma Date: Mon, 23 Mar 2026 10:13:43 -0700 Subject: [PATCH 2/5] cargo: update rust-version to 1.81 --- lib/Cargo.toml | 2 +- macros/Cargo.toml | 2 +- server/Cargo.toml | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/Cargo.toml b/lib/Cargo.toml index cfde23c..cd6efdb 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -13,7 +13,7 @@ documentation = "https://docs.rs/bolt4rs" readme = "../README.md" keywords = ["bolt", "driver", "bolt", "cypher", "tokio"] categories = ["database", "network-programming", "asynchronous"] -rust-version = "1.75.0" +rust-version = "1.81" [features] default = ["unstable-bolt-protocol-impl-v2"] diff --git a/macros/Cargo.toml b/macros/Cargo.toml index b53b30c..b6d1faa 100644 --- a/macros/Cargo.toml +++ b/macros/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" description = "Macros used by bolt4rs" license = "MIT" repository = "https://github.com/neo4j-labs/bolt4rs" -rust-version = "1.63" +rust-version = "1.81" [lib] proc-macro = true diff --git a/server/Cargo.toml b/server/Cargo.toml index 1c25b4a..c987794 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -1,6 +1,7 @@ [package] name = "bolt4rs-server" version = "0.1.0" +rust-version = "1.81" edition = "2021" [features] From 0d01d4eba15a67dd1778aeae9b7af3cc031261d7 Mon Sep 17 00:00:00 2001 From: Arun Sharma Date: Mon, 23 Mar 2026 10:46:38 -0700 Subject: [PATCH 3/5] msrv: update to 1.81.0 --- .github/workflows/checks.yml | 2 +- .github/workflows/create-release-pr.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index cad7875..3354700 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -23,7 +23,7 @@ on: env: RUST_LOG: debug CARGO_TERM_COLOR: always - MSRV: 1.75.0 + MSRV: 1.81.0 HACK: hack --package bolt4rs --each-feature --exclude-features unstable-serde-packstream-format,unstable-bolt-protocol-impl-v2,unstable-result-summary jobs: diff --git a/.github/workflows/create-release-pr.yml b/.github/workflows/create-release-pr.yml index 734ca8a..ddc9223 100644 --- a/.github/workflows/create-release-pr.yml +++ b/.github/workflows/create-release-pr.yml @@ -20,7 +20,7 @@ on: env: RUSTUP_TOOLCHAIN: stable - MSRV: 1.75.0 + MSRV: 1.81.0 jobs: make-release-pr: From 70e9cf953d26398e16aba691a978ec13919fc67d Mon Sep 17 00:00:00 2001 From: Arun Sharma Date: Mon, 23 Mar 2026 11:27:29 -0700 Subject: [PATCH 4/5] msrv: back port essential changes from upstream --- README.md | 2 +- lib/src/bolt/structs/point.rs | 2 +- lib/src/connection.rs | 2 +- lib/src/messages/bye.rs | 1 + lib/src/types/serde/builder.rs | 9 ++------- xtask/src/main.rs | 25 +++++++++++-------------- 6 files changed, 17 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index ae88bb1..a762856 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ Cleaning up... ## MSRV -The crate has a minimum supported Rust version (MSRV) of `1.75.0` as of 0.9.x. +The crate has a minimum supported Rust version (MSRV) of `1.81.0` as of 0.9.x. The version [0.8.x](https://crates.io/crates/bolt4rs/0.8.0) has an MSRV of `1.63.0` A change in the MSRV in *not* considered a breaking change. diff --git a/lib/src/bolt/structs/point.rs b/lib/src/bolt/structs/point.rs index 23a696a..2439eb4 100644 --- a/lib/src/bolt/structs/point.rs +++ b/lib/src/bolt/structs/point.rs @@ -349,7 +349,7 @@ impl<'de> Deserialize<'de> for Point { type Value = Point; fn expecting(&self, formatter: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { - formatter.write_str(concat!("a valid Point2D or Point3D struct")) + formatter.write_str("a valid Point2D or Point3D struct") } fn visit_enum(self, data: A) -> Result diff --git a/lib/src/connection.rs b/lib/src/connection.rs index a65c9c4..b179ac8 100644 --- a/lib/src/connection.rs +++ b/lib/src/connection.rs @@ -429,7 +429,7 @@ impl ConnectionInfo { } #[cfg(feature = "unstable-bolt-protocol-impl-v2")] - pub(crate) fn to_hello(&self, version: Version) -> Hello { + pub(crate) fn to_hello(&self, version: Version) -> Hello<'_> { match self.routing { Routing::No => HelloBuilder::new(&self.user, &self.password).build(version), Routing::Yes(ref routing) => HelloBuilder::new(&self.user, &self.password) diff --git a/lib/src/messages/bye.rs b/lib/src/messages/bye.rs index 814ae7c..5775672 100644 --- a/lib/src/messages/bye.rs +++ b/lib/src/messages/bye.rs @@ -8,6 +8,7 @@ use bolt4rs_macros::BoltStruct; feature = "unstable-bolt-protocol-impl-v2", deprecated(since = "0.9.0", note = "Use `crate::bolt::Bye` instead.") )] +#[allow(unused)] pub struct Bye; #[cfg(test)] diff --git a/lib/src/types/serde/builder.rs b/lib/src/types/serde/builder.rs index 9bb9bd9..65c6b4f 100644 --- a/lib/src/types/serde/builder.rs +++ b/lib/src/types/serde/builder.rs @@ -256,18 +256,13 @@ impl ElementBuilder { } } -#[derive(Debug, Copy, Clone)] +#[derive(Debug, Copy, Clone, Default)] pub enum SetOnce { + #[default] Empty, Set(T), } -impl Default for SetOnce { - fn default() -> Self { - Self::Empty - } -} - #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub struct SetOnceError; diff --git a/xtask/src/main.rs b/xtask/src/main.rs index d01b557..76228ab 100644 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs @@ -52,7 +52,7 @@ fn update_msrv_lock() -> Result { let msrv = { let metadata = cmd!(sh, "{cargo} metadata --no-deps --format-version=1").read()?; - let package = "neo4rs"; + let package = "bolt4rs"; cmd!( sh, @@ -65,17 +65,16 @@ fn update_msrv_lock() -> Result { cmd!(sh, "rm {lockfile}").run_if(dry_run)?; let pin_versions: &[(String, &str)] = &[ - ("home".to_owned(), "0.5.9"), - ("litemap".to_owned(), "0.7.4"), - ("testcontainers".to_owned(), "0.23.1"), - ("testcontainers-modules".to_owned(), "0.11.4"), - ("zerofrom".to_owned(), "0.1.5"), + ("backon".to_owned(), "1.5.2"), + ("idna_adapter".to_owned(), "1.2.0"), + ("litemap".to_owned(), "0.7.5"), + ("home".to_owned(), "0.5.11"), ]; for (krate, version) in pin_versions { pin_version(dry_run, &sh, &cargo, krate, version)?; } - cmd!(sh, "cargo +{msrv} test --no-run --all-features").run_if(dry_run)?; + cmd!(sh, "{cargo} +{msrv} test --no-run --all-features").run_if(dry_run)?; cmd!(sh, "cp {lockfile} {ci_dir}/Cargo.lock.msrv").run_if(dry_run)?; @@ -96,12 +95,10 @@ fn update_min_lock() -> Result { cmd!(sh, "rm {lockfile}").run_if(dry_run)?; let pin_versions: &[(String, &str)] = &[ - ("home".to_owned(), "0.5.9"), - ("litemap".to_owned(), "0.7.4"), - ("serde_repr".to_owned(), "0.1.5"), - ("testcontainers".to_owned(), "0.23.1"), - ("testcontainers-modules".to_owned(), "0.11.4"), - ("zerofrom".to_owned(), "0.1.5"), + ("backon".to_owned(), "1.5.2"), + ("idna_adapter".to_owned(), "1.2.0"), + ("litemap".to_owned(), "0.7.5"), + ("home".to_owned(), "0.5.11"), ]; for (krate, version) in pin_versions { pin_version(dry_run, &sh, &cargo, krate, version)?; @@ -109,7 +106,7 @@ fn update_min_lock() -> Result { cmd!( sh, - "cargo +nightly -Z minimal-versions test --no-run --all-features" + "{cargo} +nightly -Z minimal-versions test --no-run --all-features" ) .env("RUST_LOG", "debug") .run_if(dry_run)?; From 8d65706ba2b33fe99247ec0bc75cc9177544995d Mon Sep 17 00:00:00 2001 From: Arun Sharma Date: Mon, 23 Mar 2026 11:30:10 -0700 Subject: [PATCH 5/5] ci: cap the version of clap to be compatible with MSRV --- server/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/Cargo.toml b/server/Cargo.toml index c987794..6dcd1c7 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -20,7 +20,7 @@ log = "0.4" env_logger = "0.10" bolt4rs = { path = "../lib", features = ["unstable-bolt-protocol-impl-v2", "unstable-serde-packstream-format"] } anyhow = "1.0" -clap = { version = "4.4", features = ["derive"] } +clap = { version = ">=4.4, <=4.5.56", features = ["derive"] } lbug = { version = "^0.15.2", features = ["arrow"] } arrow-array = { version = "55.0.0", default-features = false } arrow = { version = "55.0.0", default-features = false }