What changed, and why it matters
This commit is a routine version bump for a small Rust library called bitcoin-io, from version 0.3.0 to 0.4.0-rc.0. It updates lockfiles, a changelog, and dependency references in other crates so they all use the new version. There is no code change and no security issue visible in the commit.
No security action needed. Treat as normal release engineering.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit only changes version metadata: Cargo.lock files, io/Cargo.toml, io/CHANGELOG.md, and dependency declarations in bitcoin/Cargo.toml and p2p/Cargo.toml. The bitcoin crate and p2p crate now pin bitcoin-io with ‘=0.4.0-rc.0’ because the consensus_encoding RC dependency is pinned with ‘=’ syntax, requiring a matching io release. No source code, API, or behavior is modified.
Changed components
bitcoin-io crate version metadatabitcoin/Cargo.toml dependency versionp2p/Cargo.toml dependency versionCargo-minimal.lockCargo-recent.lockio/CHANGELOG.mdInspect captured patch +9 / −5
diff --git a/Cargo-minimal.lock b/Cargo-minimal.lock
index 286f11bf..ff59b1bc 100644
--- a/Cargo-minimal.lock
+++ b/Cargo-minimal.lock
@@ -115,7 +115,7 @@ dependencies = [
[[package]]
name = "bitcoin-io"
-version = "0.3.0"
+version = "0.4.0-rc.0"
dependencies = [
"bitcoin-consensus-encoding",
"bitcoin-internals",
diff --git a/Cargo-recent.lock b/Cargo-recent.lock
index 878cb740..a0de3894 100644
--- a/Cargo-recent.lock
+++ b/Cargo-recent.lock
@@ -114,7 +114,7 @@ dependencies = [
[[package]]
name = "bitcoin-io"
-version = "0.3.0"
+version = "0.4.0-rc.0"
dependencies = [
"bitcoin-consensus-encoding",
"bitcoin-internals",
diff --git a/bitcoin/Cargo.toml b/bitcoin/Cargo.toml
index ce1616ae..c77be19b 100644
--- a/bitcoin/Cargo.toml
+++ b/bitcoin/Cargo.toml
@@ -31,7 +31,7 @@ hashes = { package = "bitcoin_hashes", path = "../hashes", version = "0.19.0", d
encoding = { package = "bitcoin-consensus-encoding", path = "../consensus_encoding", version = "=1.0.0-rc.3", default-features = false, features = ["alloc"] }
hex = { package = "hex-conservative", version = "0.3.0", default-features = false, features = ["alloc"] }
internals = { package = "bitcoin-internals", path = "../internals", version = "0.5.0", features = ["alloc", "hex"] }
-io = { package = "bitcoin-io", path = "../io", version = "0.3.0", default-features = false, features = ["alloc", "hashes"] }
+io = { package = "bitcoin-io", path = "../io", version = "=0.4.0-rc.0", default-features = false, features = ["alloc", "hashes"] }
primitives = { package = "bitcoin-primitives", path = "../primitives", version = "=1.0.0-rc.2", default-features = false, features = ["alloc", "hex"] }
secp256k1 = { version = "0.32.0-beta.2", default-features = false, features = ["alloc"] }
units = { package = "bitcoin-units", path = "../units", version = "=1.0.0-rc.4", default-features = false, features = ["alloc"] }
diff --git a/io/CHANGELOG.md b/io/CHANGELOG.md
index 1cb9e4b4..a4ca4b1a 100644
--- a/io/CHANGELOG.md
+++ b/io/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 0.4.0 - 2025-12-29
+
+* Upgrade dependencies: `bitcoin-internals`, `bitcoin-consensus-encoding`, and `bitcoin_hashes`.
+
# 0.3.0 - 2025-12-01
* Bump MSRV to Rust `1.74` [#4926](https://github.com/rust-bitcoin/rust-bitcoin/pull/)
diff --git a/io/Cargo.toml b/io/Cargo.toml
index c777094d..a686cc16 100644
--- a/io/Cargo.toml
+++ b/io/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "bitcoin-io"
-version = "0.3.0"
+version = "0.4.0-rc.0"
authors = ["Matt Corallo <birchneutea@mattcorallo.com>"]
license = "CC0-1.0"
repository = "https://github.com/rust-bitcoin/rust-bitcoin"
diff --git a/p2p/Cargo.toml b/p2p/Cargo.toml
index 3fc9c801..0335fecb 100644
--- a/p2p/Cargo.toml
+++ b/p2p/Cargo.toml
@@ -24,7 +24,7 @@ hashes = { package = "bitcoin_hashes", version = "0.19.0", path = "../hashes", d
primitives = { package = "bitcoin-primitives", path = "../primitives", version = "=1.0.0-rc.2", default-features = false }
hex = { package = "hex-conservative", version = "0.3.0", default-features = false }
internals = { package = "bitcoin-internals", path = "../internals", default-features = false }
-io = { package = "bitcoin-io", path = "../io", default-features = false }
+io = { package = "bitcoin-io", version = "=0.4.0-rc.0", path = "../io", default-features = false }
units = { package = "bitcoin-units", path = "../units", version = "=1.0.0-rc.4", default-features = false }
arbitrary = { version = "1.4.1", optional = true }
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.