Skip to content

Release tracking PR: hex 0.4.0 - Release Candidate for v1.1.0#210

Draft
tcharding wants to merge 15 commits intorust-bitcoin:masterfrom
tcharding:push-zymmlwoymnqz
Draft

Release tracking PR: hex 0.4.0 - Release Candidate for v1.1.0#210
tcharding wants to merge 15 commits intorust-bitcoin:masterfrom
tcharding:push-zymmlwoymnqz

Conversation

@tcharding
Copy link
Member

Draft because on top of #206 - LFG!

Bump version to 0.4.0. This release is the v1.1.0 release candidate.

Currently the `hex` macro is placed in between the `pub mod`
statements, this is a little surprising.

Move the `hex` macro down the file after the public decoding
functions.

No logic change.
Copy the `error` module rustdocs from the `1.x` branch. The `error`
module is the same here on `master` except some unit test code which
will be unified next.
Stop using `FromHex` and use the crate level decoding functions in the
unit tests of the `error` module.

With this applied (and hex 1.x branch checked out locally) the
following is achieved:

```
diff src/error.rs ~/tmp/hex-1.0/hex-conservative/src/error.rs 
69a70
> pub(crate) use write_err;
413,415c414
<     use crate::decode_to_array;
<     #[cfg(feature = "alloc")]
<     use crate::decode_to_vec;
---
>     use crate::{decode_to_array, decode_to_vec};
```
    
Done in preparation for moving the test out of the `parse` module so
we can delete the module.
In preparation for deleting the `parse` module (and clobbering the
`FromHex` trait) move the unit test to `error` so its obvious we don't
loose any test coverage.
We want to delete the `FromHex` trait which this old macro uses. Just
delete it and call it a day.

(Note we provide a `hex` macro already that works in const contexts.)
We would like to release this branch as `v1.1`. Currently the `serde`
deserialize logic uses `FromHex` which we would also like to delete.

Instead of trying to work out 1.0-able `serde` stuff lets just delete
the module. We can put it back in later if anyone screams at us.
We can use the crate level decoding functions.
Remove the `FromHex` usage in crate level docs.
As everywhere else replace `FromHex` with crate level decoding function.
The only thing being deleted is the `FromHex` trait. From 1.0 onwards
we provide crate level decoding functions instead of this trait.
Add a script to check for API changes. On the `1.x` branch run the
script then copy the output files here.

The ideas is that we can then run the script again and check we didn't
inadvertently introduce any breaking changes so we can release
`master` as `v1.1`.
BOOM! Only green lines in the diff. We can have confidence now that
this branch is API compatible with the `1.x` branch.
As is customary we forgot to merge the point release changelog back
into master for `0.3.1` and `0.3.2` - grab it now.
This release is the `v1.1.0` release candidate.

In preparation for release add a changelog entry, bump the version
number, and update the lock files.
tcharding added a commit to tcharding/rust-bitcoin that referenced this pull request Mar 4, 2026
Upgrade to the hopefully imminent `hex v0.4` (RC for `v1.1`).

ref: rust-bitcoin/hex-conservative#210
@tcharding
Copy link
Member Author

Tested in: rust-bitcoin/rust-bitcoin#5775

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant