units: Bump version to 1.0.0-rc.0#4204
Conversation
Kixunil
left a comment
There was a problem hiding this comment.
Other than confusing doc, this looks good.
| # 1.0.0 - 2025-02-24 | ||
|
|
||
| - TODO: Make a comment about `Amount::MAX_MONEY` including breaking serde | ||
| BOOM! A long time in the making but here goes, our first 1.0 crate release. |
There was a problem hiding this comment.
I think this is confusing, since it looks like proper 1.0, not alpha. It needs to be clearly marked as such.
There was a problem hiding this comment.
There's alpha in the version number. You cannot depend on this without explicitly typing alpha.
There was a problem hiding this comment.
It looks like false marketing. Someone's going to read it a be like, "awesome, I'm going to update" only to be disappointed.
There was a problem hiding this comment.
In the light of recent discussion. I now consider this much less concerning than before. Also units with no amounts might as well be rc is you want. :) Note that I would still like having "alpha" (or "release candidate") written on top of changelog for the time being but I'm not going to block PR over it.
|
@tcharding can you add a commit to this which moves the whole @Kixunil our original plan here was to have a separate 1.x branch. You said in #3935 that it would make for a cleaner history if we were to add these extra commits which move/delete code and then unmove/undelete it. I don't care either way but I don't want to go in circles on this. |
I think we won't since they can be implemented in
Hold on, I if |
They can't be because the
If we put a feature flag in then we've got stuff in our release candidate that we don't intend to release. |
|
So my confusion is that I wasn't sure which of the following options you want to do:
These options have different sensible approaches:
It's also possible that you want to do something I didn't cover, in which case please describe precisely what you want. I hope that regardless, this explanation sheds light on why we're going in circles and why I'm seemingly pushing against everything. It''s just a huge confusion. |
Yes -- this is my current goal. If we manage to merge the amounts PRs in the next 48 hours (which depends a bit on my own review and server time) (and also on the fact that they'll need to be rebased if we intend to use But I don't see
Yes, I appreciate you writing out this big list of alternatives. |
|
Alright then, so what do you think about keeping it behind the cfg? That way And yes, you're right that |
Kixunil
left a comment
There was a problem hiding this comment.
Is the intention of this PR to release alpha right after this merges or are there any planned changes before the actual publishing?
FWIW I had in mind (4) - same as (2) but only release the alpha. And the reason is that we have discussed previously that we want a final release with all the deprecated stuff in it which I only see happening if we keep all crates ( @apoelstra you thinking (2) explains your comment the other day that you want to upgrade your stuff and not touch it again - at the time I did not understand how you thought that was possible. At the risk of getting emotional again this whole cfg flag discussion, while valid is extremely annoying. Why did we just spend a year pulling stuff out of |
Lemme chew on this. My hope had been that we could have the 0.x tree contain re-exports of the 1.0 stuff and somehow bolt on deprecated and unstable things. We can do this using extension traits, but this does mean that users' code will still break until they import the extension traits. This sucks, but I believe we have already committed to going this direction. So my hope now is:
Between the 2nd and 3rd step maybe we have a series of "prerelease" versions that do incremental changes that IOW we shouldn't be afraid to break users in ways that we could prevent or ameliorate -- we can double-back and do the amelioration after the fact. |
Those are very different things. Notice my comment that we cannot do that with option 1. We are currently not doing option 1, but later will do what is effectively option 1 - we will release Technically we could've done it the other way around (though frankly it didn't occur me at the time). We could've feature flagged everything and start with empty rates and slowly removing flags on individual items that we're 100% sure are done. However this approach involves releasing a bunch of super-tiny crates that are useless for most people. The idea that Which makes me wonder, could we do the equivalent of option 1 above in case off |
|
Yes, I think we can release It's true that Also, withholding |
|
Alright then, I'm in!
Just noting that |
|
Yeah, I did mean I also think that they're in fine shape. But we will go over them carefully again before final release, of course. |
|
We have a tool that spits these out |
|
The list of types sounds good. Not sure why those two didn't end up in |
|
IIRC its just because we tried to move the least code possible to |
d676345 to
ae726dc
Compare
|
I've made all the PRs in the todo list P-high - lets get this crate released crew. |
ae726dc to
f459d1f
Compare
diff --git a/units/Cargo.toml b/units/Cargo.toml
index 1bad34a7c..5cc16b6f4 100644
--- a/units/Cargo.toml
+++ b/units/Cargo.toml
@@ -18,13 +18,13 @@ std = ["alloc", "internals/std"]
alloc = ["internals/alloc","serde?/alloc"]
[dependencies]
-internals = { package = "bitcoin-internals", path = "../internals" }
+internals = { package = "bitcoin-internals", version = "0.4.0", path = "../internals" }
serde = { version = "1.0.103", default-features = false, optional = true }
arbitrary = { version = "1.4", optional = true }
[dev-dependencies]
-internals = { package = "bitcoin-internals", path = "../internals", features = ["test-serde"] }
+internals = { package = "bitcoin-internals", version = "0.4.0", path = "../internals", features = ["test-serde"] }
bincode = "1.3.1"
serde = { version = "1.0.103", default-features = false, features = ["derive"] }
serde_test = "1.0"seems to fix it. Which is dumb and not DRY but ok. |
|
@tcharding your patch removes the |
|
Correct. I would have thought that for the stable |
|
I actually ran into this surprising (to me) cargo behavior last week, so have a link handy: https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#multiple-locations Kinda nice for local development in workspaces, but wasn't obvious to me at first what cargo would do with it. |
|
Oh so we can add |
fcfcf57 to
b75a92c
Compare
|
Note please I only added the version number to |
|
Yeah, this is kinda frustrating. If we have the I'll test your previous version of this PR as well before merging this (which will have to be tomorrow, sorry, since it's late here). |
|
No stress, for what its worth I think we should have just the version number and no |
b75a92c to
09b8c16
Compare
|
The previous patch fails for me with I'm not sure if this is rustc or my own tooling at fault. But I think we should just go ahead and publish the rc as-is. If it later turns out that compilation is broken due to |
|
Yeah lets get it out. I'll throw a bit more time into it and we can do another RC if we want another internals release for some reason. |
|
@tcharding if we want to "get it out" then you need to revert this to the one that keeps |
`cargo publish` does not allow publishing a crate without all dependencies having explicit version numbers. We discovered recently that having patching the root manifest was annoying when downstream testing so we removing the version numbers in rust-bitcoin#4284 in favor of `path`. It turns out we can include both. Props to nyonson for discovering that. ref: https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#multiple-locations Use an explicit version number to the `internals` dep in `units`.
In preparation for doing the first 1.0 RC release set the version number, add a changelog entry, and update the lock files.
09b8c16 to
806b34a
Compare
|
Done, you'll have to tell me at some stage why you prefer that but I'm not fussed ATM. |
|
@tcharding the other way doesn't build for me. See my previous comment. |
806b34a units: Bump version to 1.0.0-rc.0 (Tobin C. Harding) 1f9c48b units: Set explicit internals dependency version to v0.4.0 (Tobin C. Harding) Pull request description: In preparation for doing the first 1.0 RC release set the version number, add a changelog entry, and update the lock files. Lets go! ACKs for top commit: apoelstra: ACK 806b34a; successfully ran local tests Tree-SHA512: 4d87865990fc66d0150156cf9aaae53b80602b826e68bc7e0210bea7dc488b72beb90b64034a4debb455c3d902efe574ec15ed7a8e638bc6f670cdd16b7a4e20
|
Tagged and published. |
|
Pop the bubbly, drinks on me! |
|
Nice! Good job all. |
|
You can add me if you think its prudent, if not we should find someone else to take it on. |
|
I added you @tcharding. Also happy to add @Kixunil if you want. |
In preparation for doing the first 1.0 RC release set the version number, add a changelog entry, and update the lock files.
Lets go!