diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 167a288..3e5b3a7 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -1,4 +1,109 @@
 
+              Apache Commons RNG 1.4 RELEASE NOTES
+
+The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.4
+
+The Apache Commons RNG project provides pure-Java implementation
+of pseudo-random generators.
+
+This is a minor release of Apache Commons RNG, containing a
+few new features and performance improvements.
+
+Apache Commons RNG 1.4 contains the following library modules:
+ commons-rng-client-api (requires Java 8)
+ commons-rng-core (requires Java 8)
+ commons-rng-simple (requires Java 8)
+ commons-rng-sampling (requires Java 8)
+
+The code in module 'commons-rng-core' should not be accessed
+directly by applications as a future release might make use of
+the JPMS modularization feature available in Java 11+.
+
+Additional code is provided in the following modules:
+ commons-rng-examples-quadrature (requires Java 8)
+ commons-rng-examples-jmh (requires Java 8)
+ commons-rng-examples-sampling (requires Java 8)
+ commons-rng-examples-stress (requires Java 8)
+ commons-rng-examples-jpms (requires Java 11)
+
+It is however not part of the official API and no compatibility
+should be expected in subsequent releases.
+
+It must be noted that, due to the nature of random number generation, some unit tests
+are bound to fail with some probability. The 'maven-surefire-plugin' is configured
+to re-run tests that fail, and pass the build if they succeed within the allotted
+number of reruns (the test will be marked as 'flaky' in the report).
+
+Changes in this version include:
+
+New features:
+o RNG-156: New "DirichletSampler" class to sample from a Dirichlet distribution.
+o RNG-137: New "StableSampler" class to sample from a stable distribution.
+o RNG-138: New "CompositeSamplers" class to sample from a weighted combination of samplers.
+o RNG-140: New "LongSampler" interface for sampling a long. New "UniformLongSampler" to sample
+           from a range.
+o RNG-151: New "ZigguratSampler" implementation of the modified "Ziggurat" algorithm for
+           Gaussian and exponential sampling.
+o RNG-147: New "LevySampler" to sample from a Levy distribution.
+o RNG-145: "ContinuousUniformSampler": Add optional support for an open interval: (lower, upper).
+o RNG-143: "RandomSource": Add an instance create method. Deprecate the static create method.
+o RNG-136: New "ObjectSampler<T>" and "SharedStateObjectSampler<T>" interfaces.
+           These interfaces are implemented by samplers returning an object.
+           This changes the functional compatibility of existing samplers that implement
+           SharedStatedSampler<R>: CollectionSampler<T>; CombinationSampler;
+           DiscreteProbabilityCollectionSampler<T>; PermutationSampler; and UnitSphereSampler.
+           The method signature of the SharedStateSampler<R> interface remains
+           'public R withUniformRandomProvider(UniformRandomProvider)'. The result can still be
+           assigned to an instance of the same class R; it can no longer be assigned to an instance
+           of SharedStatedSampler<R>. It can now be assigned to SharedStateObjectSampler<T>
+           which can be used to generate samples of type <T>.
+           Code that assigned to SharedStatedSampler<R> should be updated.
+o RNG-135: New "TetrahedronSampler" to sample uniformly from a tetrahedron.
+o RNG-134: New "BoxSampler" to sample uniformly from a box (or hyperrectangle).
+o RNG-133: New "LineSampler" to sample uniformly on a line segment.
+o RNG-131: New "TriangleSampler" to sample uniformly from a triangle.
+o RNG-132: New "o.a.c.rng.sampling.shape" package for sampling coordinates from shapes.
+o RNG-128: New "UnitBallSampler" to generate coordinates uniformly within an n-unit ball.
+o RNG-126: "PoissonSamplerCache": Method to return a SharedStateDiscreteSampler.
+o RNG-124: Add fixed increment versions of the PCG generators.
+
+Fixed Bugs:
+o RNG-159: "ZigguratSampler.NormalizedGaussian": Corrected biased sampling within convex regions
+           at the edge of the ziggurat.
+o RNG-146: "GaussianSampler": Prevent infinite mean and standard deviation.
+o RNG-144: "AhrensDieterExponentialSampler": Avoid possible infinite loop during sampling if the
+           underlying UniformRandomProvider creates a zero for the uniform deviate.
+o RNG-130: "UnitSphereSampler": Fix 1 dimension sampling to only return vectors containing 1 or -1.
+
+Changes:
+o RNG-163: Update test suite to JUnit 5.
+o          Simplify assertions with simpler equivalent. Thanks to Arturo Bernal.
+o RNG-162: Update the minimum Java version to 1.8.
+o RNG-160: "ZigguratSampler.NormalizedGaussian": Performance improvement by extracting ziggurat
+           edge sampling to a separate method.
+o RNG-157: "UnitSphereSampler": Deprecate public constructor. Use the factory constructor to create
+           an optimal sampler.
+o RNG-155: "ZigguratNormalizedGaussianSampler": Update to a table size of 256.
+o RNG-152: Update samplers to use ZigguratSampler.NormalizedGaussian for Gaussian deviates.
+o RNG-154: Update Gaussian samplers to avoid infinity in the tails of the distribution. Applies
+           to: ZigguratNormalisedGaussianSampler; BoxMullerNormalizedGaussianSampler; and
+           BoxMullerGaussianSampler.
+o RNG-153: "UnitBallSampler": Update to use the ZigguratSampler for an exponential deviate for
+           ball point picking.
+o RNG-150: Update "LargeMeanPoissonSampler" and "GeometricSampler" to use the ZigguratSampler for
+           exponential deviates.
+o RNG-129: "UnitSphereSampler": Improve performance with specialisations for low order dimensions.
+           Added a factory constructor to create the sampler.
+
+
+For complete information on Apache Commons RNG, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons RNG website:
+
+https://commons.apache.org/proper/commons-rng/
+
+
+=============================================================================
+
               Apache Commons RNG 1.3 RELEASE NOTES
 
 The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.3
diff --git a/commons-rng-client-api/pom.xml b/commons-rng-client-api/pom.xml
index 82eb825..b6cb383 100644
--- a/commons-rng-client-api/pom.xml
+++ b/commons-rng-client-api/pom.xml
@@ -21,11 +21,11 @@
   <parent>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-rng-parent</artifactId>
-    <version>1.4-SNAPSHOT</version>
+    <version>1.4</version>
   </parent>
 
   <artifactId>commons-rng-client-api</artifactId>
-  <version>1.4-SNAPSHOT</version>
+  <version>1.4</version>
   <name>Apache Commons RNG Client API</name>
 
   <description>API for client code that uses random numbers generators.</description>
diff --git a/commons-rng-client-api/src/site/site.xml b/commons-rng-client-api/src/site/site.xml
index 71ecebd..ac31a36 100644
--- a/commons-rng-client-api/src/site/site.xml
+++ b/commons-rng-client-api/src/site/site.xml
@@ -28,6 +28,8 @@
       <item name="Overview" href="index.html"/>
       <item name="Latest API docs (development)"
             href="apidocs/index.html"/>
+      <item name="Javadoc (1.4 release)"
+            href="https://commons.apache.org/rng/commons-rng-client-api/javadocs/api-1.4/index.html"/>
       <item name="Javadoc (1.3 release)"
             href="https://commons.apache.org/rng/commons-rng-client-api/javadocs/api-1.3/index.html"/>
       <item name="Javadoc (1.2 release)"
diff --git a/commons-rng-core/pom.xml b/commons-rng-core/pom.xml
index fa683cf..654d350 100644
--- a/commons-rng-core/pom.xml
+++ b/commons-rng-core/pom.xml
@@ -21,11 +21,11 @@
   <parent>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-rng-parent</artifactId>
-    <version>1.4-SNAPSHOT</version>
+    <version>1.4</version>
   </parent>
 
   <artifactId>commons-rng-core</artifactId>
-  <version>1.4-SNAPSHOT</version>
+  <version>1.4</version>
   <name>Apache Commons RNG Core</name>
 
   <description>Pure Java implementations of random numbers generator algorithms.
@@ -49,7 +49,7 @@
     <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-rng-client-api</artifactId>
-      <version>1.4-SNAPSHOT</version>
+      <version>1.4</version>
     </dependency>
     <dependency>
       <!-- For testing floating point precision -->
diff --git a/commons-rng-core/src/site/site.xml b/commons-rng-core/src/site/site.xml
index 56e2672..ea92b39 100644
--- a/commons-rng-core/src/site/site.xml
+++ b/commons-rng-core/src/site/site.xml
@@ -28,6 +28,8 @@
       <item name="Overview" href="index.html"/>
       <item name="Latest API docs (development)"
             href="apidocs/index.html"/>
+      <item name="Javadoc (1.4 release)"
+            href="https://commons.apache.org/rng/commons-rng-core/javadocs/api-1.4/index.html"/>
       <item name="Javadoc (1.3 release)"
             href="https://commons.apache.org/rng/commons-rng-core/javadocs/api-1.3/index.html"/>
       <item name="Javadoc (1.2 release)"
diff --git a/commons-rng-examples/examples-jmh/pom.xml b/commons-rng-examples/examples-jmh/pom.xml
index 3788d43..804bc06 100644
--- a/commons-rng-examples/examples-jmh/pom.xml
+++ b/commons-rng-examples/examples-jmh/pom.xml
@@ -21,11 +21,11 @@
   <parent>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-rng-examples</artifactId>
-    <version>1.4-SNAPSHOT</version>
+    <version>1.4</version>
   </parent>
 
   <artifactId>commons-rng-examples-jmh</artifactId>
-  <version>1.4-SNAPSHOT</version>
+  <version>1.4</version>
   <name>Apache Commons RNG JMH Benchmark</name>
 
   <description>Code for running JMH benchmarks that assess the performance of the generators.
diff --git a/commons-rng-examples/examples-jpms/jpms-app/pom.xml b/commons-rng-examples/examples-jpms/jpms-app/pom.xml
index fa16173..b8cba51 100644
--- a/commons-rng-examples/examples-jpms/jpms-app/pom.xml
+++ b/commons-rng-examples/examples-jpms/jpms-app/pom.xml
@@ -21,11 +21,11 @@
   <parent>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-rng-examples-jpms</artifactId>
-    <version>1.4-SNAPSHOT</version>
+    <version>1.4</version>
   </parent>
 
   <artifactId>commons-rng-examples-jpms-app</artifactId>
-  <version>1.4-SNAPSHOT</version>
+  <version>1.4</version>
   <name>Apache Commons RNG JPMS Module Example (Application)</name>
 
   <description>Testing JPMS. Code in this module is not part of the public API.</description>
@@ -39,7 +39,7 @@
     <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-rng-examples-jpms-lib</artifactId>
-      <version>1.4-SNAPSHOT</version>
+      <version>1.4</version>
     </dependency>
   </dependencies>
 
diff --git a/commons-rng-examples/examples-jpms/jpms-lib/pom.xml b/commons-rng-examples/examples-jpms/jpms-lib/pom.xml
index b2a1e98..5216cc0 100644
--- a/commons-rng-examples/examples-jpms/jpms-lib/pom.xml
+++ b/commons-rng-examples/examples-jpms/jpms-lib/pom.xml
@@ -21,11 +21,11 @@
   <parent>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-rng-examples-jpms</artifactId>
-    <version>1.4-SNAPSHOT</version>
+    <version>1.4</version>
   </parent>
 
   <artifactId>commons-rng-examples-jpms-lib</artifactId>
-  <version>1.4-SNAPSHOT</version>
+  <version>1.4</version>
   <name>Apache Commons RNG JPMS Module Example (Library)</name>
 
   <description>Testing JPMS. Code in this module is not part of the public API.</description>
diff --git a/commons-rng-examples/examples-jpms/pom.xml b/commons-rng-examples/examples-jpms/pom.xml
index 017e7a3..dd8495b 100644
--- a/commons-rng-examples/examples-jpms/pom.xml
+++ b/commons-rng-examples/examples-jpms/pom.xml
@@ -21,11 +21,11 @@
   <parent>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-rng-examples</artifactId>
-    <version>1.4-SNAPSHOT</version>
+    <version>1.4</version>
   </parent>
 
   <artifactId>commons-rng-examples-jpms</artifactId>
-  <version>1.4-SNAPSHOT</version>
+  <version>1.4</version>
   <packaging>pom</packaging>
   <name>Apache Commons RNG JPMS Integration Test</name>
 
diff --git a/commons-rng-examples/examples-quadrature/pom.xml b/commons-rng-examples/examples-quadrature/pom.xml
index 787fb61..ff8666f 100644
--- a/commons-rng-examples/examples-quadrature/pom.xml
+++ b/commons-rng-examples/examples-quadrature/pom.xml
@@ -21,11 +21,11 @@
   <parent>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-rng-examples</artifactId>
-    <version>1.4-SNAPSHOT</version>
+    <version>1.4</version>
   </parent>
 
   <artifactId>commons-rng-examples-quadrature</artifactId>
-  <version>1.4-SNAPSHOT</version>
+  <version>1.4</version>
   <name>Apache Commons RNG Quadrature Example</name>
 
   <description>Contains examples for computing numerical quadrature (integration).
diff --git a/commons-rng-examples/examples-sampling/pom.xml b/commons-rng-examples/examples-sampling/pom.xml
index e01b29a..89b4355 100644
--- a/commons-rng-examples/examples-sampling/pom.xml
+++ b/commons-rng-examples/examples-sampling/pom.xml
@@ -21,11 +21,11 @@
   <parent>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-rng-examples</artifactId>
-    <version>1.4-SNAPSHOT</version>
+    <version>1.4</version>
   </parent>
 
   <artifactId>commons-rng-examples-sampling</artifactId>
-  <version>1.4-SNAPSHOT</version>
+  <version>1.4</version>
   <!-- This name is used in the shaded jar to provide the application title for the version information. -->
   <name>Apache Commons RNG Examples Sampling Utilities</name>
 
diff --git a/commons-rng-examples/examples-stress/pom.xml b/commons-rng-examples/examples-stress/pom.xml
index ce1f2d6..7053f87 100644
--- a/commons-rng-examples/examples-stress/pom.xml
+++ b/commons-rng-examples/examples-stress/pom.xml
@@ -21,11 +21,11 @@
   <parent>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-rng-examples</artifactId>
-    <version>1.4-SNAPSHOT</version>
+    <version>1.4</version>
   </parent>
 
   <artifactId>commons-rng-examples-stress</artifactId>
-  <version>1.4-SNAPSHOT</version>
+  <version>1.4</version>
   <!-- This name is used in the shaded jar to provide the application title for the version information. -->
   <name>Apache Commons RNG Examples Stress Utilities</name>
 
diff --git a/commons-rng-examples/pom.xml b/commons-rng-examples/pom.xml
index 49fd72b..59b0d9a 100644
--- a/commons-rng-examples/pom.xml
+++ b/commons-rng-examples/pom.xml
@@ -21,11 +21,11 @@
   <parent>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-rng-parent</artifactId>
-    <version>1.4-SNAPSHOT</version>
+    <version>1.4</version>
   </parent>
 
   <artifactId>commons-rng-examples</artifactId>
-  <version>1.4-SNAPSHOT</version>
+  <version>1.4</version>
   <packaging>pom</packaging>
   <name>Apache Commons RNG Examples</name>
 
@@ -58,17 +58,17 @@
       <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-rng-simple</artifactId>
-        <version>1.4-SNAPSHOT</version>
+        <version>1.4</version>
       </dependency>
       <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-rng-sampling</artifactId>
-        <version>1.4-SNAPSHOT</version>
+        <version>1.4</version>
       </dependency>
       <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-rng-client-api</artifactId>
-        <version>1.4-SNAPSHOT</version>
+        <version>1.4</version>
       </dependency>
       <dependency>
         <groupId>info.picocli</groupId>
diff --git a/commons-rng-sampling/pom.xml b/commons-rng-sampling/pom.xml
index b6e16fc..508a6c6 100644
--- a/commons-rng-sampling/pom.xml
+++ b/commons-rng-sampling/pom.xml
@@ -21,11 +21,11 @@
   <parent>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-rng-parent</artifactId>
-    <version>1.4-SNAPSHOT</version>
+    <version>1.4</version>
   </parent>
 
   <artifactId>commons-rng-sampling</artifactId>
-  <version>1.4-SNAPSHOT</version>
+  <version>1.4</version>
   <name>Apache Commons RNG Sampling</name>
 
   <description>The Apache Commons RNG Sampling module provides samplers
@@ -46,13 +46,13 @@
     <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-rng-client-api</artifactId>
-      <version>1.4-SNAPSHOT</version>
+      <version>1.4</version>
     </dependency>
 
     <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-rng-simple</artifactId>
-      <version>1.4-SNAPSHOT</version>
+      <version>1.4</version>
       <scope>test</scope>
     </dependency>
 
diff --git a/commons-rng-sampling/src/site/site.xml b/commons-rng-sampling/src/site/site.xml
index c0e5cad..6ab2ed6 100644
--- a/commons-rng-sampling/src/site/site.xml
+++ b/commons-rng-sampling/src/site/site.xml
@@ -28,6 +28,8 @@
       <item name="Overview" href="index.html"/>
       <item name="Latest API docs (development)"
             href="apidocs/index.html"/>
+      <item name="Javadoc (1.4 release)"
+            href="https://commons.apache.org/rng/commons-rng-sampling/javadocs/api-1.4/index.html"/>
       <item name="Javadoc (1.3 release)"
             href="https://commons.apache.org/rng/commons-rng-sampling/javadocs/api-1.3/index.html"/>
       <item name="Javadoc (1.2 release)"
diff --git a/commons-rng-simple/pom.xml b/commons-rng-simple/pom.xml
index faabe26..f7a7761 100644
--- a/commons-rng-simple/pom.xml
+++ b/commons-rng-simple/pom.xml
@@ -21,11 +21,11 @@
   <parent>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-rng-parent</artifactId>
-    <version>1.4-SNAPSHOT</version>
+    <version>1.4</version>
   </parent>
 
   <artifactId>commons-rng-simple</artifactId>
-  <version>1.4-SNAPSHOT</version>
+  <version>1.4</version>
   <name>Apache Commons RNG Simple</name>
 
   <description>Simple API for instantiating random numbers generators.</description>
@@ -46,7 +46,7 @@
     <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-rng-core</artifactId>
-      <version>1.4-SNAPSHOT</version>
+      <version>1.4</version>
     </dependency>
 
     <dependency>
diff --git a/commons-rng-simple/src/site/site.xml b/commons-rng-simple/src/site/site.xml
index 8b2125e..43d021a 100644
--- a/commons-rng-simple/src/site/site.xml
+++ b/commons-rng-simple/src/site/site.xml
@@ -28,6 +28,8 @@
       <item name="Overview" href="index.html"/>
       <item name="Latest API docs (development)"
             href="apidocs/index.html"/>
+      <item name="Javadoc (1.4 release)"
+            href="https://commons.apache.org/rng/commons-rng-simple/javadocs/api-1.4/index.html"/>
       <item name="Javadoc (1.3 release)"
             href="https://commons.apache.org/rng/commons-rng-simple/javadocs/api-1.3/index.html"/>
       <item name="Javadoc (1.2 release)"
diff --git a/dist-archive/pom.xml b/dist-archive/pom.xml
index 6834677..34fc931 100644
--- a/dist-archive/pom.xml
+++ b/dist-archive/pom.xml
@@ -23,11 +23,11 @@
   <parent>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-rng-parent</artifactId>
-    <version>1.4-SNAPSHOT</version>
+    <version>1.4</version>
   </parent>
 
   <artifactId>commons-rng</artifactId>
-  <version>1.4-SNAPSHOT</version>
+  <version>1.4</version>
   <packaging>pom</packaging>
   <name>Apache Commons RNG (full distribution)</name>
   <description>This module creates the Apache Commons RNG distribution.</description>
@@ -67,18 +67,18 @@
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-rng-client-api</artifactId>
-          <version>1.4-SNAPSHOT</version>
+          <version>1.4</version>
         </dependency>
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-rng-client-api</artifactId>
-          <version>1.4-SNAPSHOT</version>
+          <version>1.4</version>
           <classifier>sources</classifier>
         </dependency>
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-rng-client-api</artifactId>
-          <version>1.4-SNAPSHOT</version>
+          <version>1.4</version>
           <classifier>javadoc</classifier>
         </dependency>
 
@@ -86,18 +86,18 @@
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-rng-core</artifactId>
-          <version>1.4-SNAPSHOT</version>
+          <version>1.4</version>
         </dependency>
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-rng-core</artifactId>
-          <version>1.4-SNAPSHOT</version>
+          <version>1.4</version>
           <classifier>sources</classifier>
         </dependency>
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-rng-core</artifactId>
-          <version>1.4-SNAPSHOT</version>
+          <version>1.4</version>
           <classifier>javadoc</classifier>
         </dependency>
 
@@ -105,18 +105,18 @@
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-rng-simple</artifactId>
-          <version>1.4-SNAPSHOT</version>
+          <version>1.4</version>
         </dependency>
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-rng-simple</artifactId>
-          <version>1.4-SNAPSHOT</version>
+          <version>1.4</version>
           <classifier>sources</classifier>
         </dependency>
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-rng-simple</artifactId>
-          <version>1.4-SNAPSHOT</version>
+          <version>1.4</version>
           <classifier>javadoc</classifier>
         </dependency>
 
@@ -124,18 +124,18 @@
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-rng-sampling</artifactId>
-          <version>1.4-SNAPSHOT</version>
+          <version>1.4</version>
         </dependency>
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-rng-sampling</artifactId>
-          <version>1.4-SNAPSHOT</version>
+          <version>1.4</version>
           <classifier>sources</classifier>
         </dependency>
         <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-rng-sampling</artifactId>
-          <version>1.4-SNAPSHOT</version>
+          <version>1.4</version>
           <classifier>javadoc</classifier>
         </dependency>
 
diff --git a/docs-archive/pom.xml b/docs-archive/pom.xml
index d7eeaa1..ba23e30 100644
--- a/docs-archive/pom.xml
+++ b/docs-archive/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-rng-parent</artifactId>
-    <version>1.4-SNAPSHOT</version>
+    <version>1.4</version>
   </parent>
 
   <artifactId>commons-rng-docs</artifactId>
@@ -49,22 +49,22 @@
     <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-rng-client-api</artifactId>
-      <version>1.4-SNAPSHOT</version>
+      <version>1.4</version>
     </dependency>
     <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-rng-core</artifactId>
-      <version>1.4-SNAPSHOT</version>
+      <version>1.4</version>
     </dependency>
     <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-rng-simple</artifactId>
-      <version>1.4-SNAPSHOT</version>
+      <version>1.4</version>
     </dependency>
     <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-rng-sampling</artifactId>
-      <version>1.4-SNAPSHOT</version>
+      <version>1.4</version>
     </dependency>
   </dependencies>
 
diff --git a/pom.xml b/pom.xml
index 7ed7017..ffbdb87 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
   </parent>
 
   <artifactId>commons-rng-parent</artifactId>
-  <version>1.4-SNAPSHOT</version>
+  <version>1.4</version>
   <packaging>pom</packaging>
   <name>Apache Commons RNG</name>
   <description>The Apache Commons RNG project provides pure-Java implementation of pseudo-random generators.</description>
@@ -42,8 +42,8 @@
     <!-- Java 9+ -->
     <commons.automatic.module.name>org.apache.commons.rng.parent</commons.automatic.module.name>
     <!-- do not use snapshot suffix here -->
-    <commons.release.version>1.3</commons.release.version>
-    <commons.bc.version>${commons.release.version}</commons.bc.version>
+    <commons.release.version>1.4</commons.release.version>
+    <commons.bc.version>1.3</commons.bc.version>
     <commons.rc.version>RC1</commons.rc.version>
     <commons.release.desc>(requires Java 8+)</commons.release.desc>
     <commons.binary.suffix>-bin</commons.binary.suffix>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index ed12355..8ccec70 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -53,7 +53,7 @@
   </properties>
   <body>
 
-    <release version="1.4" date="TBD" description="
+    <release version="1.4" date="2021-09-06" description="
 This is a minor release of Apache Commons RNG, containing a
 few new features and performance improvements.
 Apache Commons RNG 1.4 contains the following library modules:
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-1.4.txt b/src/site/resources/release-notes/RELEASE-NOTES-1.4.txt
new file mode 100644
index 0000000..3e5b3a7
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-1.4.txt
@@ -0,0 +1,397 @@
+
+              Apache Commons RNG 1.4 RELEASE NOTES
+
+The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.4
+
+The Apache Commons RNG project provides pure-Java implementation
+of pseudo-random generators.
+
+This is a minor release of Apache Commons RNG, containing a
+few new features and performance improvements.
+
+Apache Commons RNG 1.4 contains the following library modules:
+ commons-rng-client-api (requires Java 8)
+ commons-rng-core (requires Java 8)
+ commons-rng-simple (requires Java 8)
+ commons-rng-sampling (requires Java 8)
+
+The code in module 'commons-rng-core' should not be accessed
+directly by applications as a future release might make use of
+the JPMS modularization feature available in Java 11+.
+
+Additional code is provided in the following modules:
+ commons-rng-examples-quadrature (requires Java 8)
+ commons-rng-examples-jmh (requires Java 8)
+ commons-rng-examples-sampling (requires Java 8)
+ commons-rng-examples-stress (requires Java 8)
+ commons-rng-examples-jpms (requires Java 11)
+
+It is however not part of the official API and no compatibility
+should be expected in subsequent releases.
+
+It must be noted that, due to the nature of random number generation, some unit tests
+are bound to fail with some probability. The 'maven-surefire-plugin' is configured
+to re-run tests that fail, and pass the build if they succeed within the allotted
+number of reruns (the test will be marked as 'flaky' in the report).
+
+Changes in this version include:
+
+New features:
+o RNG-156: New "DirichletSampler" class to sample from a Dirichlet distribution.
+o RNG-137: New "StableSampler" class to sample from a stable distribution.
+o RNG-138: New "CompositeSamplers" class to sample from a weighted combination of samplers.
+o RNG-140: New "LongSampler" interface for sampling a long. New "UniformLongSampler" to sample
+           from a range.
+o RNG-151: New "ZigguratSampler" implementation of the modified "Ziggurat" algorithm for
+           Gaussian and exponential sampling.
+o RNG-147: New "LevySampler" to sample from a Levy distribution.
+o RNG-145: "ContinuousUniformSampler": Add optional support for an open interval: (lower, upper).
+o RNG-143: "RandomSource": Add an instance create method. Deprecate the static create method.
+o RNG-136: New "ObjectSampler<T>" and "SharedStateObjectSampler<T>" interfaces.
+           These interfaces are implemented by samplers returning an object.
+           This changes the functional compatibility of existing samplers that implement
+           SharedStatedSampler<R>: CollectionSampler<T>; CombinationSampler;
+           DiscreteProbabilityCollectionSampler<T>; PermutationSampler; and UnitSphereSampler.
+           The method signature of the SharedStateSampler<R> interface remains
+           'public R withUniformRandomProvider(UniformRandomProvider)'. The result can still be
+           assigned to an instance of the same class R; it can no longer be assigned to an instance
+           of SharedStatedSampler<R>. It can now be assigned to SharedStateObjectSampler<T>
+           which can be used to generate samples of type <T>.
+           Code that assigned to SharedStatedSampler<R> should be updated.
+o RNG-135: New "TetrahedronSampler" to sample uniformly from a tetrahedron.
+o RNG-134: New "BoxSampler" to sample uniformly from a box (or hyperrectangle).
+o RNG-133: New "LineSampler" to sample uniformly on a line segment.
+o RNG-131: New "TriangleSampler" to sample uniformly from a triangle.
+o RNG-132: New "o.a.c.rng.sampling.shape" package for sampling coordinates from shapes.
+o RNG-128: New "UnitBallSampler" to generate coordinates uniformly within an n-unit ball.
+o RNG-126: "PoissonSamplerCache": Method to return a SharedStateDiscreteSampler.
+o RNG-124: Add fixed increment versions of the PCG generators.
+
+Fixed Bugs:
+o RNG-159: "ZigguratSampler.NormalizedGaussian": Corrected biased sampling within convex regions
+           at the edge of the ziggurat.
+o RNG-146: "GaussianSampler": Prevent infinite mean and standard deviation.
+o RNG-144: "AhrensDieterExponentialSampler": Avoid possible infinite loop during sampling if the
+           underlying UniformRandomProvider creates a zero for the uniform deviate.
+o RNG-130: "UnitSphereSampler": Fix 1 dimension sampling to only return vectors containing 1 or -1.
+
+Changes:
+o RNG-163: Update test suite to JUnit 5.
+o          Simplify assertions with simpler equivalent. Thanks to Arturo Bernal.
+o RNG-162: Update the minimum Java version to 1.8.
+o RNG-160: "ZigguratSampler.NormalizedGaussian": Performance improvement by extracting ziggurat
+           edge sampling to a separate method.
+o RNG-157: "UnitSphereSampler": Deprecate public constructor. Use the factory constructor to create
+           an optimal sampler.
+o RNG-155: "ZigguratNormalizedGaussianSampler": Update to a table size of 256.
+o RNG-152: Update samplers to use ZigguratSampler.NormalizedGaussian for Gaussian deviates.
+o RNG-154: Update Gaussian samplers to avoid infinity in the tails of the distribution. Applies
+           to: ZigguratNormalisedGaussianSampler; BoxMullerNormalizedGaussianSampler; and
+           BoxMullerGaussianSampler.
+o RNG-153: "UnitBallSampler": Update to use the ZigguratSampler for an exponential deviate for
+           ball point picking.
+o RNG-150: Update "LargeMeanPoissonSampler" and "GeometricSampler" to use the ZigguratSampler for
+           exponential deviates.
+o RNG-129: "UnitSphereSampler": Improve performance with specialisations for low order dimensions.
+           Added a factory constructor to create the sampler.
+
+
+For complete information on Apache Commons RNG, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons RNG website:
+
+https://commons.apache.org/proper/commons-rng/
+
+
+=============================================================================
+
+              Apache Commons RNG 1.3 RELEASE NOTES
+
+The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.3
+
+The Apache Commons RNG project provides pure-Java implementation of pseudo-random generators.
+
+This is a minor release of Apache Commons RNG, containing a
+few new features and performance improvements.
+
+Apache Commons RNG 1.3 contains the following library modules:
+ commons-rng-client-api (requires Java 6)
+ commons-rng-core (requires Java 6)
+ commons-rng-simple (requires Java 6)
+ commons-rng-sampling (requires Java 6)
+
+The code in module 'commons-rng-core' should not be accessed
+directly by applications as a future release might make use of
+the JPMS modularization feature available in Java 9+.
+
+Additional code is provided in the following module:
+  commons-rng-examples (requires Java 9)
+It is however not part of the official API and no compatibility
+should be expected in subsequent releases.
+
+We would like to also note that unit tests in module 'commons-rng-sampling'
+are bound to fail with some probability; this is expected due to the nature
+of random number generation.  The 'maven-surefire-plugin' can be configured
+to re-run tests that fail and pass the build if they succeed (the test will
+be marked as 'flaky' in the report).
+
+New features:
+o RNG-117:  Additional "XorShiRo" family generators. This adds 4 PlusPlus general purpose variants
+        of existing generators and 3 variants of a large state (1024-bit) generator.
+o RNG-117:  "RandomSource": Support creating a byte[] seed suitable for the implementing
+        generator class.
+o RNG-116:  "RandomSource": Expose interfaces supported by the implementing generator class
+        with methods isJumpable() and isLongJumpable().
+o RNG-111:  New "JenkinsSmallFast32" and "JenkinsSmallFast64" generators.
+o RNG-19:  "JDKRandomWrapper": Wraps an instance of java.util.Random for use as a
+        UniformRandomProvider. Can wrap a SecureRandom to use functionality
+        provided by the JDK for cryptographic random numbers and platform dependent
+        features such as reading /dev/urandom on Linux.
+o RNG-112:  New "DotyHumphreySmallFastCounting32" and "DotyHumphreySmallFastCounting64" generators.
+o RNG-85:  New "MiddleSquareWeylSequence" generator.
+o RNG-110:  Factory methods for Discrete and Continuous distribution samplers. The factory method
+        can choose the optimal implementation for the distribution parameters.
+o RNG-84:  New Permuted Congruential Generators (PCG) from the PCG family.
+        Added the LCG and MCG 32 bit output versions of the XSH-RS and XSH-RR operations,
+        along with the 64 bit RXS-M-XS edition. Thanks to Abhishek Singh Dhadwal.
+o RNG-102:  New "SharedStateSampler" interface to allow a sampler to create a new instance with
+        a new source of randomness. Any pre-computed state can be shared between the samplers.
+o RNG-108:  Update "SeedFactory" to improve performance.
+o RNG-99:  New "AliasMethodDiscreteSampler" that can sample from any discrete distribution defined
+        by an array of probabilities. Set-up is O(n) time and sampling is O(1) time.
+o RNG-100:  New "GuideTableDiscreteSampler" that can sample from any discrete distribution defined
+        by an array of probabilities.
+o RNG-98:  New "LongJumpableUniformRandomProvider" interface extends JumpableUniformRandomProvider
+        with a long jump method.
+o RNG-97:  New "JumpableUniformRandomProvider" interface provides a jump method that advances
+        the generator a large number of steps of the output sequence in a single operation. A
+        copy is returned allowing repeat invocations to create a series of generators
+        for use in parallel computations.
+o RNG-101:  New "MarsagliaTsangWangDiscreteSampler" that provides samples from a discrete
+        distribution stored as a look-up table using a single random integer deviate. Computes
+        tables for the Poisson or Binomial distributions, and generically any provided discrete
+        probability distribution.
+o RNG-91:  New "KempSmallMeanPoissonSampler" that provides Poisson samples using only 1 random
+        deviate per sample. This algorithm outperforms the SmallMeanPoissonSampler
+        when the generator is slow.
+o RNG-70:  New "XorShiRo" family of generators. This adds 6 new general purpose generators with
+        different periods and 4 related generators with improved performance for floating-point
+        generation.
+o RNG-82:  New "XorShift1024StarPhi" generator. This is a modified implementation of
+        XorShift1024Star that improves randomness of the output sequence. The XOR_SHIFT_1024_S
+        enum has been marked deprecated as a note to users to switch to the new
+        XOR_SHIFT_1024_S_PHI version.
+o RNG-78:  New "ThreadLocalRandomSource" class provides thread safe access to random generators.
+o RNG-79:  Benchmark methods for producing nextDouble and nextFloat.
+o RNG-72:  Add new JMH benchmark ConstructionPerformance.
+o RNG-71:  Validate parameters for the distribution samplers.
+o RNG-67:  Instructions for how to build and run the examples-stress code.
+o RNG-69:  New "GeometricSampler" class.
+
+Fixed Bugs:
+o RNG-115:  "JDKRandom": Fixed the restore state method to function when the instance has not
+        previously been used to save state.
+o RNG-96:  "AhrensDieterMarsagliaTsangGammaSampler": Fix parameter interpretation so that alpha
+        is a 'shape' parameter and theta is a 'scale' parameter. This reverses the functionality
+        of the constructor parameters from previous versions. Dependent code should be checked
+        and parameters reversed to ensure existing functionality is maintained.
+o RNG-93:  "SmallMeanPoissonSampler": Requires the Poisson probability for p(x=0) to be positive
+        setting an upper bound on the mean of approximately 744.44.
+o RNG-92:  "LargeMeanPoissonSampler": Requires mean >= 1.
+
+Changes:
+o RNG-122:  "SeedFactory": Use XoRoShiRo1024PlusPlus as the default source of randomness.
+o RNG-121:  "ChengBetaSampler": Algorithms for different distribution parameters have
+        been delegated to specialised classes.
+o RNG-120:  Update security of serialization code for java.util.Random instances. Implement
+        look-ahead deserialization or remove the use of ObjectInputStream.readObject().
+o RNG-76:  "SplitMix64": Added primitive long constructor.
+o RNG-119:  Add LongJumpable support to XoShiRo generators previously only supporting Jumpable.
+o RNG-114:  "ListSampler": Select the shuffle algorithm based on the list type. This improves
+        performance for non-RandomAccess lists such as LinkedList.
+o RNG-109:  "DiscreteProbabilityCollectionSampler": Use a faster enumerated probability
+        distribution sampler to replace the binary search algorithm.
+o RNG-90:  "BaseProvider": Updated to use faster algorithm for nextInt(int).
+o RNG-95:  "DiscreteUniformSampler": Updated to use faster algorithms for generation of ranges.
+o RNG-106:  Ensure SeedFactory produces non-zero seed arrays. This avoids invalid seeding of
+        generators that cannot recover from a seed of zeros.
+o RNG-103:  "LargeMeanPoissonSampler: Switch from SmallMeanPoissonSampler to use
+        KempSmallMeanPoissonSampler for the fractional mean sample.
+o RNG-75:  "RandomSource.create(...)": Refactor internal components to allow custom seeding routines
+        per random source. Improvements were made to the speed of creating generators with small
+        seeds.
+o RNG-77:  "NumberFactory": Improve performance of int and long array to/from byte array
+        conversions.
+o RNG-88:  Update the generation performance JMH benchmarks to have a reference baseline.
+o RNG-87:  "MultiplyWithCarry256": Performance improvement by advancing state one step per sample.
+o RNG-81:  "NumberFactory": Evenly sample all dyadic rationals between 0 and 1.
+o RNG-73:  Add the methods used from UniformRandomProvider to each sampler in the sampling module.
+o RNG-74:  "DiscreteUniformSampler": Algorithms for small and large integer ranges have
+        been delegated to specialised classes.
+o RNG-68:  "AhrensDieterMarsagliaTsangGammaSampler": Algorithms for small and large theta have
+        been delegated to specialised classes.
+
+
+For complete information on Apache Commons RNG, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons RNG website:
+
+https://commons.apache.org/proper/commons-rng/
+
+=============================================================================
+
+              Apache Commons RNG 1.2 RELEASE NOTES
+
+The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.2
+
+The Apache Commons RNG project provides pure-Java implementation of pseudo-random generators.
+
+This is a minor release of Apache Commons RNG, containing a
+few new features and performance improvements.
+
+Apache Commons RNG 1.2 contains the following library modules:
+ commons-rng-client-api (requires Java 6)
+ commons-rng-core (requires Java 6)
+ commons-rng-simple (requires Java 6)
+ commons-rng-sampling (requires Java 6)
+
+The code in module 'commons-rng-core' should not be accessed
+directly by applications as a future release might make use of
+the JPMS modularization feature available in Java 9+.
+
+Additional code is provided in the following module:
+  commons-rng-examples (requires Java 9)
+It is however not part of the official API and no compatibility
+should be expected in subsequent releases.
+
+We would like to also note that unit tests in module 'commons-rng-sampling'
+are bound to fail with some probability; this is expected due to the nature
+of random number generation.  The 'maven-surefire-plugin' can be configured
+to re-run tests that fail and pass the build if they succeed (the test will
+be marked as 'flaky' in the report).
+
+Changes in this version include:
+
+New features:
+o RNG-62:  New "CombinationSampler" class. Thanks to Alex D. Herbert.
+
+Fixed Bugs:
+o RNG-59:  Use JDK's "SecureRandom" to seed the "SeedFactory".
+o RNG-56:  "ZigguratNormalizedGaussianSampler": Missing statements in least used branch.
+o RNG-55:  "UnitSphereSampler": Prevent returning NaN components and forbid
+        negative dimension. Thanks to Alex D. Herbert.
+
+Changes:
+o RNG-63:  "NumberFactory": Some methods have become obsolete following RNG-57.
+o RNG-64:  "PermutationSampler" and "CombinationSampler" shared code moved to a utility class.
+        Thanks to Alex D. Herbert.
+o RNG-61:  "PermutationSampler": Performance improvement. Thanks to Alex D. Herbert.
+o RNG-57:  Cache for using up all the bits provided by the underlying source of randomness.
+        Thanks to Alex D. Herbert.
+o RNG-60:  Use random seeds for unit testing.
+o RNG-52:  Set conservative upper bound in "LargePoissonSampler" to avoid truncation.
+o RNG-58:  Allow part of RNG state to be contained in base classes, e.g. to enable
+        caching in common code (see RNG-57).
+o RNG-51:  "PoissonSampler": Performance improvement. Thanks to Alex D. Herbert.
+
+
+For complete information on Apache Commons RNG, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons RNG website:
+
+https://commons.apache.org/proper/commons-rng/
+
+=============================================================================
+
+              Apache Commons RNG 1.1 RELEASE NOTES
+
+The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.1
+
+The Apache Commons RNG project provides pure-Java implementation of pseudo-random generators.
+
+This is a minor release of Apache Commons RNG, containing a
+few new features and performance improvements.
+
+Apache Commons RNG 1.1 contains the following library modules:
+  commons-rng-client-api (requires Java 6)
+  commons-rng-core (requires Java 6)
+  commons-rng-simple (requires Java 6)
+  commons-rng-sampling (requires Java 6)
+
+The code in module 'commons-rng-core' should not be accessed
+directly by applications as a future release might make use of
+the JPMS modularization feature available in Java 9+.
+
+Additional code is provided in the following module:
+  commons-rng-examples (requires Java 9)
+It is however not part of the official API and no compatibility
+should be expected in subsequent releases.
+
+We would like to also note that unit tests in module 'commons-rng-sampling'
+are bound to fail with some probability; this is expected due to the nature
+of random number generation.  The 'maven-surefire-plugin' can be configured
+to re-run tests that fail and pass the build if they succeed (the test will
+be marked as 'flaky' in the report).
+
+Changes in this version include:
+
+New features:
+o RNG-37:  Implementation of the "Ziggurat" algorithm for Gaussian sampling.
+o RNG-47:  "DiscreteProbabilityCollectionSampler": Sampling from a collection of items
+        with user-defined probabilities (feature ported from "Commons Math").
+o RNG-43:  "LogNormalSampler" with user-defined underlying "NormalizedGaussianSampler".
+o RNG-39:  "UnitSphereSampler": generate random vectors isotropically located
+        on the surface of a sphere (feature ported from "Commons Math").
+o RNG-36:  "MarsagliaNormalizedGaussianSampler": Faster variation of the
+        Box-Muller algorithm.
+        This version is used within "AhrensDieterMarsagliaTsangGammaSampler"
+        "MarsagliaLogNormalSampler" and "PoissonSampler" (generated sequences
+        will thus differ from those generated by version 1.0 of the library).
+o RNG-35:  New generic "GaussianSampler" based on "NormalizedGaussianSampler"
+        marker interface.
+        Implementation of "BoxMullerNormalizedGaussianSampler" deprecates
+        "BoxMullerGaussianSampler".
+
+Fixed Bugs:
+o RNG-53:  Class "SamplerBase" has been deprecated.  It was meant for internal use
+        only but, through inheritance, it allows incorrect usage of the sampler
+        classes.
+
+Changes:
+o RNG-50: "PoissonSampler": Algorithms for small mean and large mean have
+        been separated into dedicated classes.  Cache precomputation has
+        been disabled as it is only marginally used and is a performance
+        hit for small sampling sets.Thanks to Alex D. Herbert.
+o RNG-42:  Use "ZigguratNormalizedGaussianSampler" within the library.
+o RNG-46:  Following RNG-43, "BoxMullerLogNormalSampler" has been deprecated.
+        Furthermore, its base class has been removed; although it is a binary
+        incompatibility, it cannot cause any problem that were not already
+        present in code using v1.0 of the library: Calls to the base class
+        would have raised a NPE.
+
+
+For complete information on Apache Commons RNG, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons RNG website:
+
+https://commons.apache.org/proper/commons-rng/
+
+=============================================================================
+
+              Apache Commons RNG 1.0 RELEASE NOTES
+
+The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.0
+
+The Apache Commons RNG project provides pure-Java implementation of pseudo-random generators.
+
+This is the first release of Apache Commons RNG.
+Apache Commons RNG 1.0 contains the following modules:
+ commons-rng-client-api (requires Java 6)
+ commons-rng-core (requires Java 6)
+ commons-rng-simple (requires Java 6)
+ commons-rng-sampling (requires Java 6)
+ commons-rng-jmh (requires Java 6)
+ commons-rng-examples (requires Java 7)
+
+No changes defined in this version.
+
+For complete information on Apache Commons RNG, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons RNG website:
+
+https://commons.apache.org/proper/commons-rng/
diff --git a/src/site/xdoc/download_rng.xml b/src/site/xdoc/download_rng.xml
index 7c6630f..cf764a2 100644
--- a/src/site/xdoc/download_rng.xml
+++ b/src/site/xdoc/download_rng.xml
@@ -51,7 +51,7 @@
  |                                                                      |
  |  <properties>                                                        |
  |    <commons.componentid>math</commons.componentid>                   |
- |    <commons.release.version>1.3</commons.release.version>            |
+ |    <commons.release.version>1.2</commons.release.version>            |
  |  </properties>                                                       |
  |                                                                      |
  +======================================================================+
@@ -113,32 +113,32 @@
       </p>
     </subsection>
     </section>
-    <section name="Apache Commons RNG 1.3 (requires Java 6+)">
+    <section name="Apache Commons RNG 1.4 (requires Java 8+)">
       <subsection name="Binaries">
         <table>
           <tr>
-              <td><a href="[preferred]/commons/rng/binaries/commons-rng-1.3-bin.tar.gz">commons-rng-1.3-bin.tar.gz</a></td>
-              <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.3-bin.tar.gz.sha512">sha512</a></td>
-              <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.3-bin.tar.gz.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/rng/binaries/commons-rng-1.4-bin.tar.gz">commons-rng-1.4-bin.tar.gz</a></td>
+              <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.4-bin.tar.gz.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.4-bin.tar.gz.asc">pgp</a></td>
           </tr>
           <tr>
-              <td><a href="[preferred]/commons/rng/binaries/commons-rng-1.3-bin.zip">commons-rng-1.3-bin.zip</a></td>
-              <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.3-bin.zip.sha512">sha512</a></td>
-              <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.3-bin.zip.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/rng/binaries/commons-rng-1.4-bin.zip">commons-rng-1.4-bin.zip</a></td>
+              <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.4-bin.zip.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.4-bin.zip.asc">pgp</a></td>
           </tr>
         </table>
       </subsection>
       <subsection name="Source">
         <table>
           <tr>
-              <td><a href="[preferred]/commons/rng/source/commons-rng-1.3-src.tar.gz">commons-rng-1.3-src.tar.gz</a></td>
-              <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.3-src.tar.gz.sha512">sha512</a></td>
-              <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.3-src.tar.gz.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/rng/source/commons-rng-1.4-src.tar.gz">commons-rng-1.4-src.tar.gz</a></td>
+              <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.4-src.tar.gz.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.4-src.tar.gz.asc">pgp</a></td>
           </tr>
           <tr>
-              <td><a href="[preferred]/commons/rng/source/commons-rng-1.3-src.zip">commons-rng-1.3-src.zip</a></td>
-              <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.3-src.zip.sha512">sha512</a></td>
-              <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.3-src.zip.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/rng/source/commons-rng-1.4-src.zip">commons-rng-1.4-src.zip</a></td>
+              <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.4-src.zip.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.4-src.zip.asc">pgp</a></td>
           </tr>
         </table>
       </subsection>
diff --git a/src/site/xdoc/release-history.xml b/src/site/xdoc/release-history.xml
index 92f6d2a..db826d7 100644
--- a/src/site/xdoc/release-history.xml
+++ b/src/site/xdoc/release-history.xml
@@ -25,6 +25,9 @@
       <table>
         <tr><th>Version</th><th>Release date (YYYY-MM-DD)</th><th>Required Java Version</th><th>Release notes</th></tr>
         <tr>
+          <td>1.4</td><td>2021-09-06</td><td>8+</td><td><a href="release-notes/RELEASE-NOTES-1.4.txt">release notes for 1.4</a></td>
+        </tr>
+        <tr>
           <td>1.3</td><td>2019-11-08</td><td>6+</td><td><a href="release-notes/RELEASE-NOTES-1.3.txt">release notes for 1.3</a></td>
         </tr>
         <tr>
