v0.20.2-0.6.1 Broke rust-bitcoin 0.30.2
TheBlueMatt opened this issue · 11 comments
The point release is still broken, it seems:
error[E0277]: can't compare `bitcoinconsensus::Error` with `bitcoinconsensus::Error`
--> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitcoin-0.30.2/src/blockdata/script/mod.rs:743:22
|
730 | #[derive(PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Clone, Copy)]
| ---------- in this derive macro expansion
...
743 | BitcoinConsensus(bitcoinconsensus::Error),
| ^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `bitcoinconsensus::Error < bitcoinconsensus::Error` and `bitcoinconsensus::Error > bitcoinconsensus::Error`
|
= help: the trait `PartialOrd` is not implemented for `bitcoinconsensus::Error`
= note: this error originates in the derive macro `PartialOrd` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0277]: the trait bound `bitcoinconsensus::Error: Ord` is not satisfied
--> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitcoin-0.30.2/src/blockdata/script/mod.rs:743:22
|
730 | #[derive(PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Clone, Copy)]
| --- in this derive macro expansion
...
743 | BitcoinConsensus(bitcoinconsensus::Error),
| ^^^^^^^^^^^^^^^^^^^^^^^ the trait `Ord` is not implemented for `bitcoinconsensus::Error`
|
= note: this error originates in the derive macro `Ord` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0277]: the trait bound `bitcoinconsensus::Error: std::hash::Hash` is not satisfied
--> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bitcoin-0.30.2/src/blockdata/script/mod.rs:743:22
|
730 | #[derive(PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Clone, Copy)]
| ---- in this derive macro expansion
...
743 | BitcoinConsensus(bitcoinconsensus::Error),
| ^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::hash::Hash` is not implemented for `bitcoinconsensus::Error`
|
= note: this error originates in the derive macro `Hash` (in Nightly builds, run with -Z macro-backtrace for more info)
For more information about this error, try `rustc --explain E0277`.
error: could not compile `bitcoin` (lib) due to 3 previous errors
Looks like #72 also needs to include PartialOrd.
I'll yank this release again. After this we really need to fix our versioning..
OMG, I only tested against the most recent release of rust-bitcoin.
I don't think we want to yank the point release, we do not want to add PartialOrd back in.
2 possible solutions I can think of:
- Do a point release
rust-bitcoin v0.30.3that uses=in the dependency ofbitocinconsensus - Add a note in the readme that to build
rust-bitcoinversion <0.31.0one needs to pinbitcoinconsensus
- is a huge ecosystem-wide pain and a non-starter IMO. An option 3. would be a point release of rust-bitcoin that doesn't rely on
PartialOrd, which would mean manually implementingOrdonscript::Error. Would be awkward, but its an option.
We can't technically remove the PartialOrd implementation in a point release though.
I don't think we want to yank the point release, we do not want to add
PartialOrdback in.
I already yanked it because it removes PartialOrd in something that cargo views to be a patch version.
If we want to remove it, we should first change our versioning scheme.
Fair and fair.
I'm out of ideas on a versioning scheme that works. I'll start a discussions thread so we can talk in one place.
Discussions thread: rust-bitcoin/rust-bitcoin#2280
This mess is all cleaned up now, the latest releases use a different versioning number scheme, it even plays nicely with the crates.io color scheme!