diff --git a/src/site/resources/release-notes/RELEASE-NOTES-1.3.txt b/src/site/resources/release-notes/RELEASE-NOTES-1.3.txt
new file mode 100644
index 0000000..b429d75
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-1.3.txt
@@ -0,0 +1,251 @@
+
+              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.
+It must be noted that, due to the nature of random number generation, some of 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-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.
+It must be noted that, due to the nature of random number generation, some of 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-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. 
+
+
+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/release-history.xml b/src/site/xdoc/release-history.xml
index 6a797ec..92f6d2a 100644
--- a/src/site/xdoc/release-history.xml
+++ b/src/site/xdoc/release-history.xml
@@ -20,11 +20,14 @@
   </properties>
   <body>
     <!-- ================================================== -->
-    <section name="Commons Text Release History">
-      <p><em>Note.</em> For older javadocs see the individal artifact sub-sites.</p>
+    <section name="Commons RNG Release History">
+      <p><em>Note.</em> For older release javadocs see the individual artifact sub-sites.</p>
       <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.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>
           <td>1.2</td><td>2018-12-07</td><td>6+</td><td><a href="release-notes/RELEASE-NOTES-1.2.txt">release notes for 1.2</a></td>
         </tr>
         <tr>
