|
| 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 | + |
1 | 68 | # 0.101.0 - 2024-11-15 |
2 | 69 |
|
3 | 70 | This is the first "real" release of the `primitives` crate, as such it |
|
0 commit comments