Skip to content

Update rand to 0.10.0#246

Open
oxide-renovate[bot] wants to merge 1 commit intomainfrom
renovate/rand
Open

Update rand to 0.10.0#246
oxide-renovate[bot] wants to merge 1 commit intomainfrom
renovate/rand

Conversation

@oxide-renovate
Copy link
Contributor

@oxide-renovate oxide-renovate bot commented Apr 1, 2025

This PR contains the following updates:

Package Type Update Change
rand (source) workspace.dependencies minor 0.8.5 -> 0.10.0
rand_core (source) workspace.dependencies minor 0.6 -> 0.10

Release Notes

rust-random/rand (rand)

v0.10.0

Compare Source

Changes
  • The dependency on rand_chacha has been replaced with a dependency on chacha20. This changes the implementation behind StdRng, but the output remains the same. There may be some API breakage when using the ChaCha-types directly as these are now the ones in chacha20 instead of rand_chacha (#​1642).
  • Rename fns IndexedRandom::choose_multiple -> sample, choose_multiple_array -> sample_array, choose_multiple_weighted -> sample_weighted, struct SliceChooseIter -> IndexedSamples and fns IteratorRandom::choose_multiple -> sample, choose_multiple_fill -> sample_fill (#​1632)
  • Use Edition 2024 and MSRV 1.85 (#​1653)
  • Let Fill be implemented for element types, not sliceable types (#​1652)
  • Fix OsError::raw_os_error on UEFI targets by returning Option<usize> (#​1665)
  • Replace fn TryRngCore::read_adapter(..) -> RngReadAdapter with simpler struct RngReader (#​1669)
  • Remove fns SeedableRng::from_os_rng, try_from_os_rng (#​1674)
  • Remove Clone support for StdRng, ReseedingRng (#​1677)
  • Use postcard instead of bincode to test the serde feature (#​1693)
  • Avoid excessive allocation in IteratorRandom::sample when amount is much larger than iterator size (#​1695)
  • Rename os_rng -> sys_rng, OsRng -> SysRng, OsError -> SysError (#​1697)
  • Rename Rng -> RngExt as upstream rand_core has renamed RngCore -> Rng (#​1717)
Additions
  • Add fns IndexedRandom::choose_iter, choose_weighted_iter (#​1632)
  • Pub export Xoshiro128PlusPlus, Xoshiro256PlusPlus prngs (#​1649)
  • Pub export ChaCha8Rng, ChaCha12Rng, ChaCha20Rng behind chacha feature (#​1659)
  • Fn rand::make_rng() -> R where R: SeedableRng (#​1734)
Removals

v0.9.2

Compare Source

Deprecated
  • Deprecate rand::rngs::mock module and StepRng generator ([#​1634])
Additions
  • Enable WeightedIndex<usize> (de)serialization ([#​1646])

v0.9.1

Compare Source

Security and unsafe
  • Revise "not a crypto library" policy again (#​1565)
  • Remove zerocopy dependency from rand (#​1579)
Fixes
  • Fix feature simd_support for recent nightly rust (#​1586)
Changes
  • Allow fn rand::seq::index::sample_weighted and fn IndexedRandom::choose_multiple_weighted to return fewer than amount results (#​1623), reverting an undocumented change ([#​1382]) to the previous release.
Additions
  • Add rand::distr::Alphabetic distribution. (#​1587)
  • Re-export rand_core (#​1604)

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)
rust-random/rand_core (rand_core)

v0.10.0

This release makes a number of significant changes which we hope will be the
last significant breakage before 1.0. Code has moved from the rust-random/rand
repository to its own rust-random/rand_core.

User-facing API changes
Changed
  • Edition changed to 2024 and MSRV bumped to 1.85 (rand#1668)
  • RngCore and TryRngCore are renamed to Rng and TryRng respectively (#​54)
  • Rng is now an extension trait of TryRng<Error = Infallible> (#​45)
  • TryRng::Error is bound on core::error::Error instead of Debug + Display (#​58)
  • Relax Sized bound on impls of SeedableRng (rand#1641)
Added
  • SeedableRng::{fork, try_fork} methods (#​17)
  • Re-export of core::convert::Infallible (#​56)
Removed
  • TryRng::read_adapter method (replaced with rand::RngReader) (rand#1669)
  • os_rng crate feature (rand#1674)
  • OsRng and OsError structs (rand#1674)
  • SeedableRng::from_os_rng and SeedableRng::try_from_os_rng methods (rand#1674)
  • getrandom dependency (rand#1674)
  • std crate feature (rand#1674)
  • Optional serde dependency (#​28)
  • UnwrapMut struct and Rng::unwrap_mut method (#​45)
  • Rng::unwrap_err method in favor of explicit wrapping in UnwrapErr (#​53)
API changes to PRNG implementation helpers
Added
  • BlockRng::reconstruct and BlockRng::remaining_results methods (#​36)
  • block::Generator::drop method (#​35)
  • BlockRng::word_offset method (#​44)
Changed
  • Replaced le helper functions with new utils helpers (rand#1667, #​34, #​38, #​45)
  • Rename BlockRng::generate_and_set method to reset_and_skip (#​44)
  • Rename block::BlockRngCore trait to block::Generator (#​26)
  • Rename BlockRngCore::Results associated type to Output and remove type bounds on it (#​26)
Removed
  • Implementation of Rng for BlockRng, making the latter more generic (#​34)
  • BlockRng64 struct (#​34)
  • BlockRng::reset method (#​44)
  • BlockRng::index method (replaced with BlockRng::word_offset) (#​44)
  • Generator::Item associated type (#​26)
  • CryptoBlockRng (#​69)

v0.9.4

Compare Source

v0.9.3

Compare Source

This release makes a number of significant changes which we hope will be the
last significant breakage before 1.0. Code has moved from the rust-random/rand
repository to its own rust-random/rand_core.

User-facing API changes
Changed
  • Edition changed to 2024 and MSRV bumped to 1.85 (rand#1668)
  • RngCore and TryRngCore are renamed to Rng and TryRng respectively (#​54)
  • Rng is now an extension trait of TryRng<Error = Infallible> (#​45)
  • TryRng::Error is bound on core::error::Error instead of Debug + Display (#​58)
  • Relax Sized bound on impls of SeedableRng (rand#1641)
Added
  • SeedableRng::{fork, try_fork} methods (#​17)
  • Re-export of core::convert::Infallible (#​56)
Removed
  • TryRng::read_adapter method (replaced with rand::RngReader) (rand#1669)
  • os_rng crate feature (rand#1674)
  • OsRng and OsError structs (rand#1674)
  • SeedableRng::from_os_rng and SeedableRng::try_from_os_rng methods (rand#1674)
  • getrandom dependency (rand#1674)
  • std crate feature (rand#1674)
  • Optional serde dependency (#​28)
  • UnwrapMut struct and Rng::unwrap_mut method (#​45)
  • Rng::unwrap_err method in favor of explicit wrapping in UnwrapErr (#​53)
API changes to PRNG implementation helpers
Added
  • BlockRng::reconstruct and BlockRng::remaining_results methods (#​36)
  • block::Generator::drop method (#​35)
  • BlockRng::word_offset method (#​44)
Changed
  • Replaced le helper functions with new utils helpers (rand#1667, #​34, #​38, #​45)
  • Rename BlockRng::generate_and_set method to reset_and_skip (#​44)
  • Rename block::BlockRngCore trait to block::Generator (#​26)
  • Rename BlockRngCore::Results associated type to Output and remove type bounds on it (#​26)
Removed
  • Implementation of Rng for BlockRng, making the latter more generic (#​34)
  • BlockRng64 struct (#​34)
  • BlockRng::reset method (#​44)
  • BlockRng::index method (replaced with BlockRng::word_offset) (#​44)
  • Generator::Item associated type (#​26)
  • CryptoBlockRng (#​69)

v0.9.2

Compare Source

Other
  • Remove zerocopy dependency (rand#1607)
  • Deprecate rand_core::impls::fill_via_u32_chunks, fill_via_u64_chunks (rand#1607)

v0.9.1

Compare Source

API changes
  • Relax Sized bound on impls of TryRngCore, TryCryptoRng and UnwrapMut (rand#1593)
  • Add UnwrapMut::re to reborrow the inner rng with a tighter lifetime (rand#1595)

v0.9.0

Compare Source

API changes
  • Add TryRngCore::unwrap_mut, providing an impl of RngCore over &mut rng (rand#1589)

Configuration

📅 Schedule: Branch creation - "after 8pm,before 6am" in timezone America/Los_Angeles, Automerge - "after 8pm,before 6am" in timezone America/Los_Angeles.

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

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


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

This PR has been generated by Renovate Bot.

@oxide-renovate oxide-renovate bot added the dependencies Pull requests that update a dependency file label Apr 1, 2025
@oxide-renovate
Copy link
Contributor Author

oxide-renovate bot commented Apr 1, 2025

⚠️ 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: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --package rand@0.8.5 --precise 0.10.0
    Updating crates.io index
    Updating git repository `https://github.com/oxidecomputer/async-bb8-diesel`
From https://github.com/oxidecomputer/async-bb8-diesel
 * [new ref]         f049570ff89080b2385c637af4c0e614b0a124a4 -> refs/commit/f049570ff89080b2385c637af4c0e614b0a124a4
error: failed to select a version for `rand_core`.
    ... required by package `v-api v0.1.0 (/tmp/renovate/repos/github/oxidecomputer/v-api/v-api)`
versions that meet the requirements `^0.10` are: 0.10.0

package `v-api` depends on `rand_core` with feature `std` but `rand_core` does not have that feature.


failed to select a version for `rand_core` which could resolve this conflict

@oxide-renovate oxide-renovate bot force-pushed the renovate/rand branch 2 times, most recently from 4947f95 to a5d27e8 Compare April 10, 2025 03:08
@oxide-renovate oxide-renovate bot force-pushed the renovate/rand branch 2 times, most recently from 83a7580 to fd72f51 Compare April 24, 2025 03:14
@oxide-renovate oxide-renovate bot force-pushed the renovate/rand branch 2 times, most recently from b939461 to 0315e77 Compare June 11, 2025 03:33
@oxide-renovate oxide-renovate bot force-pushed the renovate/rand branch 4 times, most recently from d68813b to d08a00e Compare July 3, 2025 15:03
@oxide-renovate oxide-renovate bot force-pushed the renovate/rand branch 2 times, most recently from 25a9895 to ce684ea Compare July 21, 2025 03:07
@oxide-renovate oxide-renovate bot force-pushed the renovate/rand branch 4 times, most recently from f900940 to fca5b26 Compare July 31, 2025 03:04
@oxide-renovate oxide-renovate bot force-pushed the renovate/rand branch 3 times, most recently from ff11945 to 8d753e7 Compare August 8, 2025 03:04
@oxide-renovate oxide-renovate bot force-pushed the renovate/rand branch 3 times, most recently from 6706c7c to b6de8f5 Compare August 14, 2025 03:35
@oxide-renovate oxide-renovate bot force-pushed the renovate/rand branch 2 times, most recently from 9a1d5b7 to 34d7377 Compare November 4, 2025 04:17
@oxide-renovate oxide-renovate bot force-pushed the renovate/rand branch 3 times, most recently from 7dc0c21 to f508b45 Compare January 8, 2026 04:28
@oxide-renovate oxide-renovate bot force-pushed the renovate/rand branch 3 times, most recently from 271eaba to da1247d Compare January 28, 2026 04:35
@oxide-renovate oxide-renovate bot changed the title Update rand Update rand to 0.10.0 Feb 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants