Update CHANGELOGs and prepare rand 0.9.0-alpha.0 (#1395)

Also: add pull-request template
This commit is contained in:
Diggory Hardy 2024-02-18 17:02:05 +00:00 committed by GitHub
parent 8aa456cee9
commit 5577003615
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 85 additions and 26 deletions

7
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@ -0,0 +1,7 @@
- [ ] Added a `CHANGELOG.md` entry
# Summary
# Motivation
# Details

View File

@ -8,16 +8,44 @@ A [separate changelog is kept for rand_core](rand_core/CHANGELOG.md).
You may also find the [Upgrade Guide](https://rust-random.github.io/book/update.html) useful.
## [0.9.0] - unreleased
## [0.9.0-alpha.0] - 2024-02-18
This is a pre-release. To depend on this version, use `rand = "=0.9.0-alpha.0"` to prevent automatic updates (which can be expected to include breaking changes).
### Generators
- Change `SmallRng::seed_from_u64` implementation (#1203)
- Replace `SeedableRng` impl for `SmallRng` with inherent methods, excluding `fn from_seed` (#1368)
### Sequences
- Simpler and faster implementation of Floyd's F2 (#1277). This
changes some outputs from `rand::seq::index::sample` and
`rand::seq::SliceRandom::choose_multiple`.
- New, faster algorithms for `IteratorRandom::choose` and `choose_stable` (#1268)
- New, faster algorithms for `SliceRandom::shuffle` and `partial_shuffle` (#1272)
- Re-introduce `Rng::gen_iter` (#1305)
- Split trait `SliceRandom` into `IndexedRandom`, `IndexedMutRandom`, `SliceRandom` (#1382)
### Distributions
- `{Uniform, UniformSampler}::{new, new_inclusive}` return a `Result` (instead of potentially panicking) (#1229)
- `Uniform` implements `TryFrom` instead of `From` for ranges (#1229)
- `Uniform` now uses Canon's method (single sampling) / Lemire's method (distribution sampling) for faster sampling (breaks value stability; #1287)
- Relax `Sized` bound on `Distribution<T> for &D` (#1278)
- Explicit impl of `sample_single_inclusive` (+~20% perf) (#1289)
- Impl `DistString` for `Slice<char>` and `Uniform<char>` (#1315)
- Let `Standard` support all `NonZero*` types (#1332)
- Add `trait Weight`, allowing `WeightedIndex` to trap overflow (#1353)
- Rename `WeightedError` to `WeightError`, revising variants (#1382)
### SIMD
- Switch to `std::simd`, expand SIMD & docs (#1239)
- Optimise SIMD widening multipy (#1247)
### Other
- Simpler and faster implementation of Floyd's F2 (#1277). This
changes some outputs from `rand::seq::index::sample` and
`rand::seq::SliceRandom::choose_multiple`.
- Bump MSRV to 1.60.0 (#1207, #1246, #1269, #1341)
- Improve `thread_rng` related docs (#1257)
- Add `Cargo.lock.msrv` file (#1275)
- Docs: enable experimental `--generate-link-to-definition` feature (#1327)
- Use `zerocopy` to replace some `unsafe` code (#1349)
- Support `std` feature without `getrandom` or `rand_chacha` (#1354)
## [0.8.5] - 2021-08-20
### Fixes

View File

@ -1,6 +1,6 @@
[package]
name = "rand"
version = "0.9.0"
version = "0.9.0-alpha.0"
authors = ["The Rand Project Developers", "The Rust Project Developers"]
license = "MIT OR Apache-2.0"
readme = "README.md"
@ -65,10 +65,10 @@ members = [
]
[dependencies]
rand_core = { path = "rand_core", version = "0.7.0", default-features = false }
rand_core = { path = "rand_core", version = "=0.9.0-alpha.0", default-features = false }
log = { version = "0.4.4", optional = true }
serde = { version = "1.0.103", features = ["derive"], optional = true }
rand_chacha = { path = "rand_chacha", version = "0.4.0", default-features = false, optional = true }
rand_chacha = { path = "rand_chacha", version = "=0.9.0-alpha.0", default-features = false, optional = true }
zerocopy = { version = "=0.8.0-alpha.5", default-features = false, features = ["simd"] }
[target.'cfg(unix)'.dependencies]
@ -76,7 +76,7 @@ zerocopy = { version = "=0.8.0-alpha.5", default-features = false, features = ["
libc = { version = "0.2.22", optional = true, default-features = false }
[dev-dependencies]
rand_pcg = { path = "rand_pcg", version = "0.4.0" }
rand_pcg = { path = "rand_pcg", version = "=0.9.0-alpha.0" }
# Only to test serde1
bincode = "1.2.1"
rayon = "1.5.3"

View File

@ -4,9 +4,11 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
- Made `rand_chacha` propagate the `std` feature down to `rand_core`
- Performance improvements for AVX2: ~4-7%
## [0.9.0-alpha.0] - 2024-02-18
This is a pre-release. To depend on this version, use `rand_chacha = "=0.9.0-alpha.0"` to prevent automatic updates (which can be expected to include breaking changes).
- Made `rand_chacha` propagate the `std` feature down to `rand_core` (#1153)
- Remove usage of `unsafe` in `fn generate` (#1181) then optimise for AVX2 (~4-7%) (#1192)
## [0.3.1] - 2021-06-09
- add getters corresponding to existing setters: `get_seed`, `get_stream` (#1124)

View File

@ -1,6 +1,6 @@
[package]
name = "rand_chacha"
version = "0.4.0"
version = "0.9.0-alpha.0"
authors = ["The Rand Project Developers", "The Rust Project Developers", "The CryptoCorrosion Contributors"]
license = "MIT OR Apache-2.0"
readme = "README.md"
@ -19,7 +19,7 @@ rust-version = "1.60"
rustdoc-args = ["--generate-link-to-definition"]
[dependencies]
rand_core = { path = "../rand_core", version = "0.7.0" }
rand_core = { path = "../rand_core", version = "=0.9.0-alpha.0" }
ppv-lite86 = { version = "0.2.14", default-features = false, features = ["simd"] }
serde = { version = "1.0", features = ["derive"], optional = true }

View File

@ -4,6 +4,15 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.9.0-alpha.0] - 2024-02-18
This is a pre-release. To depend on this version, use `rand_core = "=0.9.0-alpha.0"` to prevent automatic updates (which can be expected to include breaking changes).
- Bump MSRV to 1.60.0 (#1207, #1246, #1269, #1341)
- Allow `rand_core::impls::fill_via_u*_chunks` to mutate source (#1182)
- Add `fn RngCore::read_adapter` implementing `std::io::Read` (#1267)
- Add `trait CryptoBlockRng: BlockRngCore`; make `trait CryptoRng: RngCore` (#1273)
- Use `zerocopy` to replace some `unsafe` code (#1349, #1393)
## [0.6.4] - 2022-09-15
- Fix unsoundness in `<BlockRng64 as RngCore>::next_u32` (#1160)
- Reduce use of `unsafe` and improve gen_bytes performance (#1180)

View File

@ -1,6 +1,6 @@
[package]
name = "rand_core"
version = "0.7.0"
version = "0.9.0-alpha.0"
authors = ["The Rand Project Developers", "The Rust Project Developers"]
license = "MIT OR Apache-2.0"
readme = "README.md"

View File

@ -4,15 +4,26 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.5.0] - unreleased
## [0.5.0-alpha.0] - 2024-02-18
This is a pre-release. To depend on this version, use `rand_distr = "=0.5.0-alpha.0"` to prevent automatic updates (which can be expected to include breaking changes).
### Additions
- Make distributions comparable with `PartialEq` (#1218)
- Add `WeightedIndexTree` (#1372)
### Changes
- Target `rand` version `0.9.0-alpha.0`
- Remove unused fields from `Gamma`, `NormalInverseGaussian` and `Zipf` distributions (#1184)
This breaks serialization compatibility with older versions.
- Upgrade Rand
- Fix Knuth's method so `Poisson` doesn't return -1.0 for small lambda
- Fix `Poisson` distribution instantiation so it return an error if lambda is infinite
- `Dirichlet` now uses `const` generics, which means that its size is required at compile time (#1292)
- The `Dirichlet::new_with_size` constructor was removed (#1292)
### Fixes
- Fix Knuth's method so `Poisson` doesn't return -1.0 for small lambda (#1284)
- Fix `Poisson` distribution instantiation so it return an error if lambda is infinite (#1291)
- Fix Dirichlet sample for small alpha values to avoid NaN samples (#1209)
- Fix infinite loop in `Binomial` distribution (#1325)
## [0.4.3] - 2021-12-30
- Fix `no_std` build (#1208)

View File

@ -1,6 +1,6 @@
[package]
name = "rand_distr"
version = "0.5.0"
version = "0.5.0-alpha.0"
authors = ["The Rand Project Developers"]
license = "MIT OR Apache-2.0"
readme = "README.md"
@ -27,15 +27,15 @@ std_math = ["num-traits/std"]
serde1 = ["serde", "rand/serde1"]
[dependencies]
rand = { path = "..", version = "0.9.0", default-features = false }
rand = { path = "..", version = "=0.9.0-alpha.0", default-features = false }
num-traits = { version = "0.2", default-features = false, features = ["libm"] }
serde = { version = "1.0.103", features = ["derive"], optional = true }
serde_with = { version = "3.6.1", optional = true }
[dev-dependencies]
rand_pcg = { version = "0.4.0", path = "../rand_pcg" }
rand_pcg = { version = "=0.9.0-alpha.0", path = "../rand_pcg" }
# For inline examples
rand = { path = "..", version = "0.9.0", features = ["small_rng"] }
rand = { path = "..", version = "=0.9.0-alpha.0", features = ["small_rng"] }
# Histogram implementation for testing uniformity
average = { version = "0.13", features = [ "std" ] }
# Special functions for testing distributions

View File

@ -4,7 +4,9 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [0.9.0-alpha.0] - 2024-02-18
This is a pre-release. To depend on this version, use `rand_pcg = "=0.9.0-alpha.0"` to prevent automatic updates (which can be expected to include breaking changes).
- Add `Lcg128CmDxsm64` generator compatible with NumPy's `PCG64DXSM` (#1202)
- Add examples for initializing the RNGs

View File

@ -1,6 +1,6 @@
[package]
name = "rand_pcg"
version = "0.4.0"
version = "0.9.0-alpha.0"
authors = ["The Rand Project Developers"]
license = "MIT OR Apache-2.0"
readme = "README.md"
@ -22,11 +22,11 @@ rustdoc-args = ["--generate-link-to-definition"]
serde1 = ["serde"]
[dependencies]
rand_core = { path = "../rand_core", version = "0.7.0" }
rand_core = { path = "../rand_core", version = "=0.9.0-alpha.0" }
serde = { version = "1", features = ["derive"], optional = true }
[dev-dependencies]
rand = { path = "..", version = "0.9" }
rand = { path = "..", version = "=0.9.0-alpha.0" }
# This is for testing serde, unfortunately we can't specify feature-gated dev
# deps yet, see: https://github.com/rust-lang/cargo/issues/1596
# Versions prior to 1.1.4 had incorrect minimal dependencies.