diff --git a/README.md b/README.md
index 448b0d3..3c5565d 100644
--- a/README.md
+++ b/README.md
@@ -46,7 +46,7 @@
 [![Build Status](https://travis-ci.org/apache/commons-text.svg)](https://travis-ci.org/apache/commons-text)
 [![Coverage Status](https://coveralls.io/repos/apache/commons-text/badge.svg)](https://coveralls.io/r/apache/commons-text)
 [![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.apache.commons/commons-text/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.apache.commons/commons-text/)
-[![Javadocs](https://javadoc.io/badge/org.apache.commons/commons-text/1.8.svg)](https://javadoc.io/doc/org.apache.commons/commons-text/1.8)
+[![Javadocs](https://javadoc.io/badge/org.apache.commons/commons-text/1.9.svg)](https://javadoc.io/doc/org.apache.commons/commons-text/1.9)
 
 Apache Commons Text is a library focused on algorithms working on strings.
 
@@ -67,7 +67,7 @@
 <dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-text</artifactId>
-  <version>1.8</version>
+  <version>1.9</version>
 </dependency>
 ```
 
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 9f24bf8..eb3a4e2 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -1,4 +1,85 @@
 Apache Commons Text
+Version 1.9
+Release Notes
+
+
+INTRODUCTION:
+
+This document contains the release notes for the 1.9 version of Apache Commons Text.
+Commons Text is a set of utility functions and reusable components for the purpose of processing
+and manipulating text that should be of use in a Java environment.
+
+
+Apache Commons Text is a library focused on algorithms working on strings.
+
+Release 1.9. Requires Java 8.
+
+Changes in this version include:
+
+New features:
+o Add StringMatcher.size(). Thanks to Gary Gregory.
+o Refactor TextStringBuilder.readFrom(Readable), extracting readFrom(CharBuffer) and readFrom(Reader). Thanks to Gary Gregory.
+o Add BiStringLookup and implementation BiFunctionStringLookup. Thanks to Gary Gregory.
+o Add org.apache.commons.text.StringSubstitutor.StringSubstitutor(StringSubstitutor). Thanks to Gary Gregory.
+o Add org.apache.commons.text.TextStringBuilder.TextStringBuilder(CharSequence). Thanks to Gary Gregory.
+o Add org.apache.commons.text.TextStringBuilder.drainChar(int). Thanks to Gary Gregory.
+o Add org.apache.commons.text.TextStringBuilder.drainChars(int, int, char[]. int). Thanks to Gary Gregory.
+o Add org.apache.commons.text.TextStringBuilder.isNotEmpty(). Thanks to Gary Gregory.
+o Add org.apache.commons.text.TextStringBuilder.isReallocated(). Thanks to Gary Gregory.
+o Add org.apache.commons.text.TextStringBuilder.readFrom(Reader, int). Thanks to Gary Gregory.
+o Add org.apache.commons.text.TextStringBuilder.set(String). Thanks to Gary Gregory.
+o Add org.apache.commons.text.TextStringBuilder.wrap(char[]). Thanks to Gary Gregory.
+o Add org.apache.commons.text.TextStringBuilder.wrap(char[], int). Thanks to Gary Gregory.
+o Add org.apache.commons.text.io.StringSubstitutorReader. Thanks to Gary Gregory.
+o Add org.apache.commons.text.lookup.StringLookupFactory.functionStringLookup(Function<String, V>). Thanks to Gary Gregory.
+o Add org.apache.commons.text.matcher.StringMatcher.isMatch(CharSequence, int). Thanks to Gary Gregory.
+o Add org.apache.commons.text.matcher.StringMatcher.isMatch(CharSequence, int, int, int). Thanks to Gary Gregory.
+o Add org.apache.commons.text.matcher.StringMatcherFactory.andMatcher(StringMatcher...). Thanks to Gary Gregory.
+o Add org.apache.commons.text.matcher.StringMatcherFactory.stringMatcher(char...). Thanks to Gary Gregory.
+
+Fixed Bugs:
+o TEXT-166:  Removed non-existing parameter from Javadocs and spelled out parameters in throws. Thanks to Mikko Maunu.
+o TEXT-149:  StringEscapeUtils.unescapeCsv doesn't remove quotes at begin and end of string. Thanks to Yuji Konishi.
+o TEXT-174:  ScriptStringLookup does not accept ":" #126. Thanks to furkilic.
+o TEXT-178:  StringSubstitutor incorrectly removes some escape characters. Thanks to Gary Gregory.
+o TEXT-181:  Fix Javadocs #135. Thanks to XenoAmess.
+o TEXT-182:  Fix typos #137. Thanks to XenoAmess.
+o TEXT-183:  Make ConstantStringLookup.constantCache final #136. Thanks to XenoAmess.
+o TEXT-184:  Simplify if in CaseUtils #134. Thanks to XenoAmess.
+
+Changes:
+o [javadoc] Fix compiler warnings in Java code example in Javadoc #124. Thanks to Johan Hammar.
+o TEXT-177:  Update from Apache Commons Lang 3.9 to 3.11. Thanks to Gary Gregory.
+o [build] Skip clirr since we use JApiCmp. Thanks to Gary Gregory.
+o [test] junit-jupiter 5.5.1 -> 5.5.2. Thanks to Gary Gregory.
+o [test] org.assertj:assertj-core 3.13.2 -> 3.16.1. Thanks to Gary Gregory.
+o [build] com.puppycrawl.tools:checkstyle 8.23 -> 8.34. Thanks to Gary Gregory.
+o [build] Update JUnit from 5.5.2 to 5.6.2. Thanks to Gary Gregory.
+o [build] commons.jacoco.version 0.8.4 -> 0.8.5. Thanks to Gary Gregory.
+o [build] commons.javadoc.version 3.1.1 -> 3.2.0. Thanks to Gary Gregory.
+o [build] commons.japicmp.version 0.14.1 -> 0.14.3. Thanks to Gary Gregory.
+o [build] checkstyle.plugin.version 3.1.0 -> 3.1.1. Thanks to Gary Gregory.
+o [build] checkstyle.version 8.27 -> 8.33. Thanks to Gary Gregory.
+o [build] org.apache.commons:commons-parent 48 -> 51. Thanks to Gary Gregory.
+o [build] maven-pmd-plugin 3.12.0 -> 3.13.0. Thanks to Gary Gregory.
+o [build] org.mockito 3.3.3 -> 3.4.4. Thanks to Gary Gregory.
+
+
+Historical list of changes: https://commons.apache.org/proper/commons-textchanges-report.html
+
+For complete information on Apache Commons Text, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Apache Commons Text website:
+
+https://commons.apache.org/proper/commons-text
+
+Download page: https://commons.apache.org/proper/commons-textdownload_text.cgi
+
+Have fun!
+-Apache Commons Team
+
+=============================================================================
+
+Apache Commons Text
 Version 1.8
 Release Notes
 
@@ -39,7 +120,6 @@
 
 Download it from https://commons.apache.org/proper/commons-text/download_text.cgi
 
-
 =============================================================================
 
 Apache Commons Text
@@ -77,8 +157,8 @@
 o TEXT-156:  Fix the RegexTokenizer to use a static Pattern
 o TEXT-157:  Remove rounding from JaccardDistance and JaccardSimilarity
 o TEXT-162:  Update Apache Commons Lang from 3.8.1 to 3.9.
-o            Update tests from org.assertj:assertj-core 3.12.1 to 3.12.2.
-o            Update site from com.puppycrawl.tools:checkstyle 8.18 to 8.21.
+o Update tests from org.assertj:assertj-core 3.12.1 to 3.12.2.
+o Update site from com.puppycrawl.tools:checkstyle 8.18 to 8.21.
 
 Historical list of changes: https://commons.apache.org/proper/commons-text/changes-report.html
 
@@ -89,7 +169,6 @@
 
 Download it from https://commons.apache.org/proper/commons-text/download_text.cgi
 
-
 =============================================================================
 
                           Apache Commons Text
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 2e7e173..10a4ce4 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -45,7 +45,7 @@
   </properties>
   <body>
 
-  <release version="1.9" date="2020-MM-DD" description="Release 1.9. Requires Java 8.">
+  <release version="1.9" date="2020-07-21" description="Release 1.9. Requires Java 8.">
     <action issue="TEXT-166" type="fix" dev="kinow" due-to="Mikko Maunu">Removed non-existing parameter from Javadocs and spelled out parameters in throws.</action>
     <action issue="TEXT-149" type="fix" dev="kinow" due-to="Yuji Konishi">StringEscapeUtils.unescapeCsv doesn't remove quotes at begin and end of string.</action>
     <action issue="TEXT-174" type="fix" dev="ggregory" due-to="furkilic">ScriptStringLookup does not accept ":" #126.</action>
diff --git a/src/changes/release-notes.vm b/src/changes/release-notes.vm
index b4f5e8c..357ff54 100644
--- a/src/changes/release-notes.vm
+++ b/src/changes/release-notes.vm
@@ -67,28 +67,28 @@
 ##
 #macro ( processaction )
 ## Use replaceAll to fix up LF-only line ends on Windows.
-    #set($action=$actionItem.getAction().replaceAll("\n","
+#set($action=$actionItem.getAction().replaceAll("\n","
 "))
 ## Fix up indentation for multi-line action descriptions
-    #set($action=$action.replaceAll("(?m)^  +",$indent2))
-    #if ($actionItem.getIssue())
-        #set($issue="$actionItem.getIssue():")
-    ## Pad shorter issue numbers
-        #if ($issue.length() < $indent1.length())#set ($issue="$issue ")#end
-        #if ($issue.length() < $indent1.length())#set ($issue="$issue ")#end
-        #if ($issue.length() < $indent1.length())#set ($issue="$issue ")#end
-    #else
-        #set($issue=$indent1)
-    #end
-    #if ($actionItem.getDueTo())
-        #set($dueto=" Thanks to $actionItem.getDueTo().")
-    #else
-        #set($dueto="")
-    #end
+#set($action=$action.replaceAll("(?m)^  +",$indent2))
+#if ($actionItem.getIssue())
+#set($issue="$actionItem.getIssue():")
+## Pad shorter issue numbers
+#if ($issue.length() < $indent1.length())#set ($issue="$issue ")#end
+#if ($issue.length() < $indent1.length())#set ($issue="$issue ")#end
+#if ($issue.length() < $indent1.length())#set ($issue="$issue ")#end
+#else
+#set($issue=$indent1)
+#end
+#if ($actionItem.getDueTo())
+#set($dueto=" Thanks to $actionItem.getDueTo().")
+#else
+#set($dueto="")
+#end
 o $issue ${action}$dueto
-    #set($action="")
-    #set($issue="")
-    #set($dueto="")
+#set($action="")
+#set($issue="")
+#set($dueto="")
 #end
 ##
 #if ($release.getActions().size() == 0)
@@ -97,21 +97,21 @@
 Changes in this version include:
 
 #if ($release.getActions('add').size() !=0)
-- New Features
+New features:
 #foreach($actionItem in $release.getActions('add'))
 #processaction()
-#end
+#end 
 #end
 
 #if ($release.getActions('fix').size() !=0)
-- Fixed Bugs
+Fixed Bugs:
 #foreach($actionItem in $release.getActions('fix'))
 #processaction()
 #end
 #end
 
 #if ($release.getActions('update').size() !=0)
-- Changes
+Changes:
 #foreach($actionItem in $release.getActions('update'))
 #processaction()
 #end
@@ -133,4 +133,7 @@
 
 ${project.url}
 
-Download it from ${project.url}/download_text.cgi
+Download page: ${project.url}download_text.cgi
+
+Have fun!
+-Apache Commons Team
diff --git a/src/site/xdoc/download_text.xml b/src/site/xdoc/download_text.xml
index eea4f02..dc35f81 100644
--- a/src/site/xdoc/download_text.xml
+++ b/src/site/xdoc/download_text.xml
@@ -113,32 +113,32 @@
       </p>
     </subsection>
     </section>
-    <section name="Apache Commons Text 1.8 (Java 8+)">
+    <section name="Apache Commons Text 1.9 (Java 8+)">
       <subsection name="Binaries">
         <table>
           <tr>
-              <td><a href="[preferred]/commons/text/binaries/commons-text-1.8-bin.tar.gz">commons-text-1.8-bin.tar.gz</a></td>
-              <td><a href="https://www.apache.org/dist/commons/text/binaries/commons-text-1.8-bin.tar.gz.sha512">sha512</a></td>
-              <td><a href="https://www.apache.org/dist/commons/text/binaries/commons-text-1.8-bin.tar.gz.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/text/binaries/commons-text-1.9-bin.tar.gz">commons-text-1.9-bin.tar.gz</a></td>
+              <td><a href="https://www.apache.org/dist/commons/text/binaries/commons-text-1.9-bin.tar.gz.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/text/binaries/commons-text-1.9-bin.tar.gz.asc">pgp</a></td>
           </tr>
           <tr>
-              <td><a href="[preferred]/commons/text/binaries/commons-text-1.8-bin.zip">commons-text-1.8-bin.zip</a></td>
-              <td><a href="https://www.apache.org/dist/commons/text/binaries/commons-text-1.8-bin.zip.sha512">sha512</a></td>
-              <td><a href="https://www.apache.org/dist/commons/text/binaries/commons-text-1.8-bin.zip.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/text/binaries/commons-text-1.9-bin.zip">commons-text-1.9-bin.zip</a></td>
+              <td><a href="https://www.apache.org/dist/commons/text/binaries/commons-text-1.9-bin.zip.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/text/binaries/commons-text-1.9-bin.zip.asc">pgp</a></td>
           </tr>
         </table>
       </subsection>
       <subsection name="Source">
         <table>
           <tr>
-              <td><a href="[preferred]/commons/text/source/commons-text-1.8-src.tar.gz">commons-text-1.8-src.tar.gz</a></td>
-              <td><a href="https://www.apache.org/dist/commons/text/source/commons-text-1.8-src.tar.gz.sha512">sha512</a></td>
-              <td><a href="https://www.apache.org/dist/commons/text/source/commons-text-1.8-src.tar.gz.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/text/source/commons-text-1.9-src.tar.gz">commons-text-1.9-src.tar.gz</a></td>
+              <td><a href="https://www.apache.org/dist/commons/text/source/commons-text-1.9-src.tar.gz.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/text/source/commons-text-1.9-src.tar.gz.asc">pgp</a></td>
           </tr>
           <tr>
-              <td><a href="[preferred]/commons/text/source/commons-text-1.8-src.zip">commons-text-1.8-src.zip</a></td>
-              <td><a href="https://www.apache.org/dist/commons/text/source/commons-text-1.8-src.zip.sha512">sha512</a></td>
-              <td><a href="https://www.apache.org/dist/commons/text/source/commons-text-1.8-src.zip.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/text/source/commons-text-1.9-src.zip">commons-text-1.9-src.zip</a></td>
+              <td><a href="https://www.apache.org/dist/commons/text/source/commons-text-1.9-src.zip.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/text/source/commons-text-1.9-src.zip.asc">pgp</a></td>
           </tr>
         </table>
       </subsection>
