-
Notifications
You must be signed in to change notification settings - Fork 624
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proper release cycle for 0.28+ #773
Comments
I think |
I mean that downstreams will manually use I have many layers of crates using both (for instance in LNP lightning node implementaiton, descriptor wallet and RGB) and have to do a lot of testing. Adding custom branches/commit github references everywhere is not that efficient. |
Isn't it the same amount of work? You have to change a version in each crate or you have to change it to git declaration. |
No, it is not just about amount of work: this is about third-party repos which you can't change. If they don't do They may do a custom branch/tag, but this will be much less standard and hard to coordinate - plus can change anytime, unlike the RC version released to |
Well, you then need to convince each project to release RC with version bumped (and all API breaks fixed) and wait for them to do so. So it's roughly same amount of work just distributed between multiple people. :) |
Not the same amount of work: there is no need to convince miniscript (the same people as rust-bitcoin) and for electrum-client they are usually doing this anyway (also @RCasatta here can do that since he is a part of that project) |
concept ACK. Yes, it would be good to have RCs that our own projects can explicitly opt into, because then we would catch "stupid" mistakes involving new types that don't have derives, functions that return types that aren't actually exported, macros that don't work when called from dependent crates, etc, etc. It would be nice if others would also use the rc's, but I don't think it's needed or expected. cc @tcharding |
concept ACK for electrs |
I think we really are asking too much of downstream projects, I don't see why downstream should have to beta test our releases. Testing rc releases is the job of rust-bitcoin devs IMO. Another solution would be to come up with a set of projects that gives us good enough coverage and then fork those someplace (all into a single repo?) that we can all see, then do the rc testing there. That way the work is not duplicated and everyone can see the PRs to see whats involved with updating without having to do it themselves. Sounds like a suitable boring task for someone who is on an open source grant to do ... A few more random points:
|
@tcharding we have several downstream projects (rust-elements, rust-miniscript, rust-lightning, electrs) which are maintained by the rust-bitcoin developers. The idea behind using rcs on crates.io is that it'd be more convenient, but functionally the same, as using git branches. |
Got it, cheers. |
Reporting back after some initial testing. Using crates.io is not going to work because any bugs one finds that break the build of downstream projects have to be patched, this implies using branches either pushed to github or locally using Perhaps this flow will work?
|
@tcharding not sure why this not going to work; I've been using this for my crates (I have >50 of libs to manage) for years and it worked well. You start with |
I agree with @dr-orlovsky -- it is true that when users are testing patches locally they have to mess around with local paths or git branches, but the idea is that we'd be in "rc mode" only for a short time, and have quick turnaround pushing new rcs with new bugfixes. |
I've not fully internalised your position but I'm happy to defer to you guys on this, I'm not particularly experienced in this are. One question, this method implies that every project in the stack is ready to do a release or were you imagining that some projects might leave the |
No, ideally |
We have a 'feature freeze' while rc releases are active, right? I.e no PRs merged except bug fixes? |
In order to try and assist those trying to merge patches that are needed during the release candidate cycle I added a label |
I think we should. Also good idea with the label. |
Thanks! Agreed. Though there is a bit of a blurry line -- if we add e.g. a forgotten |
Yeah I was wondering about this sort of thing. I really don't want to be the guy that puts a broken patch into the final rc release that doesn't get that heavily tested because its so late in the cycle and then gets into the non-rc release. Perhaps this gives us the answer to that question, if its early in the rc cycle then it counts as a bug fix and if its nearing the end of the rc cycle be more conservative? |
I think we should weight in the scope too. Adding an uncontroversial derive or a simple access method should be fine. Adding a whole module with a bunch of types and methods is not. |
Are we doing another RC release, its been a while on rc-1 now? |
@tcharding I would like to get a rust-secp major release out, and then I think we can do a major release here. Or at least another RC. I have spent 4 or 5 weeks now begging to get PRs acked by maintainers but there are not many on that project. |
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
In order to avoid issues like we had with the latest
secp256k1
release I propose to do a series ofrust-bitcoin
RC releases before releasing0.28.0
(and all future major versions).Why this is required and we can't just use github master branch from a dependencies to check before the release? One of the main reasons is because there are multiple projects not just depending on
rust-bitcoin
, but also depending on other crates, which expose APIs usingrust-bitcoin
. At least, this includesminiscript
,electrum-client
and many others, so every crate using them can't just switch to github master forrust-bitcoin
.So, the proposal is to have
rust-bitcoin
0.28.0-rc.1
first, than do the same forminiscript
- and let existing projects using both of them to test these RCs for a while.The text was updated successfully, but these errors were encountered: