-
Notifications
You must be signed in to change notification settings - Fork 56
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
v0.6 release tracking ticket #681
Comments
With a prospective MSRV of 1.83 already, and the 2024 edition set to be stabilized in Rust 1.85 on 2025-02-20, I'm wondering if it makes sense to wait for that as well: https://doc.rust-lang.org/edition-guide/rust-2024/index.html Notably edition bumps are a time where the entire ecosystem makes a more concerted effort to bump MSRV. |
My two cents on this is: don't wait. Let the bigint project be its own thing and release when it's "internally" logical to do so. One option is to let the MSRV bump be a one-feature release (i.e. release 0.6 without |
Rust 1.83 is coming out on November 28th, a week away. We can at least wait for that. A release thereafter might make sense. |
Hey @tarcieri any update as to the release date? Also, is there a changelog?
I'm not sure if the original plan was to make such a hard-breaking release, and if you knew it would take so much effort to be upgraded, but in any case a thorough changelog that explains the breaking changes and their implications would ease my mind a lot. |
The only changes that won't be caught by the compiler, as far as I can tell, are:
But I agree that, in retrospect, it would have been nice to keep a synchronous changelog and not just rely on commit messages. |
The main blocker at this point IMO is a We could potentially do a release without those and other version bumps outlined above since I do know this release has been somewhat long-in-the-tooth. Regarding changelogs, I typically manually curate them by going through the PRs/issues one-by-one, categorizing them, and trying to write short synopses which are sometimes the commit message (but often not) which ensures a consistent style. I haven't done that yet for v0.6, however we definitely ensure we have a changelog with every stable release. I find collecting changelogs inline to be somewhat problematic as they're a huge source of merge conflicts. |
That hasn't been my experience. If there's an automatic merge conflict (rarely), it's easy to fix by hand since it's just an itemized list of freeform text and not complicated code. |
It's still very annoying, IMO. I've seen projects adopt tooling to collect the changelogs in separate files just to avoid this problem. |
I tend to disagree with this analysis; firstly, the behaviour of shifts is different (I can look it up but think the previous default was overflowing, and when overflow occurs it returns 0, whereas now it panics: potentially some code can depend on a returned 0 in overflow in a safe and planned way, so panicking there would cause a bug.) Additionally, multiplication once was default widening, now overflowing/panicking. This might get caught by the compiler and might not, depending on how the returned value is used and how explicit the code was to begin with regarding the size of the number) Now even panicking could be an issue: personally, I don’t believe in panicking, all my code returns result and doesn’t even call ‘unwrap’ and such unless it must and the result is guaranteed to work all the time. So an unexpected panic from an upgrade is an issue. In any case, these are only the changes I’m aware of. Hopefully you’re right and there’s none other hidden, but definitely when the changelog comes I’ll have a good look at it to make sure |
Seems like we agree on this one :) I think it'll be relatively easy to find too, you can just search for |
So I think I'd like to get a release out sooner-than-later, deferring all of the unchecked boxes above to a v0.7 release, which we can punt to later this year (prospectively Q2-Q3 2025). The only current prerelease dependency is Remaining outstanding questions are what to do with the |
I've released v0.6.0-rc.7 which should hopefully be a true "release candidate". Please let me know if you are interested in any final changes, otherwise I'd like to cut v0.6 from it. Note: there are outstanding signed int PRs, but hopefully at this point they can be done in a purely additive manner. |
Thank you @tarcieri ! It is great news to see |
The only breaking change I have introduced so far was merged in with #741. There might perhaps be some more changes that are not yet part of the remaining open PRs, but I'm quite confident those are all additive. |
I've opened a PR to release v0.6.0 in #750, currently marked as draft. I would definitely appreciate any suggestions regarding the CHANGELOG.md and how we can better highlight migration pain points from v0.5 to v0.6. If there are any breaking changes you'd still like to make, please let me know ASAP or they won't be included! I would like to release this in the next couple days, barring unforeseen circumstances. |
This is a list of release blockers for
crypto-bigint
v0.6.0, nearly all of which are final releases of dependencies which are currently in a prerelease state:const_mut_refs
stabilizationder
v0.8.0hybrid-array
v0.2.0rand_core
v0.9.0: Tracker: rand 0.9 rust-random/rand#1165serdect
v0.3.0Int
feature tracking ticket #700Update method names to better matchcore
Naming conventions for widening/split operations #537Adoptcore
naming conventions for bigint methods #693The text was updated successfully, but these errors were encountered: