Skip to content

Bump the MSRV to 1.85 - #1653

Merged
dhardy merged 4 commits into
masterfrom
push-tpslkyqlosnn
Sep 4, 2025
Merged

Bump the MSRV to 1.85#1653
dhardy merged 4 commits into
masterfrom
push-tpslkyqlosnn

Conversation

@dhardy

Copy link
Copy Markdown
Member
  • Added a CHANGELOG.md entry

Summary

Bump the MSRV to 1.85 (except rand_chacha which we plan to replace).

Motivation

#1642 requires this MSRV bump. #1632 requires at least 1.75.

@dhardy
dhardy requested a review from newpavlovAugust 12, 2025 13:13
@benjamin-lieser

benjamin-lieser commented Aug 13, 2025

Copy link
Copy Markdown
Member

Should this also be in a 0.9.x version? I guess not, seeing the changelogs.
I would say 1.85 is a bit too recent for a patch update.

Are we planning for a 0.10 release of rand_core? I understood it we want to release rand 0.10 with rand_core 0.9 and not have rand_core 0.10 for now.

@dhardy

Copy link
Copy Markdown
MemberAuthor

Should this also be in a 0.9.x version? I guess not, seeing the changelogs.

No, this is for v0.10. I wanted to make a pre-release using chacha20, but we may not be ready to do that yet.

Are we planning for a 0.10 release of rand_core? I understood it we want to release rand 0.10 with rand_core 0.9 and not have rand_core 0.10 for now.

Good point.

So should we keep the old MSRV for rand_core (and maybe some of the other crates)? I guess then we should... which means that we need two CI paths for MSRV tests.

Comment threadCHANGELOG.md Outdated
@newpavlov

Copy link
Copy Markdown
Member

So should we keep the old MSRV for rand_core (and maybe some of the other crates)?

Probably, yes. It would allow us to explicitly relax the MSRV policy to allow MSRV bumps in patch releases because of the MSRV-aware resolver. It may be even worth to release getrandom v0.4, not only to relax MSRV policy, but also to remove the built-in Web WASM support in favor of the custom fallback approach.

@dhardy

Copy link
Copy Markdown
MemberAuthor

@newpavlov how does keeping some crates on rustc 1.63 help us relax the MSRV policy? The new resolver isn't available until 1.84.

No comment on getrandom here except that the plan is to not make a breaking release of rand_core for now, hence we'd have to evaluate whether upgrading to getrandom v0.4 would be a breaking change for users of rand_core.

@newpavlov

Copy link
Copy Markdown
Member

Sorry, I misread your comment. I thought you suggested to cut new releases of rand_core with MSRV bumped to 1.85.

@dhardy

Copy link
Copy Markdown
MemberAuthor

Looks like we can't test rand_core with rustc 1.63 once other crates are updated:

$ cargo +1.63 test --all-features
error: failed to parse manifest at `/home/dhardy/projects/rand/rand/Cargo.toml`
Caused by:
failed to parse the `edition` key
Caused by:
this version of Cargo is older than the `2024` edition, and only supports `2015`, `2018`, and `2021` editions.

The rust-version update isn't an issue but the edition update is.

Solutions:

  1. Don't test the rand_core MSRV. Not ideal but might be the least-worst option.
  2. Re-organise so that rand is in a sub-directory and the top-level Cargo.toml only lists workspace members. Untested. Undesirable because of conflicts and overhead when tracking other changes.

@dhardy

Copy link
Copy Markdown
MemberAuthor

I removed all changes to rand_core (only code change was a Clippy suggestion + reformat).

rand_core is tested only on the same MSRV as every other crate due to the issue noted above.

@newpavlov

newpavlov commented Sep 3, 2025

Copy link
Copy Markdown
Member

Solutions:

You forgot about cutting new breaking release of rand_core with MSRV 1.85. :)

As a practical solution we also could modify the MSRV job to remove the crate from the workspace by executing rm Cargo.toml && cd rand_core/.

@dhardy

Copy link
Copy Markdown
MemberAuthor

You forgot about cutting new breaking release of rand_core with MSRV 1.85. :)

It would be simpler.

Motivation to persist with rand_core v0.9: upgrades to rand v0.10 will be easier for people who can't just upgrade everything at once. I don't think this affects a lot of people, but rand_core_compat exists for a reason.

Motivation not to update the MSRV for the next rand_core point release: while I can conceive of a scenario where this might be an issue, it's hard to imagine why someone would need to use the latest rand_core version with an old rustc version. It seems unlikely we'll need a new rand_core point release anyway.

Overall I'm tempted to leave rand_core unchanged: no special 1.63 test, no upgrade to Edition 2024 or the latest MSRV.

@dhardy
dhardy merged commit 052b80f into masterSep 4, 2025
16 checks passed
@dhardy
dhardy deleted the push-tpslkyqlosnn branch September 4, 2025 07:52
@dhardydhardy mentioned this pull request Sep 8, 2025
1 task
@dhardydhardy mentioned this pull request Sep 10, 2025
kodiakhqBot pushed a commit to pdylanross/fatigue that referenced this pull request Jun 25, 2026
Bumps rand from 0.9.4 to 0.10.1.
Changelog
Sourced from rand's changelog.
[0.10.1] — 2026-02-11
This release includes a fix for a soundness bug; see #1763.
Changes
Document panic behavior of make_rng and add #[track_caller] (#1761)
Deprecate feature log (#1763)
#1761: rust-random/rand#1761
#1763: rust-random/rand#1763
[0.10.0] - 2026-02-08
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
Removed ReseedingRng (#1722)
Removed unused feature "nightly" (#1732)
Removed feature small_rng (#1732)
#1632: rust-random/rand#1632
#1642: rust-random/rand#1642
#1649: rust-random/rand#1649
#1652: rust-random/rand#1652
#1653: rust-random/rand#1653
#1659: rust-random/rand#1659
#1665: rust-random/rand#1665
#1669: rust-random/rand#1669
#1674: rust-random/rand#1674
#1677: rust-random/rand#1677
#1693: rust-random/rand#1693
#1695: rust-random/rand#1695
#1697: rust-random/rand#1697
... (truncated)
Commits
27ff4cb Prepare v0.10.1: deprecate feature log (#1763)
98d0638 make_rng: document panic and add #[track_caller] (#1761)
54e5eaa Fix doc error (#1758)
1ce4c08 Bump itoa from 1.0.17 to 1.0.18 in the all-deps group (#1756)
ccb734b docs: fix typo in doc comment (#1754)
357eb7d Bump libc from 0.2.182 to 0.2.183 in the all-deps group (#1753)
5e77fe5 Fix trait references in documentation (#1752)
da89185 Bump the all-deps group with 3 updates (#1751)
50516ff Bump the all-deps group with 2 updates (#1749)
fd71de9 Bump the all-deps group with 2 updates (#1747)
Additional commits viewable in compare view
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@dhardy@benjamin-lieser@newpavlov
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Bump the MSRV to 1.85 by dhardy · Pull Request #1653 · rust-random/rand · GitHub
Skip to content

Bump the MSRV to 1.85 - #1653

Merged
dhardy merged 4 commits into
masterfrom
push-tpslkyqlosnn
Sep 4, 2025
Merged

Bump the MSRV to 1.85#1653
dhardy merged 4 commits into
masterfrom
push-tpslkyqlosnn

Conversation

@dhardy

Copy link
Copy Markdown
Member
  • Added a CHANGELOG.md entry

Summary

Bump the MSRV to 1.85 (except rand_chacha which we plan to replace).

Motivation

#1642 requires this MSRV bump. #1632 requires at least 1.75.

@dhardy
dhardy requested a review from newpavlovAugust 12, 2025 13:13
@benjamin-lieser

benjamin-lieser commented Aug 13, 2025

Copy link
Copy Markdown
Member

Should this also be in a 0.9.x version? I guess not, seeing the changelogs.
I would say 1.85 is a bit too recent for a patch update.

Are we planning for a 0.10 release of rand_core? I understood it we want to release rand 0.10 with rand_core 0.9 and not have rand_core 0.10 for now.

@dhardy

Copy link
Copy Markdown
MemberAuthor

Should this also be in a 0.9.x version? I guess not, seeing the changelogs.

No, this is for v0.10. I wanted to make a pre-release using chacha20, but we may not be ready to do that yet.

Are we planning for a 0.10 release of rand_core? I understood it we want to release rand 0.10 with rand_core 0.9 and not have rand_core 0.10 for now.

Good point.

So should we keep the old MSRV for rand_core (and maybe some of the other crates)? I guess then we should... which means that we need two CI paths for MSRV tests.

Comment threadCHANGELOG.md Outdated
@newpavlov

Copy link
Copy Markdown
Member

So should we keep the old MSRV for rand_core (and maybe some of the other crates)?

Probably, yes. It would allow us to explicitly relax the MSRV policy to allow MSRV bumps in patch releases because of the MSRV-aware resolver. It may be even worth to release getrandom v0.4, not only to relax MSRV policy, but also to remove the built-in Web WASM support in favor of the custom fallback approach.

@dhardy

Copy link
Copy Markdown
MemberAuthor

@newpavlov how does keeping some crates on rustc 1.63 help us relax the MSRV policy? The new resolver isn't available until 1.84.

No comment on getrandom here except that the plan is to not make a breaking release of rand_core for now, hence we'd have to evaluate whether upgrading to getrandom v0.4 would be a breaking change for users of rand_core.

@newpavlov

Copy link
Copy Markdown
Member

Sorry, I misread your comment. I thought you suggested to cut new releases of rand_core with MSRV bumped to 1.85.

@dhardy

Copy link
Copy Markdown
MemberAuthor

Looks like we can't test rand_core with rustc 1.63 once other crates are updated:

$ cargo +1.63 test --all-features
error: failed to parse manifest at `/home/dhardy/projects/rand/rand/Cargo.toml`
Caused by:
failed to parse the `edition` key
Caused by:
this version of Cargo is older than the `2024` edition, and only supports `2015`, `2018`, and `2021` editions.

The rust-version update isn't an issue but the edition update is.

Solutions:

  1. Don't test the rand_core MSRV. Not ideal but might be the least-worst option.
  2. Re-organise so that rand is in a sub-directory and the top-level Cargo.toml only lists workspace members. Untested. Undesirable because of conflicts and overhead when tracking other changes.

@dhardy

Copy link
Copy Markdown
MemberAuthor

I removed all changes to rand_core (only code change was a Clippy suggestion + reformat).

rand_core is tested only on the same MSRV as every other crate due to the issue noted above.

@newpavlov

newpavlov commented Sep 3, 2025

Copy link
Copy Markdown
Member

Solutions:

You forgot about cutting new breaking release of rand_core with MSRV 1.85. :)

As a practical solution we also could modify the MSRV job to remove the crate from the workspace by executing rm Cargo.toml && cd rand_core/.

@dhardy

Copy link
Copy Markdown
MemberAuthor

You forgot about cutting new breaking release of rand_core with MSRV 1.85. :)

It would be simpler.

Motivation to persist with rand_core v0.9: upgrades to rand v0.10 will be easier for people who can't just upgrade everything at once. I don't think this affects a lot of people, but rand_core_compat exists for a reason.

Motivation not to update the MSRV for the next rand_core point release: while I can conceive of a scenario where this might be an issue, it's hard to imagine why someone would need to use the latest rand_core version with an old rustc version. It seems unlikely we'll need a new rand_core point release anyway.

Overall I'm tempted to leave rand_core unchanged: no special 1.63 test, no upgrade to Edition 2024 or the latest MSRV.

@dhardy
dhardy merged commit 052b80f into masterSep 4, 2025
16 checks passed
@dhardy
dhardy deleted the push-tpslkyqlosnn branch September 4, 2025 07:52
@dhardydhardy mentioned this pull request Sep 8, 2025
1 task
@dhardydhardy mentioned this pull request Sep 10, 2025
kodiakhqBot pushed a commit to pdylanross/fatigue that referenced this pull request Jun 25, 2026
Bumps rand from 0.9.4 to 0.10.1.
Changelog
Sourced from rand's changelog.
[0.10.1] — 2026-02-11
This release includes a fix for a soundness bug; see #1763.
Changes
Document panic behavior of make_rng and add #[track_caller] (#1761)
Deprecate feature log (#1763)
#1761: rust-random/rand#1761
#1763: rust-random/rand#1763
[0.10.0] - 2026-02-08
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
Removed ReseedingRng (#1722)
Removed unused feature "nightly" (#1732)
Removed feature small_rng (#1732)
#1632: rust-random/rand#1632
#1642: rust-random/rand#1642
#1649: rust-random/rand#1649
#1652: rust-random/rand#1652
#1653: rust-random/rand#1653
#1659: rust-random/rand#1659
#1665: rust-random/rand#1665
#1669: rust-random/rand#1669
#1674: rust-random/rand#1674
#1677: rust-random/rand#1677
#1693: rust-random/rand#1693
#1695: rust-random/rand#1695
#1697: rust-random/rand#1697
... (truncated)
Commits
27ff4cb Prepare v0.10.1: deprecate feature log (#1763)
98d0638 make_rng: document panic and add #[track_caller] (#1761)
54e5eaa Fix doc error (#1758)
1ce4c08 Bump itoa from 1.0.17 to 1.0.18 in the all-deps group (#1756)
ccb734b docs: fix typo in doc comment (#1754)
357eb7d Bump libc from 0.2.182 to 0.2.183 in the all-deps group (#1753)
5e77fe5 Fix trait references in documentation (#1752)
da89185 Bump the all-deps group with 3 updates (#1751)
50516ff Bump the all-deps group with 2 updates (#1749)
fd71de9 Bump the all-deps group with 2 updates (#1747)
Additional commits viewable in compare view
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@dhardy@benjamin-lieser@newpavlov
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Bump the MSRV to 1.85 by dhardy · Pull Request #1653 · rust-random/rand · GitHub
Skip to content

Bump the MSRV to 1.85 - #1653

Merged
dhardy merged 4 commits into
masterfrom
push-tpslkyqlosnn
Sep 4, 2025
Merged

Bump the MSRV to 1.85#1653
dhardy merged 4 commits into
masterfrom
push-tpslkyqlosnn

Conversation

@dhardy

Copy link
Copy Markdown
Member
  • Added a CHANGELOG.md entry

Summary

Bump the MSRV to 1.85 (except rand_chacha which we plan to replace).

Motivation

#1642 requires this MSRV bump. #1632 requires at least 1.75.

@dhardy
dhardy requested a review from newpavlovAugust 12, 2025 13:13
@benjamin-lieser

benjamin-lieser commented Aug 13, 2025

Copy link
Copy Markdown
Member

Should this also be in a 0.9.x version? I guess not, seeing the changelogs.
I would say 1.85 is a bit too recent for a patch update.

Are we planning for a 0.10 release of rand_core? I understood it we want to release rand 0.10 with rand_core 0.9 and not have rand_core 0.10 for now.

@dhardy

Copy link
Copy Markdown
MemberAuthor

Should this also be in a 0.9.x version? I guess not, seeing the changelogs.

No, this is for v0.10. I wanted to make a pre-release using chacha20, but we may not be ready to do that yet.

Are we planning for a 0.10 release of rand_core? I understood it we want to release rand 0.10 with rand_core 0.9 and not have rand_core 0.10 for now.

Good point.

So should we keep the old MSRV for rand_core (and maybe some of the other crates)? I guess then we should... which means that we need two CI paths for MSRV tests.

Comment threadCHANGELOG.md Outdated
@newpavlov

Copy link
Copy Markdown
Member

So should we keep the old MSRV for rand_core (and maybe some of the other crates)?

Probably, yes. It would allow us to explicitly relax the MSRV policy to allow MSRV bumps in patch releases because of the MSRV-aware resolver. It may be even worth to release getrandom v0.4, not only to relax MSRV policy, but also to remove the built-in Web WASM support in favor of the custom fallback approach.

@dhardy

Copy link
Copy Markdown
MemberAuthor

@newpavlov how does keeping some crates on rustc 1.63 help us relax the MSRV policy? The new resolver isn't available until 1.84.

No comment on getrandom here except that the plan is to not make a breaking release of rand_core for now, hence we'd have to evaluate whether upgrading to getrandom v0.4 would be a breaking change for users of rand_core.

@newpavlov

Copy link
Copy Markdown
Member

Sorry, I misread your comment. I thought you suggested to cut new releases of rand_core with MSRV bumped to 1.85.

@dhardy

Copy link
Copy Markdown
MemberAuthor

Looks like we can't test rand_core with rustc 1.63 once other crates are updated:

$ cargo +1.63 test --all-features
error: failed to parse manifest at `/home/dhardy/projects/rand/rand/Cargo.toml`
Caused by:
failed to parse the `edition` key
Caused by:
this version of Cargo is older than the `2024` edition, and only supports `2015`, `2018`, and `2021` editions.

The rust-version update isn't an issue but the edition update is.

Solutions:

  1. Don't test the rand_core MSRV. Not ideal but might be the least-worst option.
  2. Re-organise so that rand is in a sub-directory and the top-level Cargo.toml only lists workspace members. Untested. Undesirable because of conflicts and overhead when tracking other changes.

@dhardy

Copy link
Copy Markdown
MemberAuthor

I removed all changes to rand_core (only code change was a Clippy suggestion + reformat).

rand_core is tested only on the same MSRV as every other crate due to the issue noted above.

@newpavlov

newpavlov commented Sep 3, 2025

Copy link
Copy Markdown
Member

Solutions:

You forgot about cutting new breaking release of rand_core with MSRV 1.85. :)

As a practical solution we also could modify the MSRV job to remove the crate from the workspace by executing rm Cargo.toml && cd rand_core/.

@dhardy

Copy link
Copy Markdown
MemberAuthor

You forgot about cutting new breaking release of rand_core with MSRV 1.85. :)

It would be simpler.

Motivation to persist with rand_core v0.9: upgrades to rand v0.10 will be easier for people who can't just upgrade everything at once. I don't think this affects a lot of people, but rand_core_compat exists for a reason.

Motivation not to update the MSRV for the next rand_core point release: while I can conceive of a scenario where this might be an issue, it's hard to imagine why someone would need to use the latest rand_core version with an old rustc version. It seems unlikely we'll need a new rand_core point release anyway.

Overall I'm tempted to leave rand_core unchanged: no special 1.63 test, no upgrade to Edition 2024 or the latest MSRV.

@dhardy
dhardy merged commit 052b80f into masterSep 4, 2025
16 checks passed
@dhardy
dhardy deleted the push-tpslkyqlosnn branch September 4, 2025 07:52
@dhardydhardy mentioned this pull request Sep 8, 2025
1 task
@dhardydhardy mentioned this pull request Sep 10, 2025
kodiakhqBot pushed a commit to pdylanross/fatigue that referenced this pull request Jun 25, 2026
Bumps rand from 0.9.4 to 0.10.1.
Changelog
Sourced from rand's changelog.
[0.10.1] — 2026-02-11
This release includes a fix for a soundness bug; see #1763.
Changes
Document panic behavior of make_rng and add #[track_caller] (#1761)
Deprecate feature log (#1763)
#1761: rust-random/rand#1761
#1763: rust-random/rand#1763
[0.10.0] - 2026-02-08
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
Removed ReseedingRng (#1722)
Removed unused feature "nightly" (#1732)
Removed feature small_rng (#1732)
#1632: rust-random/rand#1632
#1642: rust-random/rand#1642
#1649: rust-random/rand#1649
#1652: rust-random/rand#1652
#1653: rust-random/rand#1653
#1659: rust-random/rand#1659
#1665: rust-random/rand#1665
#1669: rust-random/rand#1669
#1674: rust-random/rand#1674
#1677: rust-random/rand#1677
#1693: rust-random/rand#1693
#1695: rust-random/rand#1695
#1697: rust-random/rand#1697
... (truncated)
Commits
27ff4cb Prepare v0.10.1: deprecate feature log (#1763)
98d0638 make_rng: document panic and add #[track_caller] (#1761)
54e5eaa Fix doc error (#1758)
1ce4c08 Bump itoa from 1.0.17 to 1.0.18 in the all-deps group (#1756)
ccb734b docs: fix typo in doc comment (#1754)
357eb7d Bump libc from 0.2.182 to 0.2.183 in the all-deps group (#1753)
5e77fe5 Fix trait references in documentation (#1752)
da89185 Bump the all-deps group with 3 updates (#1751)
50516ff Bump the all-deps group with 2 updates (#1749)
fd71de9 Bump the all-deps group with 2 updates (#1747)
Additional commits viewable in compare view
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@dhardy@benjamin-lieser@newpavlov
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Bump the MSRV to 1.85 by dhardy · Pull Request #1653 · rust-random/rand · GitHub
Skip to content

Bump the MSRV to 1.85 - #1653

Merged
dhardy merged 4 commits into
masterfrom
push-tpslkyqlosnn
Sep 4, 2025
Merged

Bump the MSRV to 1.85#1653
dhardy merged 4 commits into
masterfrom
push-tpslkyqlosnn

Conversation

@dhardy

Copy link
Copy Markdown
Member
  • Added a CHANGELOG.md entry

Summary

Bump the MSRV to 1.85 (except rand_chacha which we plan to replace).

Motivation

#1642 requires this MSRV bump. #1632 requires at least 1.75.

@dhardy
dhardy requested a review from newpavlovAugust 12, 2025 13:13
@benjamin-lieser

benjamin-lieser commented Aug 13, 2025

Copy link
Copy Markdown
Member

Should this also be in a 0.9.x version? I guess not, seeing the changelogs.
I would say 1.85 is a bit too recent for a patch update.

Are we planning for a 0.10 release of rand_core? I understood it we want to release rand 0.10 with rand_core 0.9 and not have rand_core 0.10 for now.

@dhardy

Copy link
Copy Markdown
MemberAuthor

Should this also be in a 0.9.x version? I guess not, seeing the changelogs.

No, this is for v0.10. I wanted to make a pre-release using chacha20, but we may not be ready to do that yet.

Are we planning for a 0.10 release of rand_core? I understood it we want to release rand 0.10 with rand_core 0.9 and not have rand_core 0.10 for now.

Good point.

So should we keep the old MSRV for rand_core (and maybe some of the other crates)? I guess then we should... which means that we need two CI paths for MSRV tests.

Comment threadCHANGELOG.md Outdated
@newpavlov

Copy link
Copy Markdown
Member

So should we keep the old MSRV for rand_core (and maybe some of the other crates)?

Probably, yes. It would allow us to explicitly relax the MSRV policy to allow MSRV bumps in patch releases because of the MSRV-aware resolver. It may be even worth to release getrandom v0.4, not only to relax MSRV policy, but also to remove the built-in Web WASM support in favor of the custom fallback approach.

@dhardy

Copy link
Copy Markdown
MemberAuthor

@newpavlov how does keeping some crates on rustc 1.63 help us relax the MSRV policy? The new resolver isn't available until 1.84.

No comment on getrandom here except that the plan is to not make a breaking release of rand_core for now, hence we'd have to evaluate whether upgrading to getrandom v0.4 would be a breaking change for users of rand_core.

@newpavlov

Copy link
Copy Markdown
Member

Sorry, I misread your comment. I thought you suggested to cut new releases of rand_core with MSRV bumped to 1.85.

@dhardy

Copy link
Copy Markdown
MemberAuthor

Looks like we can't test rand_core with rustc 1.63 once other crates are updated:

$ cargo +1.63 test --all-features
error: failed to parse manifest at `/home/dhardy/projects/rand/rand/Cargo.toml`
Caused by:
failed to parse the `edition` key
Caused by:
this version of Cargo is older than the `2024` edition, and only supports `2015`, `2018`, and `2021` editions.

The rust-version update isn't an issue but the edition update is.

Solutions:

  1. Don't test the rand_core MSRV. Not ideal but might be the least-worst option.
  2. Re-organise so that rand is in a sub-directory and the top-level Cargo.toml only lists workspace members. Untested. Undesirable because of conflicts and overhead when tracking other changes.

@dhardy

Copy link
Copy Markdown
MemberAuthor

I removed all changes to rand_core (only code change was a Clippy suggestion + reformat).

rand_core is tested only on the same MSRV as every other crate due to the issue noted above.

@newpavlov

newpavlov commented Sep 3, 2025

Copy link
Copy Markdown
Member

Solutions:

You forgot about cutting new breaking release of rand_core with MSRV 1.85. :)

As a practical solution we also could modify the MSRV job to remove the crate from the workspace by executing rm Cargo.toml && cd rand_core/.

@dhardy

Copy link
Copy Markdown
MemberAuthor

You forgot about cutting new breaking release of rand_core with MSRV 1.85. :)

It would be simpler.

Motivation to persist with rand_core v0.9: upgrades to rand v0.10 will be easier for people who can't just upgrade everything at once. I don't think this affects a lot of people, but rand_core_compat exists for a reason.

Motivation not to update the MSRV for the next rand_core point release: while I can conceive of a scenario where this might be an issue, it's hard to imagine why someone would need to use the latest rand_core version with an old rustc version. It seems unlikely we'll need a new rand_core point release anyway.

Overall I'm tempted to leave rand_core unchanged: no special 1.63 test, no upgrade to Edition 2024 or the latest MSRV.

@dhardy
dhardy merged commit 052b80f into masterSep 4, 2025
16 checks passed
@dhardy
dhardy deleted the push-tpslkyqlosnn branch September 4, 2025 07:52
@dhardydhardy mentioned this pull request Sep 8, 2025
1 task
@dhardydhardy mentioned this pull request Sep 10, 2025
kodiakhqBot pushed a commit to pdylanross/fatigue that referenced this pull request Jun 25, 2026
Bumps rand from 0.9.4 to 0.10.1.
Changelog
Sourced from rand's changelog.
[0.10.1] — 2026-02-11
This release includes a fix for a soundness bug; see #1763.
Changes
Document panic behavior of make_rng and add #[track_caller] (#1761)
Deprecate feature log (#1763)
#1761: rust-random/rand#1761
#1763: rust-random/rand#1763
[0.10.0] - 2026-02-08
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
Removed ReseedingRng (#1722)
Removed unused feature "nightly" (#1732)
Removed feature small_rng (#1732)
#1632: rust-random/rand#1632
#1642: rust-random/rand#1642
#1649: rust-random/rand#1649
#1652: rust-random/rand#1652
#1653: rust-random/rand#1653
#1659: rust-random/rand#1659
#1665: rust-random/rand#1665
#1669: rust-random/rand#1669
#1674: rust-random/rand#1674
#1677: rust-random/rand#1677
#1693: rust-random/rand#1693
#1695: rust-random/rand#1695
#1697: rust-random/rand#1697
... (truncated)
Commits
27ff4cb Prepare v0.10.1: deprecate feature log (#1763)
98d0638 make_rng: document panic and add #[track_caller] (#1761)
54e5eaa Fix doc error (#1758)
1ce4c08 Bump itoa from 1.0.17 to 1.0.18 in the all-deps group (#1756)
ccb734b docs: fix typo in doc comment (#1754)
357eb7d Bump libc from 0.2.182 to 0.2.183 in the all-deps group (#1753)
5e77fe5 Fix trait references in documentation (#1752)
da89185 Bump the all-deps group with 3 updates (#1751)
50516ff Bump the all-deps group with 2 updates (#1749)
fd71de9 Bump the all-deps group with 2 updates (#1747)
Additional commits viewable in compare view
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@dhardy@benjamin-lieser@newpavlov
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Bump the MSRV to 1.85 by dhardy · Pull Request #1653 · rust-random/rand · GitHub
Skip to content

Bump the MSRV to 1.85 - #1653

Merged
dhardy merged 4 commits into
masterfrom
push-tpslkyqlosnn
Sep 4, 2025
Merged

Bump the MSRV to 1.85#1653
dhardy merged 4 commits into
masterfrom
push-tpslkyqlosnn

Conversation

@dhardy

Copy link
Copy Markdown
Member
  • Added a CHANGELOG.md entry

Summary

Bump the MSRV to 1.85 (except rand_chacha which we plan to replace).

Motivation

#1642 requires this MSRV bump. #1632 requires at least 1.75.

@dhardy
dhardy requested a review from newpavlovAugust 12, 2025 13:13
@benjamin-lieser

benjamin-lieser commented Aug 13, 2025

Copy link
Copy Markdown
Member

Should this also be in a 0.9.x version? I guess not, seeing the changelogs.
I would say 1.85 is a bit too recent for a patch update.

Are we planning for a 0.10 release of rand_core? I understood it we want to release rand 0.10 with rand_core 0.9 and not have rand_core 0.10 for now.

@dhardy

Copy link
Copy Markdown
MemberAuthor

Should this also be in a 0.9.x version? I guess not, seeing the changelogs.

No, this is for v0.10. I wanted to make a pre-release using chacha20, but we may not be ready to do that yet.

Are we planning for a 0.10 release of rand_core? I understood it we want to release rand 0.10 with rand_core 0.9 and not have rand_core 0.10 for now.

Good point.

So should we keep the old MSRV for rand_core (and maybe some of the other crates)? I guess then we should... which means that we need two CI paths for MSRV tests.

Comment threadCHANGELOG.md Outdated
@newpavlov

Copy link
Copy Markdown
Member

So should we keep the old MSRV for rand_core (and maybe some of the other crates)?

Probably, yes. It would allow us to explicitly relax the MSRV policy to allow MSRV bumps in patch releases because of the MSRV-aware resolver. It may be even worth to release getrandom v0.4, not only to relax MSRV policy, but also to remove the built-in Web WASM support in favor of the custom fallback approach.

@dhardy

Copy link
Copy Markdown
MemberAuthor

@newpavlov how does keeping some crates on rustc 1.63 help us relax the MSRV policy? The new resolver isn't available until 1.84.

No comment on getrandom here except that the plan is to not make a breaking release of rand_core for now, hence we'd have to evaluate whether upgrading to getrandom v0.4 would be a breaking change for users of rand_core.

@newpavlov

Copy link
Copy Markdown
Member

Sorry, I misread your comment. I thought you suggested to cut new releases of rand_core with MSRV bumped to 1.85.

@dhardy

Copy link
Copy Markdown
MemberAuthor

Looks like we can't test rand_core with rustc 1.63 once other crates are updated:

$ cargo +1.63 test --all-features
error: failed to parse manifest at `/home/dhardy/projects/rand/rand/Cargo.toml`
Caused by:
failed to parse the `edition` key
Caused by:
this version of Cargo is older than the `2024` edition, and only supports `2015`, `2018`, and `2021` editions.

The rust-version update isn't an issue but the edition update is.

Solutions:

  1. Don't test the rand_core MSRV. Not ideal but might be the least-worst option.
  2. Re-organise so that rand is in a sub-directory and the top-level Cargo.toml only lists workspace members. Untested. Undesirable because of conflicts and overhead when tracking other changes.

@dhardy

Copy link
Copy Markdown
MemberAuthor

I removed all changes to rand_core (only code change was a Clippy suggestion + reformat).

rand_core is tested only on the same MSRV as every other crate due to the issue noted above.

@newpavlov

newpavlov commented Sep 3, 2025

Copy link
Copy Markdown
Member

Solutions:

You forgot about cutting new breaking release of rand_core with MSRV 1.85. :)

As a practical solution we also could modify the MSRV job to remove the crate from the workspace by executing rm Cargo.toml && cd rand_core/.

@dhardy

Copy link
Copy Markdown
MemberAuthor

You forgot about cutting new breaking release of rand_core with MSRV 1.85. :)

It would be simpler.

Motivation to persist with rand_core v0.9: upgrades to rand v0.10 will be easier for people who can't just upgrade everything at once. I don't think this affects a lot of people, but rand_core_compat exists for a reason.

Motivation not to update the MSRV for the next rand_core point release: while I can conceive of a scenario where this might be an issue, it's hard to imagine why someone would need to use the latest rand_core version with an old rustc version. It seems unlikely we'll need a new rand_core point release anyway.

Overall I'm tempted to leave rand_core unchanged: no special 1.63 test, no upgrade to Edition 2024 or the latest MSRV.

@dhardy
dhardy merged commit 052b80f into masterSep 4, 2025
16 checks passed
@dhardy
dhardy deleted the push-tpslkyqlosnn branch September 4, 2025 07:52
@dhardydhardy mentioned this pull request Sep 8, 2025
1 task
@dhardydhardy mentioned this pull request Sep 10, 2025
kodiakhqBot pushed a commit to pdylanross/fatigue that referenced this pull request Jun 25, 2026
Bumps rand from 0.9.4 to 0.10.1.
Changelog
Sourced from rand's changelog.
[0.10.1] — 2026-02-11
This release includes a fix for a soundness bug; see #1763.
Changes
Document panic behavior of make_rng and add #[track_caller] (#1761)
Deprecate feature log (#1763)
#1761: rust-random/rand#1761
#1763: rust-random/rand#1763
[0.10.0] - 2026-02-08
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
Removed ReseedingRng (#1722)
Removed unused feature "nightly" (#1732)
Removed feature small_rng (#1732)
#1632: rust-random/rand#1632
#1642: rust-random/rand#1642
#1649: rust-random/rand#1649
#1652: rust-random/rand#1652
#1653: rust-random/rand#1653
#1659: rust-random/rand#1659
#1665: rust-random/rand#1665
#1669: rust-random/rand#1669
#1674: rust-random/rand#1674
#1677: rust-random/rand#1677
#1693: rust-random/rand#1693
#1695: rust-random/rand#1695
#1697: rust-random/rand#1697
... (truncated)
Commits
27ff4cb Prepare v0.10.1: deprecate feature log (#1763)
98d0638 make_rng: document panic and add #[track_caller] (#1761)
54e5eaa Fix doc error (#1758)
1ce4c08 Bump itoa from 1.0.17 to 1.0.18 in the all-deps group (#1756)
ccb734b docs: fix typo in doc comment (#1754)
357eb7d Bump libc from 0.2.182 to 0.2.183 in the all-deps group (#1753)
5e77fe5 Fix trait references in documentation (#1752)
da89185 Bump the all-deps group with 3 updates (#1751)
50516ff Bump the all-deps group with 2 updates (#1749)
fd71de9 Bump the all-deps group with 2 updates (#1747)
Additional commits viewable in compare view
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@dhardy@benjamin-lieser@newpavlov
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Bump the MSRV to 1.85 by dhardy · Pull Request #1653 · rust-random/rand · GitHub
Skip to content

Bump the MSRV to 1.85 - #1653

Merged
dhardy merged 4 commits into
masterfrom
push-tpslkyqlosnn
Sep 4, 2025
Merged

Bump the MSRV to 1.85#1653
dhardy merged 4 commits into
masterfrom
push-tpslkyqlosnn

Conversation

@dhardy

Copy link
Copy Markdown
Member
  • Added a CHANGELOG.md entry

Summary

Bump the MSRV to 1.85 (except rand_chacha which we plan to replace).

Motivation

#1642 requires this MSRV bump. #1632 requires at least 1.75.

@dhardy
dhardy requested a review from newpavlovAugust 12, 2025 13:13
@benjamin-lieser

benjamin-lieser commented Aug 13, 2025

Copy link
Copy Markdown
Member

Should this also be in a 0.9.x version? I guess not, seeing the changelogs.
I would say 1.85 is a bit too recent for a patch update.

Are we planning for a 0.10 release of rand_core? I understood it we want to release rand 0.10 with rand_core 0.9 and not have rand_core 0.10 for now.

@dhardy

Copy link
Copy Markdown
MemberAuthor

Should this also be in a 0.9.x version? I guess not, seeing the changelogs.

No, this is for v0.10. I wanted to make a pre-release using chacha20, but we may not be ready to do that yet.

Are we planning for a 0.10 release of rand_core? I understood it we want to release rand 0.10 with rand_core 0.9 and not have rand_core 0.10 for now.

Good point.

So should we keep the old MSRV for rand_core (and maybe some of the other crates)? I guess then we should... which means that we need two CI paths for MSRV tests.

Comment threadCHANGELOG.md Outdated
@newpavlov

Copy link
Copy Markdown
Member

So should we keep the old MSRV for rand_core (and maybe some of the other crates)?

Probably, yes. It would allow us to explicitly relax the MSRV policy to allow MSRV bumps in patch releases because of the MSRV-aware resolver. It may be even worth to release getrandom v0.4, not only to relax MSRV policy, but also to remove the built-in Web WASM support in favor of the custom fallback approach.

@dhardy

Copy link
Copy Markdown
MemberAuthor

@newpavlov how does keeping some crates on rustc 1.63 help us relax the MSRV policy? The new resolver isn't available until 1.84.

No comment on getrandom here except that the plan is to not make a breaking release of rand_core for now, hence we'd have to evaluate whether upgrading to getrandom v0.4 would be a breaking change for users of rand_core.

@newpavlov

Copy link
Copy Markdown
Member

Sorry, I misread your comment. I thought you suggested to cut new releases of rand_core with MSRV bumped to 1.85.

@dhardy

Copy link
Copy Markdown
MemberAuthor

Looks like we can't test rand_core with rustc 1.63 once other crates are updated:

$ cargo +1.63 test --all-features
error: failed to parse manifest at `/home/dhardy/projects/rand/rand/Cargo.toml`
Caused by:
failed to parse the `edition` key
Caused by:
this version of Cargo is older than the `2024` edition, and only supports `2015`, `2018`, and `2021` editions.

The rust-version update isn't an issue but the edition update is.

Solutions:

  1. Don't test the rand_core MSRV. Not ideal but might be the least-worst option.
  2. Re-organise so that rand is in a sub-directory and the top-level Cargo.toml only lists workspace members. Untested. Undesirable because of conflicts and overhead when tracking other changes.

@dhardy

Copy link
Copy Markdown
MemberAuthor

I removed all changes to rand_core (only code change was a Clippy suggestion + reformat).

rand_core is tested only on the same MSRV as every other crate due to the issue noted above.

@newpavlov

newpavlov commented Sep 3, 2025

Copy link
Copy Markdown
Member

Solutions:

You forgot about cutting new breaking release of rand_core with MSRV 1.85. :)

As a practical solution we also could modify the MSRV job to remove the crate from the workspace by executing rm Cargo.toml && cd rand_core/.

@dhardy

Copy link
Copy Markdown
MemberAuthor

You forgot about cutting new breaking release of rand_core with MSRV 1.85. :)

It would be simpler.

Motivation to persist with rand_core v0.9: upgrades to rand v0.10 will be easier for people who can't just upgrade everything at once. I don't think this affects a lot of people, but rand_core_compat exists for a reason.

Motivation not to update the MSRV for the next rand_core point release: while I can conceive of a scenario where this might be an issue, it's hard to imagine why someone would need to use the latest rand_core version with an old rustc version. It seems unlikely we'll need a new rand_core point release anyway.

Overall I'm tempted to leave rand_core unchanged: no special 1.63 test, no upgrade to Edition 2024 or the latest MSRV.

@dhardy
dhardy merged commit 052b80f into masterSep 4, 2025
16 checks passed
@dhardy
dhardy deleted the push-tpslkyqlosnn branch September 4, 2025 07:52
@dhardydhardy mentioned this pull request Sep 8, 2025
1 task
@dhardydhardy mentioned this pull request Sep 10, 2025
kodiakhqBot pushed a commit to pdylanross/fatigue that referenced this pull request Jun 25, 2026
Bumps rand from 0.9.4 to 0.10.1.
Changelog
Sourced from rand's changelog.
[0.10.1] — 2026-02-11
This release includes a fix for a soundness bug; see #1763.
Changes
Document panic behavior of make_rng and add #[track_caller] (#1761)
Deprecate feature log (#1763)
#1761: rust-random/rand#1761
#1763: rust-random/rand#1763
[0.10.0] - 2026-02-08
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
Removed ReseedingRng (#1722)
Removed unused feature "nightly" (#1732)
Removed feature small_rng (#1732)
#1632: rust-random/rand#1632
#1642: rust-random/rand#1642
#1649: rust-random/rand#1649
#1652: rust-random/rand#1652
#1653: rust-random/rand#1653
#1659: rust-random/rand#1659
#1665: rust-random/rand#1665
#1669: rust-random/rand#1669
#1674: rust-random/rand#1674
#1677: rust-random/rand#1677
#1693: rust-random/rand#1693
#1695: rust-random/rand#1695
#1697: rust-random/rand#1697
... (truncated)
Commits
27ff4cb Prepare v0.10.1: deprecate feature log (#1763)
98d0638 make_rng: document panic and add #[track_caller] (#1761)
54e5eaa Fix doc error (#1758)
1ce4c08 Bump itoa from 1.0.17 to 1.0.18 in the all-deps group (#1756)
ccb734b docs: fix typo in doc comment (#1754)
357eb7d Bump libc from 0.2.182 to 0.2.183 in the all-deps group (#1753)
5e77fe5 Fix trait references in documentation (#1752)
da89185 Bump the all-deps group with 3 updates (#1751)
50516ff Bump the all-deps group with 2 updates (#1749)
fd71de9 Bump the all-deps group with 2 updates (#1747)
Additional commits viewable in compare view
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@dhardy@benjamin-lieser@newpavlov
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Bump the MSRV to 1.85 by dhardy · Pull Request #1653 · rust-random/rand · GitHub
Skip to content

Bump the MSRV to 1.85 - #1653

Merged
dhardy merged 4 commits into
masterfrom
push-tpslkyqlosnn
Sep 4, 2025
Merged

Bump the MSRV to 1.85#1653
dhardy merged 4 commits into
masterfrom
push-tpslkyqlosnn

Conversation

@dhardy

Copy link
Copy Markdown
Member
  • Added a CHANGELOG.md entry

Summary

Bump the MSRV to 1.85 (except rand_chacha which we plan to replace).

Motivation

#1642 requires this MSRV bump. #1632 requires at least 1.75.

@dhardy
dhardy requested a review from newpavlovAugust 12, 2025 13:13
@benjamin-lieser

benjamin-lieser commented Aug 13, 2025

Copy link
Copy Markdown
Member

Should this also be in a 0.9.x version? I guess not, seeing the changelogs.
I would say 1.85 is a bit too recent for a patch update.

Are we planning for a 0.10 release of rand_core? I understood it we want to release rand 0.10 with rand_core 0.9 and not have rand_core 0.10 for now.

@dhardy

Copy link
Copy Markdown
MemberAuthor

Should this also be in a 0.9.x version? I guess not, seeing the changelogs.

No, this is for v0.10. I wanted to make a pre-release using chacha20, but we may not be ready to do that yet.

Are we planning for a 0.10 release of rand_core? I understood it we want to release rand 0.10 with rand_core 0.9 and not have rand_core 0.10 for now.

Good point.

So should we keep the old MSRV for rand_core (and maybe some of the other crates)? I guess then we should... which means that we need two CI paths for MSRV tests.

Comment threadCHANGELOG.md Outdated
@newpavlov

Copy link
Copy Markdown
Member

So should we keep the old MSRV for rand_core (and maybe some of the other crates)?

Probably, yes. It would allow us to explicitly relax the MSRV policy to allow MSRV bumps in patch releases because of the MSRV-aware resolver. It may be even worth to release getrandom v0.4, not only to relax MSRV policy, but also to remove the built-in Web WASM support in favor of the custom fallback approach.

@dhardy

Copy link
Copy Markdown
MemberAuthor

@newpavlov how does keeping some crates on rustc 1.63 help us relax the MSRV policy? The new resolver isn't available until 1.84.

No comment on getrandom here except that the plan is to not make a breaking release of rand_core for now, hence we'd have to evaluate whether upgrading to getrandom v0.4 would be a breaking change for users of rand_core.

@newpavlov

Copy link
Copy Markdown
Member

Sorry, I misread your comment. I thought you suggested to cut new releases of rand_core with MSRV bumped to 1.85.

@dhardy

Copy link
Copy Markdown
MemberAuthor

Looks like we can't test rand_core with rustc 1.63 once other crates are updated:

$ cargo +1.63 test --all-features
error: failed to parse manifest at `/home/dhardy/projects/rand/rand/Cargo.toml`
Caused by:
failed to parse the `edition` key
Caused by:
this version of Cargo is older than the `2024` edition, and only supports `2015`, `2018`, and `2021` editions.

The rust-version update isn't an issue but the edition update is.

Solutions:

  1. Don't test the rand_core MSRV. Not ideal but might be the least-worst option.
  2. Re-organise so that rand is in a sub-directory and the top-level Cargo.toml only lists workspace members. Untested. Undesirable because of conflicts and overhead when tracking other changes.

@dhardy

Copy link
Copy Markdown
MemberAuthor

I removed all changes to rand_core (only code change was a Clippy suggestion + reformat).

rand_core is tested only on the same MSRV as every other crate due to the issue noted above.

@newpavlov

newpavlov commented Sep 3, 2025

Copy link
Copy Markdown
Member

Solutions:

You forgot about cutting new breaking release of rand_core with MSRV 1.85. :)

As a practical solution we also could modify the MSRV job to remove the crate from the workspace by executing rm Cargo.toml && cd rand_core/.

@dhardy

Copy link
Copy Markdown
MemberAuthor

You forgot about cutting new breaking release of rand_core with MSRV 1.85. :)

It would be simpler.

Motivation to persist with rand_core v0.9: upgrades to rand v0.10 will be easier for people who can't just upgrade everything at once. I don't think this affects a lot of people, but rand_core_compat exists for a reason.

Motivation not to update the MSRV for the next rand_core point release: while I can conceive of a scenario where this might be an issue, it's hard to imagine why someone would need to use the latest rand_core version with an old rustc version. It seems unlikely we'll need a new rand_core point release anyway.

Overall I'm tempted to leave rand_core unchanged: no special 1.63 test, no upgrade to Edition 2024 or the latest MSRV.

@dhardy
dhardy merged commit 052b80f into masterSep 4, 2025
16 checks passed
@dhardy
dhardy deleted the push-tpslkyqlosnn branch September 4, 2025 07:52
@dhardydhardy mentioned this pull request Sep 8, 2025
1 task
@dhardydhardy mentioned this pull request Sep 10, 2025
kodiakhqBot pushed a commit to pdylanross/fatigue that referenced this pull request Jun 25, 2026
Bumps rand from 0.9.4 to 0.10.1.
Changelog
Sourced from rand's changelog.
[0.10.1] — 2026-02-11
This release includes a fix for a soundness bug; see #1763.
Changes
Document panic behavior of make_rng and add #[track_caller] (#1761)
Deprecate feature log (#1763)
#1761: rust-random/rand#1761
#1763: rust-random/rand#1763
[0.10.0] - 2026-02-08
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
Removed ReseedingRng (#1722)
Removed unused feature "nightly" (#1732)
Removed feature small_rng (#1732)
#1632: rust-random/rand#1632
#1642: rust-random/rand#1642
#1649: rust-random/rand#1649
#1652: rust-random/rand#1652
#1653: rust-random/rand#1653
#1659: rust-random/rand#1659
#1665: rust-random/rand#1665
#1669: rust-random/rand#1669
#1674: rust-random/rand#1674
#1677: rust-random/rand#1677
#1693: rust-random/rand#1693
#1695: rust-random/rand#1695
#1697: rust-random/rand#1697
... (truncated)
Commits
27ff4cb Prepare v0.10.1: deprecate feature log (#1763)
98d0638 make_rng: document panic and add #[track_caller] (#1761)
54e5eaa Fix doc error (#1758)
1ce4c08 Bump itoa from 1.0.17 to 1.0.18 in the all-deps group (#1756)
ccb734b docs: fix typo in doc comment (#1754)
357eb7d Bump libc from 0.2.182 to 0.2.183 in the all-deps group (#1753)
5e77fe5 Fix trait references in documentation (#1752)
da89185 Bump the all-deps group with 3 updates (#1751)
50516ff Bump the all-deps group with 2 updates (#1749)
fd71de9 Bump the all-deps group with 2 updates (#1747)
Additional commits viewable in compare view
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@dhardy@benjamin-lieser@newpavlov
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Bump the MSRV to 1.85 by dhardy · Pull Request #1653 · rust-random/rand · GitHub
Skip to content

Bump the MSRV to 1.85 - #1653

Merged
dhardy merged 4 commits into
masterfrom
push-tpslkyqlosnn
Sep 4, 2025
Merged

Bump the MSRV to 1.85#1653
dhardy merged 4 commits into
masterfrom
push-tpslkyqlosnn

Conversation

@dhardy

Copy link
Copy Markdown
Member
  • Added a CHANGELOG.md entry

Summary

Bump the MSRV to 1.85 (except rand_chacha which we plan to replace).

Motivation

#1642 requires this MSRV bump. #1632 requires at least 1.75.

@dhardy
dhardy requested a review from newpavlovAugust 12, 2025 13:13
@benjamin-lieser

benjamin-lieser commented Aug 13, 2025

Copy link
Copy Markdown
Member

Should this also be in a 0.9.x version? I guess not, seeing the changelogs.
I would say 1.85 is a bit too recent for a patch update.

Are we planning for a 0.10 release of rand_core? I understood it we want to release rand 0.10 with rand_core 0.9 and not have rand_core 0.10 for now.

@dhardy

Copy link
Copy Markdown
MemberAuthor

Should this also be in a 0.9.x version? I guess not, seeing the changelogs.

No, this is for v0.10. I wanted to make a pre-release using chacha20, but we may not be ready to do that yet.

Are we planning for a 0.10 release of rand_core? I understood it we want to release rand 0.10 with rand_core 0.9 and not have rand_core 0.10 for now.

Good point.

So should we keep the old MSRV for rand_core (and maybe some of the other crates)? I guess then we should... which means that we need two CI paths for MSRV tests.

Comment threadCHANGELOG.md Outdated
@newpavlov

Copy link
Copy Markdown
Member

So should we keep the old MSRV for rand_core (and maybe some of the other crates)?

Probably, yes. It would allow us to explicitly relax the MSRV policy to allow MSRV bumps in patch releases because of the MSRV-aware resolver. It may be even worth to release getrandom v0.4, not only to relax MSRV policy, but also to remove the built-in Web WASM support in favor of the custom fallback approach.

@dhardy

Copy link
Copy Markdown
MemberAuthor

@newpavlov how does keeping some crates on rustc 1.63 help us relax the MSRV policy? The new resolver isn't available until 1.84.

No comment on getrandom here except that the plan is to not make a breaking release of rand_core for now, hence we'd have to evaluate whether upgrading to getrandom v0.4 would be a breaking change for users of rand_core.

@newpavlov

Copy link
Copy Markdown
Member

Sorry, I misread your comment. I thought you suggested to cut new releases of rand_core with MSRV bumped to 1.85.

@dhardy

Copy link
Copy Markdown
MemberAuthor

Looks like we can't test rand_core with rustc 1.63 once other crates are updated:

$ cargo +1.63 test --all-features
error: failed to parse manifest at `/home/dhardy/projects/rand/rand/Cargo.toml`
Caused by:
failed to parse the `edition` key
Caused by:
this version of Cargo is older than the `2024` edition, and only supports `2015`, `2018`, and `2021` editions.

The rust-version update isn't an issue but the edition update is.

Solutions:

  1. Don't test the rand_core MSRV. Not ideal but might be the least-worst option.
  2. Re-organise so that rand is in a sub-directory and the top-level Cargo.toml only lists workspace members. Untested. Undesirable because of conflicts and overhead when tracking other changes.

@dhardy

Copy link
Copy Markdown
MemberAuthor

I removed all changes to rand_core (only code change was a Clippy suggestion + reformat).

rand_core is tested only on the same MSRV as every other crate due to the issue noted above.

@newpavlov

newpavlov commented Sep 3, 2025

Copy link
Copy Markdown
Member

Solutions:

You forgot about cutting new breaking release of rand_core with MSRV 1.85. :)

As a practical solution we also could modify the MSRV job to remove the crate from the workspace by executing rm Cargo.toml && cd rand_core/.

@dhardy

Copy link
Copy Markdown
MemberAuthor

You forgot about cutting new breaking release of rand_core with MSRV 1.85. :)

It would be simpler.

Motivation to persist with rand_core v0.9: upgrades to rand v0.10 will be easier for people who can't just upgrade everything at once. I don't think this affects a lot of people, but rand_core_compat exists for a reason.

Motivation not to update the MSRV for the next rand_core point release: while I can conceive of a scenario where this might be an issue, it's hard to imagine why someone would need to use the latest rand_core version with an old rustc version. It seems unlikely we'll need a new rand_core point release anyway.

Overall I'm tempted to leave rand_core unchanged: no special 1.63 test, no upgrade to Edition 2024 or the latest MSRV.

@dhardy
dhardy merged commit 052b80f into masterSep 4, 2025
16 checks passed
@dhardy
dhardy deleted the push-tpslkyqlosnn branch September 4, 2025 07:52
@dhardydhardy mentioned this pull request Sep 8, 2025
1 task
@dhardydhardy mentioned this pull request Sep 10, 2025
kodiakhqBot pushed a commit to pdylanross/fatigue that referenced this pull request Jun 25, 2026
Bumps rand from 0.9.4 to 0.10.1.
Changelog
Sourced from rand's changelog.
[0.10.1] — 2026-02-11
This release includes a fix for a soundness bug; see #1763.
Changes
Document panic behavior of make_rng and add #[track_caller] (#1761)
Deprecate feature log (#1763)
#1761: rust-random/rand#1761
#1763: rust-random/rand#1763
[0.10.0] - 2026-02-08
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
Removed ReseedingRng (#1722)
Removed unused feature "nightly" (#1732)
Removed feature small_rng (#1732)
#1632: rust-random/rand#1632
#1642: rust-random/rand#1642
#1649: rust-random/rand#1649
#1652: rust-random/rand#1652
#1653: rust-random/rand#1653
#1659: rust-random/rand#1659
#1665: rust-random/rand#1665
#1669: rust-random/rand#1669
#1674: rust-random/rand#1674
#1677: rust-random/rand#1677
#1693: rust-random/rand#1693
#1695: rust-random/rand#1695
#1697: rust-random/rand#1697
... (truncated)
Commits
27ff4cb Prepare v0.10.1: deprecate feature log (#1763)
98d0638 make_rng: document panic and add #[track_caller] (#1761)
54e5eaa Fix doc error (#1758)
1ce4c08 Bump itoa from 1.0.17 to 1.0.18 in the all-deps group (#1756)
ccb734b docs: fix typo in doc comment (#1754)
357eb7d Bump libc from 0.2.182 to 0.2.183 in the all-deps group (#1753)
5e77fe5 Fix trait references in documentation (#1752)
da89185 Bump the all-deps group with 3 updates (#1751)
50516ff Bump the all-deps group with 2 updates (#1749)
fd71de9 Bump the all-deps group with 2 updates (#1747)
Additional commits viewable in compare view
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@dhardy@benjamin-lieser@newpavlov