Closed
Description
Blocker:
getrandom
v0.3Zerocopy v0.8 — 0.8 Release Roadmap google/zerocopy#671
Planned breaking changes for rand 0.9 are:
- Make distributions in
rand
useResult
(Error handling of distributions::Uniform::new #1195, API differences between Uniform and Bernoulli #1211)Bump MSRV to 1.56 and enable const generics by default- Bump rand_core minor version
- Bump ranch_chacha, rand_pcg minor version
- Bump rand minor version
- Bump rand_distr minor version
AddFromSeed
traitRNG rename (likely reject) Rename Rng -> RngExt, RngCore -> Rng #1288
Possibly also:
Non-breaking TODOs:
Not planned:
Metadata
Metadata
Assignees
Labels
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
dhardy commentedon Oct 18, 2021
We should also conform to common Rust coding standards (generally expected of open projects now). I have argued against these in the past (some poor formatting and false-positive lints, verbosity of opt-outs), but the reasons not to use these are fewer (less active development) and reasons to do so greater (mature tools and very widespread usage):
rustfmt
(with#[rustfmt::skip]
where required), including CI checkI suggest only doing this late before v0.9 since both will cause significant merge conflicts and there is currently some on-going work.
vks commentedon Oct 21, 2021
Fixing the clippy warnings is not a big deal, we are already doing pretty well. Also see #1197.
dhardy commentedon Feb 22, 2022
We should consider bumping the MSRV to Rust 1.51.0 (March 2021), enabling usage of const generics by default.
dhardy commentedon Nov 22, 2022
Question: do we make a breaking release of
rand_core
at the same time or stick with 0.6.x?See my comment in #1269:
rand_core
lets users upgrade to Rand v0.9 more easily (no need to touch RNGs)RngCore
in the future, but likely not soon (most ideas floated depend on unstable language features)getrandom
1.0vks commentedon Nov 22, 2022
What breaking changes would we want to release for
rand_core
?dhardy commentedon Nov 23, 2022
Pending: #1182, #1267.
Possible future changes: #1261, and @newpavlov mentioned somewhere using const generics to re-write
RngCore
with a method likefn generate(&mut self, result: &mut [u8; Self::LENGTH])
. (I can't find his comment.)newpavlov commentedon Nov 23, 2022
I also would like to rework a bit the crypto traits. We have some issues with them in RustCrypto, see: RustCrypto/traits#1148
coolreader18 commentedon Nov 30, 2022
Not sure if this would be the place for it, but in terms of major version bumps it'd be good to switch feature specifications over to weak feature dependencies (
"dep?/feature"
syntax) once the MSRV >= 1.60. Otherwise there's no actual way to e.g. enablestd
without also enablingrand_chacha
as a dependency cause it'sstd = [.. "rand_chacha/std", ..]
34 remaining items
epage commentedon Sep 26, 2024
dhardy commentedon Oct 1, 2024
I marked that whole discussion off-topic (the short version is that we will not be pinning dependencies).
Our MSRV policy is basically just "at least a year old at the time of the next Rand release, and consider other factors". In effect, I decide.
We are open to a PR reducing the MSRV to 1.60, assuming there isn't too much fallout.#1513dhardy commentedon Nov 23, 2024
PR for beta release: #1535
newpavlov commentedon Nov 24, 2024
It may be worth to bump MSRV to 1.63 following the
libc
bump: rust-lang/libc#4040mzdk100 commentedon Dec 11, 2024
dhardy commentedon Dec 11, 2024
mzdk100 commentedon Dec 11, 2024
dhardy commentedon Jan 27, 2025
rand
v0.9 is now published. Still pending:rand_distr
v0.5:Poisson
variance deviation at highlambda
#1515 (comment)SUPERCILEX commentedon Jan 27, 2025
This is incredibly exciting, thank you!