Skip to content
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

Upgrade to rand 0.9 #1216

Open
divergentdave opened this issue Feb 5, 2025 · 0 comments
Open

Upgrade to rand 0.9 #1216

divergentdave opened this issue Feb 5, 2025 · 0 comments

Comments

@divergentdave
Copy link
Collaborator

divergentdave commented Feb 5, 2025

Version 0.9.0 of the rand crate was recently released. Since we expose rand_core::RngCore, via the Xof trait, this upgrade will be a breaking change for us. Since I expect we'll be using the next release of this crate for a while, it would probably be good to do this upgrade before we cut a release.

There is currently work ongoing to remove some additional dependencies that were added in 0.9.0, most notably zerocopy. We should wait for a release that includes these changes before we dive into dependency audits.

The zipf crate, used in tests, has not been upgraded, and it is no longer maintained. We can replace this with rand_distr::Zipf, which is maintained, and almost identical except some integer types are replaced with floating point types.

The num-bigint crate, used in differential privacy samplers, has not yet been upgraded, but I expect it will be in the coming weeks.

Beyond breaking changes, other ecosystem crates, and audits, we may need to address reproducibility issues, especially related to the differential privacy samplers. See https://github.com/rust-random/rand/blob/master/CHANGELOG.md#reproducibility-breaking-changes.

I also noticed that the new version of rand-distr has added support for Kolmogorov-Smirnov tests, so we could remove our dependency on statrs (and, transitively, nalgebra and simba). Edit: Actually, we only use the Chi-squared and normal distributions from statrs, not the K-S test, but the point still stands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant