A => docs/input/blog/version-0.3.0.md +29 -0
@@ 0,0 1,29 @@
+Title: New Release - Version 0.3.0
+Published: 2021-06-20
+Author: ociaw
+Category: Releases
+---
+
+RandN v0.3.0 has been released! It's available at
+[NuGet](https://www.nuget.org/packages/RandN/0.3.0) and
+[GitHub](https://github.com/ociaw/RandN/releases/tag/v0.3.0). It's a small one, but has a couple
+potentially breaking changes.
+
+## Full Changelog
+
+- Moved the IDistribution and IPortableDistribution interfaces to RandN.Core
+- Removed NullGuard.Fody from public dependencies - this was only needed for build and was being
+unnecessarily included in all dependents.
+- Fixed tests failing to run on Mono.
+
+### What's next?
+
+More distributions and more RNG algorithms - whether or not these will be included alongside
+`RandN`'s primary NuGet package or on another is still TBD.
+
+More efficient one-off range distribution - right now, an entire `Uniform` object must be built
+before sampling a range; this could make some use cases, such as the `RandomShim`, much more
+efficient.
+
+Improvements to website versioning - only the Docs and API need to be versioned, not the blog or
+the index page.
M src/Core/Core.csproj +5 -20
@@ 10,7 10,7 @@
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<LangVersion>9.0</LangVersion>
<AnalysisLevel>5</AnalysisLevel>
- <Version>0.2.0</Version>
+ <Version>0.3.0</Version>
<Authors>ociaw</Authors>
<Company>ociaw</Company>
<Description>RandN.Core defines the core interfaces of RandN, thus is intended only to be used by those implementing a random number generator. Others should instead use the RandN package itself. RandN.Core also provides RNG implementation helpers.</Description>
@@ 20,26 20,11 @@
<RepositoryType>hg</RepositoryType>
<PackageTags>rng random randn</PackageTags>
<PackageReleaseNotes>
- Version 0.2.0
-
- New APIs:
- The marker-interface IPortableDistribution has been created to mark distributions that provide portable and repeatable results across all platforms. Currently, the Bernoulli, the uniform Decimal, the uniform TimeSpan, and all the uniform integer distributions are portable.
- Added BlockBuffer32<TBlockRng, TBlockCounter>.BlockLength for consistency with BlockBuffer32.BlockLength.
+ Version 0.3.0
- Updated APIs:
- Uniform distributions now live have been grouped into nested classes under the Uniform static class. For example, UniformInt32 has become Uniform.Int32.
- Unit interval distributions now live in the Rand.Distributions.UnitInterval namespace and have been grouped into nested classes. For example, UnitInterval.OpenDouble has become UnitInterval.Open.Double.
- Method arguments now have null-checks injected by NullGuard.Fody instead of relying on the honor system.
- The TRng type parameter of IRngFactory and IReproducibleRngFactory<TRng, TSeed> is now covariant (IRngFactory<out TRng>).
- BlockBuffer32<TBlockRng>.Length has been renamed to BlockLength.
-
- Removed APIs:
- Removed the Sample extension methods - these were questionably useful, and could be up to four times slower than their non-extension counterpart, IDistribution.Sample.
-
- Bug fixes:
- Distributions returning floating point numbers would sometimes sample a number outside the desired range on .NET Framework x86, which can use 80-bit floating point calculations, instead of 64-bit. Results are now forced to 64-bit precision before returning.
- BitwiseExtensions.RotateRight now rotates bits right instead of left on .NET Core 3.1+.
- All places where overflow is expected is now marked with unchecked.
+ Moved the IDistribution and IPortableDistribution interfaces to RandN.Core
+ Remove NullGuard.Fody from public dependencies - this was only needed for build.
+ Fixed tests failing to run on Mono.
</PackageReleaseNotes>
</PropertyGroup>
M src/RandN/RandN.csproj +5 -20
@@ 10,7 10,7 @@
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<LangVersion>9.0</LangVersion>
<AnalysisLevel>5</AnalysisLevel>
- <Version>0.2.0</Version>
+ <Version>0.3.0</Version>
<Authors>ociaw</Authors>
<Company>ociaw</Company>
<Description>RandN is an alternative library for random number generation, designed to replace the standard Random type.</Description>
@@ 20,26 20,11 @@
<RepositoryType>hg</RepositoryType>
<PackageTags>rng random randn</PackageTags>
<PackageReleaseNotes>
- Version 0.2.0
-
- New APIs:
- The marker-interface IPortableDistribution has been created to mark distributions that provide portable and repeatable results across all platforms. Currently, the Bernoulli, the uniform Decimal, the uniform TimeSpan, and all the uniform integer distributions are portable.
- Added BlockBuffer32<TBlockRng, TBlockCounter>.BlockLength for consistency with BlockBuffer32.BlockLength.
+ Version 0.3.0
- Updated APIs:
- Uniform distributions now live have been grouped into nested classes under the Uniform static class. For example, UniformInt32 has become Uniform.Int32.
- Unit interval distributions now live in the Rand.Distributions.UnitInterval namespace and have been grouped into nested classes. For example, UnitInterval.OpenDouble has become UnitInterval.Open.Double.
- Method arguments now have null-checks injected by NullGuard.Fody instead of relying on the honor system.
- The TRng type parameter of IRngFactory and IReproducibleRngFactory<TRng, TSeed> is now covariant (IRngFactory<out TRng>).
- BlockBuffer32<TBlockRng>.Length has been renamed to BlockLength.
-
- Removed APIs:
- Removed the Sample extension methods - these were questionably useful, and could be up to four times slower than their non-extension counterpart, IDistribution.Sample.
-
- Bug fixes:
- Distributions returning floating point numbers would sometimes sample a number outside the desired range on .NET Framework x86, which can use 80-bit floating point calculations, instead of 64-bit. Results are now forced to 64-bit precision before returning.
- BitwiseExtensions.RotateRight now rotates bits right instead of left on .NET Core 3.1+.
- All places where overflow is expected is now marked with unchecked.
+ Moved the IDistribution and IPortableDistribution interfaces to RandN.Core
+ Remove NullGuard.Fody from public dependencies - this was only needed for build.
+ Fixed tests failing to run on Mono.
</PackageReleaseNotes>
</PropertyGroup>