Skip to content

Commit eac9266

Browse files
committed
Merge rust-bitcoin#4904: Release tracking PR: bitcoin-primitives 1.0.0-rc.0
8cf8b6b primitives: Bump the version to 1.0.0-rc.0 (Tobin C. Harding) Pull request description: In preparation for releasing the first release candidate bump the version number, add an extensive changelog entry, and update the lockfiles. ACKs for top commit: apoelstra: ACK 8cf8b6b; successfully ran local tests Tree-SHA512: 7936444b6e17bcee10f1b8d4e57c7e0dbb4dbc9052f88cfdbb17e82b7e31e703a7cf9a96e93f4b7c110b75bf1b22bacc36eba74f6e1ce5b730378d2be41f4a07
2 parents 24a8d0c + 8cf8b6b commit eac9266

File tree

4 files changed

+71
-6
lines changed

4 files changed

+71
-6
lines changed

Cargo-minimal.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ dependencies = [
132132

133133
[[package]]
134134
name = "bitcoin-primitives"
135-
version = "0.101.0"
135+
version = "1.0.0-rc.0"
136136
dependencies = [
137137
"arbitrary",
138138
"arrayvec",

Cargo-recent.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ dependencies = [
131131

132132
[[package]]
133133
name = "bitcoin-primitives"
134-
version = "0.101.0"
134+
version = "1.0.0-rc.0"
135135
dependencies = [
136136
"arbitrary",
137137
"arrayvec",

primitives/CHANGELOG.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,70 @@
1+
# 1.0.0 - 2025-10-18
2+
3+
This changelog is a rolling description of everything that will eventually end up in `v1.0`.
4+
5+
There are a bunch of changes in this stable release, of note script
6+
tagging and the consensus encoding re-write.
7+
8+
- Introduce script tagging [#4907](https://github.com/rust-bitcoin/rust-bitcoin/pull/4907)
9+
- Introduce pull encoding and use it for blockhash computation [#4912](https://github.com/rust-bitcoin/rust-bitcoin/pull/4912)
10+
- Implement `Encodable` for `&Script<T>` [#4978](https://github.com/rust-bitcoin/rust-bitcoin/pull/4978)
11+
12+
And also we did:
13+
14+
- Remove `hashes` from the public API [#4935](https://github.com/rust-bitcoin/rust-bitcoin/pull/4935)
15+
- Bump MSRV from 1.63.0 to 1.74.0 for all crates in the repo [#4926](https://github.com/rust-bitcoin/rust-bitcoin/pull/4926)
16+
- Rename `units::parse` to `parse_int` [#4886](https://github.com/rust-bitcoin/rust-bitcoin/pull/4886)
17+
- Introduce `Ntxid` [#4839](https://github.com/rust-bitcoin/rust-bitcoin/pull/4839)
18+
- Remove `serde` impls from some primitive types [#4806](https://github.com/rust-bitcoin/rust-bitcoin/pull/48064806)
19+
- Pluralize transaction fields [#4788](https://github.com/rust-bitcoin/rust-bitcoin/pull/4788)
20+
- Use `CompactSize` instead of `VarInt` [#4790](https://github.com/rust-bitcoin/rust-bitcoin/pull/4790)
21+
- Do not derive `Default` on `CompactTarget` [#4561](https://github.com/rust-bitcoin/rust-bitcoin/pull/4561)
22+
- Deserialize witness from a list of hex strings [#4366](https://github.com/rust-bitcoin/rust-bitcoin/pull/4366)
23+
- Implement `FromIterator` for `Witness` [#4365](https://github.com/rust-bitcoin/rust-bitcoin/pull/4365)
24+
- Return `ControlBlock` from `Witness::taproot_control_block` [#4281](https://github.com/rust-bitcoin/rust-bitcoin/pull/4281)
25+
- Witness api improvements and test cleanups [#4279](https://github.com/rust-bitcoin/rust-bitcoin/pull/4279)
26+
- Implement `Display` for `Header` [#4269](https://github.com/rust-bitcoin/rust-bitcoin/pull/4269)
27+
- Make `hex` optional [#4262](https://github.com/rust-bitcoin/rust-bitcoin/pull/4262)
28+
- Clean up Witness API [#4186](https://github.com/rust-bitcoin/rust-bitcoin/pull/4186)
29+
- Move `taproot` back to `bitcoin` crate [#4129](https://github.com/rust-bitcoin/rust-bitcoin/pull/4129)
30+
- Make `transaction::Version` field private [#4099](https://github.com/rust-bitcoin/rust-bitcoin/pull/4099)
31+
- Hide error internals [#4091](https://github.com/rust-bitcoin/rust-bitcoin/pull/4091)
32+
- locktimes: Remove `PartialOrd` and `ArbitraryOrd` [#4065](https://github.com/rust-bitcoin/rust-bitcoin/pull/4065)
33+
- Make `Debug` representation of `Witness` to be slice of hex-encoded
34+
bytes strings to improve readability [#4061](https://github.com/rust-bitcoin/rust-bitcoin/pull/4061)
35+
- Implement `Default` for `Script` [#4043](https://github.com/rust-bitcoin/rust-bitcoin/pull/4043)
36+
- Store `transaction::Version` as `u32` instead of `i32` [#4040](https://github.com/rust-bitcoin/rust-bitcoin/pull/4040)
37+
- Delete `TxOut::NULL` [#3978](https://github.com/rust-bitcoin/rust-bitcoin/pull/3978)
38+
- Reduce alloc requirements [#3711](https://github.com/rust-bitcoin/rust-bitcoin/pull/3711)
39+
- Remove `serde` from amounts [#3672](https://github.com/rust-bitcoin/rust-bitcoin/pull/3672)
40+
- Fix bug in witness stack getters [#3601](https://github.com/rust-bitcoin/rust-bitcoin/pull/3601)
41+
- Re-design and move `Block` to `primitives` [#3582](https://github.com/rust-bitcoin/rust-bitcoin/pull/3582)
42+
- Re-export `block::Header` as `BlockHeader` [#3562](https://github.com/rust-bitcoin/rust-bitcoin/pull/3562)
43+
- Favour `to_vec` over `to_bytes` [#3544](https://github.com/rust-bitcoin/rust-bitcoin/pull/3544)
44+
45+
## Locktimes
46+
47+
Lock times got a bit of work. A big win was:
48+
49+
- Improve lock times - fix off-by-one bug #4468
50+
51+
There was a bit of churn so we are not listing all the PRs. Better
52+
just to take a look at the new and improved API.
53+
54+
If you persist locktimes using `serde` you may want to look at because
55+
we changed the format:
56+
57+
- Modify locktime serde implementations #4511
58+
59+
## Arbitrary
60+
61+
- Add Arbitrary impl for BlockHash, TxMerkleNode, and Wtxid #4720
62+
- Add Arbitrary impl for relative::LockTime #4689
63+
64+
## Mutation testing
65+
66+
The whole crate is mutation tested using `cargo-mutants` - BOOM!
67+
168
# 0.101.0 - 2024-11-15
269

370
This is the first "real" release of the `primitives` crate, as such it

primitives/Cargo.toml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
[package]
22
name = "bitcoin-primitives"
3-
# Arbitrary high version number so as to not clash with the original
4-
# `bitcoin-primitives` crate that we replaced `v0.1.16-alpha`.
5-
version = "0.101.0"
3+
version = "1.0.0-rc.0"
64
authors = ["Andrew Poelstra <[email protected]>", "Tobin C. Harding <[email protected]>"]
75
license = "CC0-1.0"
86
repository = "https://github.com/rust-bitcoin/rust-bitcoin"
@@ -25,7 +23,7 @@ hex = ["dep:hex", "hashes/hex", "internals/hex"]
2523
[dependencies]
2624
encoding = { package = "bitcoin-consensus-encoding", path = "../consensus_encoding", version = "1.0.0-rc.1", default-features = false }
2725
hashes = { package = "bitcoin_hashes", path = "../hashes", version = "0.17.0", default-features = false }
28-
internals = { package = "bitcoin-internals", path = "../internals" }
26+
internals = { package = "bitcoin-internals", path = "../internals", version = "0.4.1" }
2927
units = { package = "bitcoin-units", path = "../units", version = "1.0.0-rc.2", default-features = false, features = [ "encoding" ] }
3028
arrayvec = { version = "0.7.2", default-features = false }
3129

0 commit comments

Comments
 (0)