Skip to content

Commit 09e66fe

Browse files
committed
Merge rust-bitcoin/rust-bitcoin#944: Release 0.28.0
38f09d2 minor changelog fixes (Andrew Poelstra) 785be0e release 0.28.0 (Andrew Poelstra) c938596 release: do CHANGELOG for 0.28.0 (Andrew Poelstra) Pull request description: See discussion here rust-bitcoin/rust-bitcoin#941 about whether we want to cut the release now or do another slew of breaking changes between RCs. ACKs for top commit: sanket1729: utACK 38f09d2. The diff from the previous ACKs is minor easy to review. Tree-SHA512: e1ebdd637918337bb9d40f35fdcc3bf50fcab2bce095ed41026502af9446d8b27ddc1b87150205a79a4ac30baea96163219e772a757ab85649d503d97cdcb691
2 parents 8c0f168 + 0a1cb09 commit 09e66fe

File tree

2 files changed

+61
-1
lines changed

2 files changed

+61
-1
lines changed

CHANGELOG.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,63 @@
1+
# 0.28 - 2022-04-20 "The Taproot Release"
2+
3+
At nearly nine months, this is our longest release cycle ever, and thanks
4+
to a huge increase in the number of active contributors this year and last,
5+
it is also **by far** our largest release ever, at 148 PRs merged from 23
6+
different contributors. Our primary goal in this release was to introduce
7+
support for Taproot and its associated data structures: addresses, taptrees,
8+
sighashes, PSBT fields, and more. As it turned out, these changes required
9+
(or at least, incentivized) changing a lot of our APIs, causing a significant
10+
increase in scope.
11+
12+
We have more big changes coming down the pike. 2022 is going to be a big
13+
year for `rust-bitcoin`, which we know is exciting for us but disruptive to
14+
downstream users who ultimately want the library to just work. Our hope is
15+
that by 2023 we will have eliminated large amounts of technical debt,
16+
modernized our APIs to meet current Rust conventions, and clarified the scope
17+
of the individual crates in this ecosystem while still providing the essential
18+
functionality needed by our downstream users, especially wallet projects.
19+
20+
We will also develop a plan to make our releases more predictable and manageable,
21+
likely by having scheduled releases with limited scope. We would like to reach
22+
a point where we no longer have frequent breaking releases, but right now we
23+
are nowhere close.
24+
25+
Upcoming changes will include
26+
- A quick new release which updates our MRSV from 1.29 to 1.41 and does little else
27+
- Updating our codebase to take advantage of the new MSRV, especially regarding
28+
nostd and wasm support
29+
- A comprehensive rethinking and flattening of our public-facing APIs
30+
- Richer support for PSBT, Script, and BIP-0340/Schnorr signatures
31+
32+
With so many changes since 0.27, we cannot list every PR. Here are the highlights:
33+
34+
- Remove dangerous `fuzztarget` cargo feature [#634](https://github.com/rust-bitcoin/rust-bitcoin/pull/634)
35+
- Improve serde serialization for `Script` [#596](https://github.com/rust-bitcoin/rust-bitcoin/pull/596)
36+
- Documentation improvements [#623](https://github.com/rust-bitcoin/rust-bitcoin/pull/623) [#633](https://github.com/rust-bitcoin/rust-bitcoin/pull/633) [#663](https://github.com/rust-bitcoin/rust-bitcoin/pull/663) [#689](https://github.com/rust-bitcoin/rust-bitcoin/pull/689) [#704](https://github.com/rust-bitcoin/rust-bitcoin/pull/704) [#744](https://github.com/rust-bitcoin/rust-bitcoin/pull/744) [#852](https://github.com/rust-bitcoin/rust-bitcoin/pull/852) [#869](https://github.com/rust-bitcoin/rust-bitcoin/pull/869) [#865](https://github.com/rust-bitcoin/rust-bitcoin/pull/865) [#864](https://github.com/rust-bitcoin/rust-bitcoin/pull/864) [#858](https://github.com/rust-bitcoin/rust-bitcoin/pull/858) [#806](https://github.com/rust-bitcoin/rust-bitcoin/pull/806) [#877](https://github.com/rust-bitcoin/rust-bitcoin/pull/877) [#912](https://github.com/rust-bitcoin/rust-bitcoin/pull/912) [#923](https://github.com/rust-bitcoin/rust-bitcoin/pull/923)
37+
- Introduce `WitnessVersion` type [#617](https://github.com/rust-bitcoin/rust-bitcoin/pull/617)
38+
- Improve error types and API [#625](https://github.com/rust-bitcoin/rust-bitcoin/pull/625)
39+
- Implement `Block.get_strippedsize()` and `Transaction.get_vsize()` [#626](https://github.com/rust-bitcoin/rust-bitcoin/pull/626)
40+
- Add Bloom filter network messages [#580](https://github.com/rust-bitcoin/rust-bitcoin/pull/580)
41+
- **Taproot:** add signature hash support [#628](https://github.com/rust-bitcoin/rust-bitcoin/pull/628) [#702](https://github.com/rust-bitcoin/rust-bitcoin/pull/702) [#722](https://github.com/rust-bitcoin/rust-bitcoin/pull/722) [#835](https://github.com/rust-bitcoin/rust-bitcoin/pull/835) [#903](https://github.com/rust-bitcoin/rust-bitcoin/pull/903) [#796](https://github.com/rust-bitcoin/rust-bitcoin/pull/796)
42+
- **Taproot:** add new Script opcodes [#644](https://github.com/rust-bitcoin/rust-bitcoin/pull/644) [#721](https://github.com/rust-bitcoin/rust-bitcoin/pull/721) [#868](https://github.com/rust-bitcoin/rust-bitcoin/pull/868) [#920](https://github.com/rust-bitcoin/rust-bitcoin/pull/920)
43+
- **Taproot:** add bech32m support, addresses and new key types [#563](https://github.com/rust-bitcoin/rust-bitcoin/pull/563) [#691](https://github.com/rust-bitcoin/rust-bitcoin/pull/691) [#697](https://github.com/rust-bitcoin/rust-bitcoin/pull/697) [#728](https://github.com/rust-bitcoin/rust-bitcoin/pull/728) [#696](https://github.com/rust-bitcoin/rust-bitcoin/pull/696) [#757](https://github.com/rust-bitcoin/rust-bitcoin/pull/757)
44+
- **Taproot:** add taptree data structures [#677](https://github.com/rust-bitcoin/rust-bitcoin/pull/677) [#703](https://github.com/rust-bitcoin/rust-bitcoin/pull/703) [#701](https://github.com/rust-bitcoin/rust-bitcoin/pull/701) [#718](https://github.com/rust-bitcoin/rust-bitcoin/pull/718) [#845](https://github.com/rust-bitcoin/rust-bitcoin/pull/845) [#901](https://github.com/rust-bitcoin/rust-bitcoin/pull/901) [#910](https://github.com/rust-bitcoin/rust-bitcoin/pull/910) [#909](https://github.com/rust-bitcoin/rust-bitcoin/pull/909) [#914](https://github.com/rust-bitcoin/rust-bitcoin/pull/914)
45+
- no-std improvements [#637](https://github.com/rust-bitcoin/rust-bitcoin/pull/637)
46+
- PSBT improvements, including Taproot [#654](https://github.com/rust-bitcoin/rust-bitcoin/pull/654) [#681](https://github.com/rust-bitcoin/rust-bitcoin/pull/681) [#669](https://github.com/rust-bitcoin/rust-bitcoin/pull/669) [#774](https://github.com/rust-bitcoin/rust-bitcoin/pull/774) [#779](https://github.com/rust-bitcoin/rust-bitcoin/pull/779) [#752](https://github.com/rust-bitcoin/rust-bitcoin/pull/752) [#776](https://github.com/rust-bitcoin/rust-bitcoin/pull/776) [#790](https://github.com/rust-bitcoin/rust-bitcoin/pull/790) [#836](https://github.com/rust-bitcoin/rust-bitcoin/pull/836) [#847](https://github.com/rust-bitcoin/rust-bitcoin/pull/847) [#842](https://github.com/rust-bitcoin/rust-bitcoin/pull/842)
47+
- serde improvements [#672](https://github.com/rust-bitcoin/rust-bitcoin/pull/672)
48+
- Update rust-secp256k1 dependency [#694](https://github.com/rust-bitcoin/rust-bitcoin/pull/694) [#755](https://github.com/rust-bitcoin/rust-bitcoin/pull/755) [#875](https://github.com/rust-bitcoin/rust-bitcoin/pull/875)
49+
- Change BIP32 to use rust-secp256k1 keys rather than rust-bitcoin ones (no compressedness flag) [#590](https://github.com/rust-bitcoin/rust-bitcoin/pull/590) [#591](https://github.com/rust-bitcoin/rust-bitcoin/pull/591)
50+
- Rename inner key field in `PrivateKey` and `PublicKey` [#762](https://github.com/rust-bitcoin/rust-bitcoin/pull/762)
51+
- Address and denomination related changes [#768](https://github.com/rust-bitcoin/rust-bitcoin/pull/768) [#784](https://github.com/rust-bitcoin/rust-bitcoin/pull/784)
52+
- Don't allow hybrid EC keys [#829](https://github.com/rust-bitcoin/rust-bitcoin/pull/829)
53+
- Change erroneous behavior for `SIGHASH_SINGLE` bug [#860](https://github.com/rust-bitcoin/rust-bitcoin/pull/860) [#897](https://github.com/rust-bitcoin/rust-bitcoin/pull/897)
54+
- Delete the deprecated `contracthash` module [#871](https://github.com/rust-bitcoin/rust-bitcoin/pull/871); this functionality will migrate to ElementsProject/rust-elements
55+
- Remove compilation-breaking feature-gating of enum variants" [#881](https://github.com/rust-bitcoin/rust-bitcoin/pull/881)
56+
57+
Additionally we made several minor API changes (renaming methods, etc.) to improve
58+
compliance with modern Rust conventions. Where possible we left the existing methods
59+
in place, marked as deprecated.
60+
161
# 0.27 - 2021-07-21
262

363
- [Bigendian fixes and CI test](https://github.com/rust-bitcoin/rust-bitcoin/pull/627)

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "bitcoin"
3-
version = "0.28.0-rc.2"
3+
version = "0.28.0"
44
authors = ["Andrew Poelstra <[email protected]>"]
55
license = "CC0-1.0"
66
homepage = "https://github.com/rust-bitcoin/rust-bitcoin/"

0 commit comments

Comments
 (0)