Update Rust crate rand to 0.9.0 #287

Merged
pierre merged 2 commits from renovate/rand-0.x into master 2025-02-03 20:10:57 +00:00
Owner

This PR contains the following updates:

Package Type Update Change
rand (source) dependencies minor 0.8.5 -> 0.9.0

Release Notes

rust-random/rand (rand)

v0.9.0

Compare Source

Security and unsafe
  • Policy: "rand is not a crypto library" (#​1514)
  • Remove fork-protection from ReseedingRng and ThreadRng. Instead, it is recommended to call ThreadRng::reseed on fork. (#​1379)
  • Use zerocopy to replace some unsafe code (#​1349, #​1393, #​1446, #​1502)
Dependencies
Features
  • Support std feature without getrandom or rand_chacha (#​1354)
  • Enable feature small_rng by default (#​1455)
  • Remove implicit feature rand_chacha; use std_rng instead. (#​1473)
  • Rename feature serde1 to serde (#​1477)
  • Rename feature getrandom to os_rng (#​1537)
  • Add feature thread_rng (#​1547)
API changes: rand_core traits
  • Add fn RngCore::read_adapter implementing std::io::Read (#​1267)
  • Add trait CryptoBlockRng: BlockRngCore; make trait CryptoRng: RngCore (#​1273)
  • Add traits TryRngCore, TryCryptoRng (#​1424, #​1499)
  • Rename fn SeedableRng::from_rng -> try_from_rng and add infallible variant fn from_rng (#​1424)
  • Rename fn SeedableRng::from_entropy -> from_os_rng and add fallible variant fn try_from_os_rng (#​1424)
  • Add bounds Clone and AsRef to associated type SeedableRng::Seed (#​1491)
API changes: Rng trait and top-level fns
  • Rename fn rand::thread_rng() to rand::rng() and remove from the prelude (#​1506)
  • Remove fn rand::random() from the prelude (#​1506)
  • Add top-level fns random_iter, random_range, random_bool, random_ratio, fill (#​1488)
  • Re-introduce fn Rng::gen_iter as random_iter (#​1305, #​1500)
  • Rename fn Rng::gen to random to avoid conflict with the new gen keyword in Rust 2024 (#​1438)
  • Rename fns Rng::gen_range to random_range, gen_bool to random_bool, gen_ratio to random_ratio (#​1505)
  • Annotate panicking methods with #[track_caller] (#​1442, #​1447)
API changes: RNGs
  • Fix <SmallRng as SeedableRng>::Seed size to 256 bits (#​1455)
  • Remove first parameter (rng) of ReseedingRng::new (#​1533)
API changes: Sequences
  • Split trait SliceRandom into IndexedRandom, IndexedMutRandom, SliceRandom (#​1382)
  • Add IndexedRandom::choose_multiple_array, index::sample_array (#​1453, #​1469)
API changes: Distributions: renames
  • Rename module rand::distributions to rand::distr (#​1470)
  • Rename distribution Standard to StandardUniform (#​1526)
  • Move distr::Slice -> distr::slice::Choose, distr::EmptySlice -> distr::slice::Empty (#​1548)
  • Rename trait distr::DistString -> distr::SampleString (#​1548)
  • Rename distr::DistIter -> distr::Iter, distr::DistMap -> distr::Map (#​1548)
API changes: Distributions
  • Relax Sized bound on Distribution<T> for &D (#​1278)
  • Remove impl of Distribution<Option<T>> for StandardUniform (#​1526)
  • Let distribution StandardUniform support all NonZero* types (#​1332)
  • Fns {Uniform, UniformSampler}::{new, new_inclusive} return a Result (instead of potentially panicking) (#​1229)
  • Distribution Uniform implements TryFrom instead of From for ranges (#​1229)
  • Add UniformUsize (#​1487)
  • Remove support for generating isize and usize values with StandardUniform, Uniform (except via UniformUsize) and Fill and usage as a WeightedAliasIndex weight (#​1487)
  • Add impl DistString for distributions Slice<char> and Uniform<char> (#​1315)
  • Add fn Slice::num_choices (#​1402)
  • Add fn p() for distribution Bernoulli to access probability (#​1481)
API changes: Weighted distributions
  • Add pub module rand::distr::weighted, moving WeightedIndex there (#​1548)
  • Add trait weighted::Weight, allowing WeightedIndex to trap overflow (#​1353)
  • Add fns weight, weights, total_weight to distribution WeightedIndex (#​1420)
  • Rename enum WeightedError to weighted::Error, revising variants (#​1382) and mark as #[non_exhaustive] (#​1480)
API changes: SIMD
  • Switch to std::simd, expand SIMD & docs (#​1239)
Reproducibility-breaking changes
  • Make ReseedingRng::reseed discard remaining data from the last block generated (#​1379)
  • Change fn SmallRng::seed_from_u64 implementation (#​1203)
  • Allow UniformFloat::new samples and UniformFloat::sample_single to yield high (#​1462)
  • Fix portability of distribution Slice (#​1469)
  • Make Uniform for usize portable via UniformUsize (#​1487)
  • Fix IndexdRandom::choose_multiple_weighted for very small seeds and optimize for large input length / low memory (#​1530)
Reproducibility-breaking optimisations
  • Optimize fn sample_floyd, affecting output of rand::seq::index::sample and rand::seq::SliceRandom::choose_multiple (#​1277)
  • New, faster algorithms for IteratorRandom::choose and choose_stable (#​1268)
  • New, faster algorithms for SliceRandom::shuffle and partial_shuffle (#​1272)
  • Optimize distribution Uniform: use Canon's method (single sampling) / Lemire's method (distribution sampling) for faster sampling (breaks value stability; #​1287)
  • Optimize fn sample_single_inclusive for floats (+~20% perf) (#​1289)
Other optimisations
  • Improve SmallRng initialization performance (#​1482)
  • Optimise SIMD widening multiply (#​1247)
Other
Documentation
  • Improve ThreadRng related docs (#​1257)
  • Docs: enable experimental --generate-link-to-definition feature (#​1327)
  • Better doc of crate features, use doc_auto_cfg (#​1411, #​1450)

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [rand](https://rust-random.github.io/book) ([source](https://github.com/rust-random/rand)) | dependencies | minor | `0.8.5` -> `0.9.0` | --- ### Release Notes <details> <summary>rust-random/rand (rand)</summary> ### [`v0.9.0`](https://github.com/rust-random/rand/blob/HEAD/CHANGELOG.md#090---2025-01-27) [Compare Source](https://github.com/rust-random/rand/compare/0.8.5...0.9.0) ##### Security and unsafe - Policy: "rand is not a crypto library" ([#&#8203;1514](https://github.com/rust-random/rand/issues/1514)) - Remove fork-protection from `ReseedingRng` and `ThreadRng`. Instead, it is recommended to call `ThreadRng::reseed` on fork. ([#&#8203;1379](https://github.com/rust-random/rand/issues/1379)) - Use `zerocopy` to replace some `unsafe` code ([#&#8203;1349](https://github.com/rust-random/rand/issues/1349), [#&#8203;1393](https://github.com/rust-random/rand/issues/1393), [#&#8203;1446](https://github.com/rust-random/rand/issues/1446), [#&#8203;1502](https://github.com/rust-random/rand/issues/1502)) ##### Dependencies - Bump the MSRV to 1.63.0 ([#&#8203;1207](https://github.com/rust-random/rand/issues/1207), [#&#8203;1246](https://github.com/rust-random/rand/issues/1246), [#&#8203;1269](https://github.com/rust-random/rand/issues/1269), [#&#8203;1341](https://github.com/rust-random/rand/issues/1341), [#&#8203;1416](https://github.com/rust-random/rand/issues/1416), [#&#8203;1536](https://github.com/rust-random/rand/issues/1536)); note that 1.60.0 may work for dependents when using `--ignore-rust-version` - Update to `rand_core` v0.9.0 ([#&#8203;1558](https://github.com/rust-random/rand/issues/1558)) ##### Features - Support `std` feature without `getrandom` or `rand_chacha` ([#&#8203;1354](https://github.com/rust-random/rand/issues/1354)) - Enable feature `small_rng` by default ([#&#8203;1455](https://github.com/rust-random/rand/issues/1455)) - Remove implicit feature `rand_chacha`; use `std_rng` instead. ([#&#8203;1473](https://github.com/rust-random/rand/issues/1473)) - Rename feature `serde1` to `serde` ([#&#8203;1477](https://github.com/rust-random/rand/issues/1477)) - Rename feature `getrandom` to `os_rng` ([#&#8203;1537](https://github.com/rust-random/rand/issues/1537)) - Add feature `thread_rng` ([#&#8203;1547](https://github.com/rust-random/rand/issues/1547)) ##### API changes: rand_core traits - Add fn `RngCore::read_adapter` implementing `std::io::Read` ([#&#8203;1267](https://github.com/rust-random/rand/issues/1267)) - Add trait `CryptoBlockRng: BlockRngCore`; make `trait CryptoRng: RngCore` ([#&#8203;1273](https://github.com/rust-random/rand/issues/1273)) - Add traits `TryRngCore`, `TryCryptoRng` ([#&#8203;1424](https://github.com/rust-random/rand/issues/1424), [#&#8203;1499](https://github.com/rust-random/rand/issues/1499)) - Rename `fn SeedableRng::from_rng` -> `try_from_rng` and add infallible variant `fn from_rng` ([#&#8203;1424](https://github.com/rust-random/rand/issues/1424)) - Rename `fn SeedableRng::from_entropy` -> `from_os_rng` and add fallible variant `fn try_from_os_rng` ([#&#8203;1424](https://github.com/rust-random/rand/issues/1424)) - Add bounds `Clone` and `AsRef` to associated type `SeedableRng::Seed` ([#&#8203;1491](https://github.com/rust-random/rand/issues/1491)) ##### API changes: Rng trait and top-level fns - Rename fn `rand::thread_rng()` to `rand::rng()` and remove from the prelude ([#&#8203;1506](https://github.com/rust-random/rand/issues/1506)) - Remove fn `rand::random()` from the prelude ([#&#8203;1506](https://github.com/rust-random/rand/issues/1506)) - Add top-level fns `random_iter`, `random_range`, `random_bool`, `random_ratio`, `fill` ([#&#8203;1488](https://github.com/rust-random/rand/issues/1488)) - Re-introduce fn `Rng::gen_iter` as `random_iter` ([#&#8203;1305](https://github.com/rust-random/rand/issues/1305), [#&#8203;1500](https://github.com/rust-random/rand/issues/1500)) - Rename fn `Rng::gen` to `random` to avoid conflict with the new `gen` keyword in Rust 2024 ([#&#8203;1438](https://github.com/rust-random/rand/issues/1438)) - Rename fns `Rng::gen_range` to `random_range`, `gen_bool` to `random_bool`, `gen_ratio` to `random_ratio` ([#&#8203;1505](https://github.com/rust-random/rand/issues/1505)) - Annotate panicking methods with `#[track_caller]` ([#&#8203;1442](https://github.com/rust-random/rand/issues/1442), [#&#8203;1447](https://github.com/rust-random/rand/issues/1447)) ##### API changes: RNGs - Fix `<SmallRng as SeedableRng>::Seed` size to 256 bits ([#&#8203;1455](https://github.com/rust-random/rand/issues/1455)) - Remove first parameter (`rng`) of `ReseedingRng::new` ([#&#8203;1533](https://github.com/rust-random/rand/issues/1533)) ##### API changes: Sequences - Split trait `SliceRandom` into `IndexedRandom`, `IndexedMutRandom`, `SliceRandom` ([#&#8203;1382](https://github.com/rust-random/rand/issues/1382)) - Add `IndexedRandom::choose_multiple_array`, `index::sample_array` ([#&#8203;1453](https://github.com/rust-random/rand/issues/1453), [#&#8203;1469](https://github.com/rust-random/rand/issues/1469)) ##### API changes: Distributions: renames - Rename module `rand::distributions` to `rand::distr` ([#&#8203;1470](https://github.com/rust-random/rand/issues/1470)) - Rename distribution `Standard` to `StandardUniform` ([#&#8203;1526](https://github.com/rust-random/rand/issues/1526)) - Move `distr::Slice` -> `distr::slice::Choose`, `distr::EmptySlice` -> `distr::slice::Empty` ([#&#8203;1548](https://github.com/rust-random/rand/issues/1548)) - Rename trait `distr::DistString` -> `distr::SampleString` ([#&#8203;1548](https://github.com/rust-random/rand/issues/1548)) - Rename `distr::DistIter` -> `distr::Iter`, `distr::DistMap` -> `distr::Map` ([#&#8203;1548](https://github.com/rust-random/rand/issues/1548)) ##### API changes: Distributions - Relax `Sized` bound on `Distribution<T> for &D` ([#&#8203;1278](https://github.com/rust-random/rand/issues/1278)) - Remove impl of `Distribution<Option<T>>` for `StandardUniform` ([#&#8203;1526](https://github.com/rust-random/rand/issues/1526)) - Let distribution `StandardUniform` support all `NonZero*` types ([#&#8203;1332](https://github.com/rust-random/rand/issues/1332)) - Fns `{Uniform, UniformSampler}::{new, new_inclusive}` return a `Result` (instead of potentially panicking) ([#&#8203;1229](https://github.com/rust-random/rand/issues/1229)) - Distribution `Uniform` implements `TryFrom` instead of `From` for ranges ([#&#8203;1229](https://github.com/rust-random/rand/issues/1229)) - Add `UniformUsize` ([#&#8203;1487](https://github.com/rust-random/rand/issues/1487)) - Remove support for generating `isize` and `usize` values with `StandardUniform`, `Uniform` (except via `UniformUsize`) and `Fill` and usage as a `WeightedAliasIndex` weight ([#&#8203;1487](https://github.com/rust-random/rand/issues/1487)) - Add impl `DistString` for distributions `Slice<char>` and `Uniform<char>` ([#&#8203;1315](https://github.com/rust-random/rand/issues/1315)) - Add fn `Slice::num_choices` ([#&#8203;1402](https://github.com/rust-random/rand/issues/1402)) - Add fn `p()` for distribution `Bernoulli` to access probability ([#&#8203;1481](https://github.com/rust-random/rand/issues/1481)) ##### API changes: Weighted distributions - Add `pub` module `rand::distr::weighted`, moving `WeightedIndex` there ([#&#8203;1548](https://github.com/rust-random/rand/issues/1548)) - Add trait `weighted::Weight`, allowing `WeightedIndex` to trap overflow ([#&#8203;1353](https://github.com/rust-random/rand/issues/1353)) - Add fns `weight, weights, total_weight` to distribution `WeightedIndex` ([#&#8203;1420](https://github.com/rust-random/rand/issues/1420)) - Rename enum `WeightedError` to `weighted::Error`, revising variants ([#&#8203;1382](https://github.com/rust-random/rand/issues/1382)) and mark as `#[non_exhaustive]` ([#&#8203;1480](https://github.com/rust-random/rand/issues/1480)) ##### API changes: SIMD - Switch to `std::simd`, expand SIMD & docs ([#&#8203;1239](https://github.com/rust-random/rand/issues/1239)) ##### Reproducibility-breaking changes - Make `ReseedingRng::reseed` discard remaining data from the last block generated ([#&#8203;1379](https://github.com/rust-random/rand/issues/1379)) - Change fn `SmallRng::seed_from_u64` implementation ([#&#8203;1203](https://github.com/rust-random/rand/issues/1203)) - Allow `UniformFloat::new` samples and `UniformFloat::sample_single` to yield `high` ([#&#8203;1462](https://github.com/rust-random/rand/issues/1462)) - Fix portability of distribution `Slice` ([#&#8203;1469](https://github.com/rust-random/rand/issues/1469)) - Make `Uniform` for `usize` portable via `UniformUsize` ([#&#8203;1487](https://github.com/rust-random/rand/issues/1487)) - Fix `IndexdRandom::choose_multiple_weighted` for very small seeds and optimize for large input length / low memory ([#&#8203;1530](https://github.com/rust-random/rand/issues/1530)) ##### Reproducibility-breaking optimisations - Optimize fn `sample_floyd`, affecting output of `rand::seq::index::sample` and `rand::seq::SliceRandom::choose_multiple` ([#&#8203;1277](https://github.com/rust-random/rand/issues/1277)) - New, faster algorithms for `IteratorRandom::choose` and `choose_stable` ([#&#8203;1268](https://github.com/rust-random/rand/issues/1268)) - New, faster algorithms for `SliceRandom::shuffle` and `partial_shuffle` ([#&#8203;1272](https://github.com/rust-random/rand/issues/1272)) - Optimize distribution `Uniform`: use Canon's method (single sampling) / Lemire's method (distribution sampling) for faster sampling (breaks value stability; [#&#8203;1287](https://github.com/rust-random/rand/issues/1287)) - Optimize fn `sample_single_inclusive` for floats (+~20% perf) ([#&#8203;1289](https://github.com/rust-random/rand/issues/1289)) ##### Other optimisations - Improve `SmallRng` initialization performance ([#&#8203;1482](https://github.com/rust-random/rand/issues/1482)) - Optimise SIMD widening multiply ([#&#8203;1247](https://github.com/rust-random/rand/issues/1247)) ##### Other - Add `Cargo.lock.msrv` file ([#&#8203;1275](https://github.com/rust-random/rand/issues/1275)) - Reformat with `rustfmt` and enforce ([#&#8203;1448](https://github.com/rust-random/rand/issues/1448)) - Apply Clippy suggestions and enforce ([#&#8203;1448](https://github.com/rust-random/rand/issues/1448), [#&#8203;1474](https://github.com/rust-random/rand/issues/1474)) - Move all benchmarks to new `benches` crate ([#&#8203;1329](https://github.com/rust-random/rand/issues/1329), [#&#8203;1439](https://github.com/rust-random/rand/issues/1439)) and migrate to Criterion ([#&#8203;1490](https://github.com/rust-random/rand/issues/1490)) ##### Documentation - Improve `ThreadRng` related docs ([#&#8203;1257](https://github.com/rust-random/rand/issues/1257)) - Docs: enable experimental `--generate-link-to-definition` feature ([#&#8203;1327](https://github.com/rust-random/rand/issues/1327)) - Better doc of crate features, use `doc_auto_cfg` ([#&#8203;1411](https://github.com/rust-random/rand/issues/1411), [#&#8203;1450](https://github.com/rust-random/rand/issues/1450)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMzcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjEzNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
pierre added 1 commit 2025-01-28 00:27:41 +00:00
Update Rust crate rand to 0.9.0
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
cf31ab6ecd
Author
Owner

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: virtweb_backend/Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path virtweb_backend/Cargo.toml --package rand@0.8.5 --precise 0.9.0
    Updating crates.io index
error: failed to select a version for the requirement `rand = "^0.8"`
candidate versions found which didn't match: 0.9.0
location searched: crates.io index
required by package `actix-multipart v0.7.2`
    ... which satisfies dependency `actix-multipart = "^0.7.0"` (locked to 0.7.2) of package `virtweb_backend v0.1.0 (/tmp/renovate/repos/gitea/pierre/VirtWeb/virtweb_backend)`

### ⚠️ Artifact update problem Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is. ♻ Renovate will retry this branch, including artifacts, only when one of the following happens: - any of the package files in this branch needs updating, or - the branch becomes conflicted, or - you click the rebase/retry checkbox if found above, or - you rename this PR's title to start with "rebase!" to trigger it manually The artifact failure details are included below: ##### File name: virtweb_backend/Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path virtweb_backend/Cargo.toml --package rand@0.8.5 --precise 0.9.0 Updating crates.io index error: failed to select a version for the requirement `rand = "^0.8"` candidate versions found which didn't match: 0.9.0 location searched: crates.io index required by package `actix-multipart v0.7.2` ... which satisfies dependency `actix-multipart = "^0.7.0"` (locked to 0.7.2) of package `virtweb_backend v0.1.0 (/tmp/renovate/repos/gitea/pierre/VirtWeb/virtweb_backend)` ```
Author
Owner

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

### Edited/Blocked Notification Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. ⚠️ **Warning**: custom changes will be lost.
pierre added 1 commit 2025-02-03 20:03:09 +00:00
Fix rand 0.9.0 breaking changes
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
70ca59d96f
pierre merged commit 0f84db322a into master 2025-02-03 20:10:57 +00:00
pierre deleted branch renovate/rand-0.x 2025-02-03 20:10:57 +00:00
Sign in to join this conversation.
No Reviewers
No Label
No Milestone
No project
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: pierre/VirtWeb#287
No description provided.