diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 636aff7..1909d53 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -49,13 +49,13 @@
 ---------------
 
 + Make sure you have a [JIRA account](https://issues.apache.org/jira/).
-+ Make sure you have a [GitHub account](https://github.com/signup/free).
++ Make sure you have a [GitHub account](https://github.com/signup/free). This is not essential, but makes providing patches much easier.
 + If you're planning to implement a new feature it makes sense to discuss your changes on the [dev list](https://commons.apache.org/mail-lists.html) first. This way you can make sure you're not wasting your time on something that isn't considered to be in Apache Commons CSV's scope.
 + Submit a [Jira Ticket][jira] for your issue, assuming one does not already exist.
   + Clearly describe the issue including steps to reproduce when it is a bug.
   + Make sure you fill in the earliest version that you know has the issue.
 + Find the corresponding [repository on GitHub](https://github.com/apache/?query=commons-),
-[fork](https://help.github.com/articles/fork-a-repo/) and check out your forked repository.
+[fork](https://help.github.com/articles/fork-a-repo/) and check out your forked repository. If you don't have a GitHub account, you can still clone the Commons repository.
 
 Making Changes
 --------------
@@ -109,7 +109,6 @@
 + [General GitHub documentation](https://help.github.com/)
 + [GitHub pull request documentation](https://help.github.com/articles/creating-a-pull-request/)
 + [Apache Commons Twitter Account](https://twitter.com/ApacheCommons)
-+ `#apache-commons` IRC channel on `irc.freenode.net`
 
 [cla]:https://www.apache.org/licenses/#clas
 [jira]:https://issues.apache.org/jira/browse/CSV
diff --git a/README.md b/README.md
index bdc5530..6d197a8 100644
--- a/README.md
+++ b/README.md
@@ -46,7 +46,7 @@
 [![Java CI](https://github.com/apache/commons-csv/actions/workflows/maven.yml/badge.svg)](https://github.com/apache/commons-csv/actions/workflows/maven.yml)
 [![Coverage Status](https://codecov.io/gh/apache/commons-csv/branch/master/graph/badge.svg)](https://app.codecov.io/gh/apache/commons-csv)
 [![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.apache.commons/commons-csv/badge.svg?gav=true)](https://maven-badges.herokuapp.com/maven-central/org.apache.commons/commons-csv/?gav=true)
-[![Javadocs](https://javadoc.io/badge/org.apache.commons/commons-csv/1.10.0.svg)](https://javadoc.io/doc/org.apache.commons/commons-csv/1.10.0)
+[![Javadocs](https://javadoc.io/badge/org.apache.commons/commons-csv/1.11.0.svg)](https://javadoc.io/doc/org.apache.commons/commons-csv/1.11.0)
 [![CodeQL](https://github.com/apache/commons-csv/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/apache/commons-csv/actions/workflows/codeql-analysis.yml)
 [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/apache/commons-csv/badge)](https://api.securityscorecards.dev/projects/github.com/apache/commons-csv)
 
@@ -59,27 +59,35 @@
 The [Javadoc](https://commons.apache.org/proper/commons-csv/apidocs) can be browsed.
 Questions related to the usage of Apache Commons CSV should be posted to the [user mailing list](https://commons.apache.org/mail-lists.html).
 
-Where can I get the latest release?
------------------------------------
+Getting the latest release
+--------------------------
 You can download source and binaries from our [download page](https://commons.apache.org/proper/commons-csv/download_csv.cgi).
 
-Alternatively, you can pull it from the central Maven repositories:
+Alternatively, you can pull it from  the central Maven repositories:
 
 ```xml
 <dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-csv</artifactId>
-  <version>1.10.0</version>
+  <version>1.11.0</version>
 </dependency>
 ```
 
+Building
+--------
+
+Building requires a Java JDK and [Apache Maven](https://maven.apache.org/). 
+The required Java version is found in the `pom.xml` as the `maven.compiler.source` property.
+
+From a command shell, run `mvn` without arguments to invoke the default Maven goal to run all tests and checks.
+
 Contributing
 ------------
 
 We accept Pull Requests via GitHub. The [developer mailing list](https://commons.apache.org/mail-lists.html) is the main channel of communication for contributors.
 There are some guidelines which will make applying PRs easier for us:
 + No tabs! Please use spaces for indentation.
-+ Respect the code style.
++ Respect the existing code style for each file.
 + Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted create a separate PR for this change.
 + Provide JUnit tests for your changes and make sure your changes don't break any existing tests by running ```mvn```.
 
@@ -88,13 +96,13 @@
 
 License
 -------
-This code is under the [Apache License v2](https://www.apache.org/licenses/LICENSE-2.0).
+This code is licensed under the [Apache License v2](https://www.apache.org/licenses/LICENSE-2.0).
 
 See the `NOTICE.txt` file for required notices and attributions.
 
-Donations
----------
-You like Apache Commons CSV? Then [donate back to the ASF](https://www.apache.org/foundation/contributing.html) to support the development.
+Donating
+--------
+You like Apache Commons CSV? Then [donate back to the ASF](https://www.apache.org/foundation/contributing.html) to support development.
 
 Additional Resources
 --------------------
@@ -103,59 +111,8 @@
 + [Apache Issue Tracker (JIRA)](https://issues.apache.org/jira/browse/CSV)
 + [Apache Commons Slack Channel](https://the-asf.slack.com/archives/C60NVB8AD)
 + [Apache Commons Twitter Account](https://twitter.com/ApacheCommons)
-+ `#apache-commons` IRC channel on `irc.freenode.org`
 
 Apache Commons Components
 -------------------------
 
-| Component | GitHub Repository | Apache Homepage |
-| --------- | ----------------- | ----------------|
-| Apache Commons BCEL | [commons-bcel](https://github.com/apache/commons-bcel) | [commons-bcel](https://commons.apache.org/proper/commons-bcel) |
-| Apache Commons Beanutils | [commons-beanutils](https://github.com/apache/commons-beanutils) | [commons-beanutils](https://commons.apache.org/proper/commons-beanutils) |
-| Apache Commons BSF | [commons-bsf](https://github.com/apache/commons-bsf) | [commons-bsf](https://commons.apache.org/proper/commons-bsf) |
-| Apache Commons Build-plugin | [commons-build-plugin](https://github.com/apache/commons-build-plugin) | [commons-build-plugin](https://commons.apache.org/proper/commons-build-plugin) |
-| Apache Commons Chain | [commons-chain](https://github.com/apache/commons-chain) | [commons-chain](https://commons.apache.org/proper/commons-chain) |
-| Apache Commons CLI | [commons-cli](https://github.com/apache/commons-cli) | [commons-cli](https://commons.apache.org/proper/commons-cli) |
-| Apache Commons Codec | [commons-codec](https://github.com/apache/commons-codec) | [commons-codec](https://commons.apache.org/proper/commons-codec) |
-| Apache Commons Collections | [commons-collections](https://github.com/apache/commons-collections) | [commons-collections](https://commons.apache.org/proper/commons-collections) |
-| Apache Commons Compress | [commons-compress](https://github.com/apache/commons-compress) | [commons-compress](https://commons.apache.org/proper/commons-compress) |
-| Apache Commons Configuration | [commons-configuration](https://github.com/apache/commons-configuration) | [commons-configuration](https://commons.apache.org/proper/commons-configuration) |
-| Apache Commons Crypto | [commons-crypto](https://github.com/apache/commons-crypto) | [commons-crypto](https://commons.apache.org/proper/commons-crypto) |
-| Apache Commons CSV | [commons-csv](https://github.com/apache/commons-csv) | [commons-csv](https://commons.apache.org/proper/commons-csv) |
-| Apache Commons Daemon | [commons-daemon](https://github.com/apache/commons-daemon) | [commons-daemon](https://commons.apache.org/proper/commons-daemon) |
-| Apache Commons DBCP | [commons-dbcp](https://github.com/apache/commons-dbcp) | [commons-dbcp](https://commons.apache.org/proper/commons-dbcp) |
-| Apache Commons Dbutils | [commons-dbutils](https://github.com/apache/commons-dbutils) | [commons-dbutils](https://commons.apache.org/proper/commons-dbutils) |
-| Apache Commons Digester | [commons-digester](https://github.com/apache/commons-digester) | [commons-digester](https://commons.apache.org/proper/commons-digester) |
-| Apache Commons Email | [commons-email](https://github.com/apache/commons-email) | [commons-email](https://commons.apache.org/proper/commons-email) |
-| Apache Commons Exec | [commons-exec](https://github.com/apache/commons-exec) | [commons-exec](https://commons.apache.org/proper/commons-exec) |
-| Apache Commons Fileupload | [commons-fileupload](https://github.com/apache/commons-fileupload) | [commons-fileupload](https://commons.apache.org/proper/commons-fileupload) |
-| Apache Commons Functor | [commons-functor](https://github.com/apache/commons-functor) | [commons-functor](https://commons.apache.org/proper/commons-functor) |
-| Apache Commons Geometry | [commons-geometry](https://github.com/apache/commons-geometry) | [commons-geometry](https://commons.apache.org/proper/commons-geometry) |
-| Apache Commons Graph | [commons-graph](https://github.com/apache/commons-graph) | [commons-graph](https://commons.apache.org/proper/commons-graph) |
-| Apache Commons Imaging | [commons-imaging](https://github.com/apache/commons-imaging) | [commons-imaging](https://commons.apache.org/proper/commons-imaging) |
-| Apache Commons IO | [commons-io](https://github.com/apache/commons-io) | [commons-io](https://commons.apache.org/proper/commons-io) |
-| Apache Commons JCI | [commons-jci](https://github.com/apache/commons-jci) | [commons-jci](https://commons.apache.org/proper/commons-jci) |
-| Apache Commons JCS | [commons-jcs](https://github.com/apache/commons-jcs) | [commons-jcs](https://commons.apache.org/proper/commons-jcs) |
-| Apache Commons Jelly | [commons-jelly](https://github.com/apache/commons-jelly) | [commons-jelly](https://commons.apache.org/proper/commons-jelly) |
-| Apache Commons Jexl | [commons-jexl](https://github.com/apache/commons-jexl) | [commons-jexl](https://commons.apache.org/proper/commons-jexl) |
-| Apache Commons Jxpath | [commons-jxpath](https://github.com/apache/commons-jxpath) | [commons-jxpath](https://commons.apache.org/proper/commons-jxpath) |
-| Apache Commons Lang | [commons-lang](https://github.com/apache/commons-lang) | [commons-lang](https://commons.apache.org/proper/commons-lang) |
-| Apache Commons Logging | [commons-logging](https://github.com/apache/commons-logging) | [commons-logging](https://commons.apache.org/proper/commons-logging) |
-| Apache Commons Math | [commons-math](https://github.com/apache/commons-math) | [commons-math](https://commons.apache.org/proper/commons-math) |
-| Apache Commons Net | [commons-net](https://github.com/apache/commons-net) | [commons-net](https://commons.apache.org/proper/commons-net) |
-| Apache Commons Numbers | [commons-numbers](https://github.com/apache/commons-numbers) | [commons-numbers](https://commons.apache.org/proper/commons-numbers) |
-| Apache Commons Parent | [commons-parent](https://github.com/apache/commons-parent) | [commons-parent](https://commons.apache.org/proper/commons-parent) |
-| Apache Commons Pool | [commons-pool](https://github.com/apache/commons-pool) | [commons-pool](https://commons.apache.org/proper/commons-pool) |
-| Apache Commons Proxy | [commons-proxy](https://github.com/apache/commons-proxy) | [commons-proxy](https://commons.apache.org/proper/commons-proxy) |
-| Apache Commons RDF | [commons-rdf](https://github.com/apache/commons-rdf) | [commons-rdf](https://commons.apache.org/proper/commons-rdf) |
-| Apache Commons Release-plugin | [commons-release-plugin](https://github.com/apache/commons-release-plugin) | [commons-release-plugin](https://commons.apache.org/proper/commons-release-plugin) |
-| Apache Commons Rng | [commons-rng](https://github.com/apache/commons-rng) | [commons-rng](https://commons.apache.org/proper/commons-rng) |
-| Apache Commons Scxml | [commons-scxml](https://github.com/apache/commons-scxml) | [commons-scxml](https://commons.apache.org/proper/commons-scxml) |
-| Apache Commons Signing | [commons-signing](https://github.com/apache/commons-signing) | [commons-signing](https://commons.apache.org/proper/commons-signing) |
-| Apache Commons Skin | [commons-skin](https://github.com/apache/commons-skin) | [commons-skin](https://commons.apache.org/proper/commons-skin) |
-| Apache Commons Statistics | [commons-statistics](https://github.com/apache/commons-statistics) | [commons-statistics](https://commons.apache.org/proper/commons-statistics) |
-| Apache Commons Testing | [commons-testing](https://github.com/apache/commons-testing) | [commons-testing](https://commons.apache.org/proper/commons-testing) |
-| Apache Commons Text | [commons-text](https://github.com/apache/commons-text) | [commons-text](https://commons.apache.org/proper/commons-text) |
-| Apache Commons Validator | [commons-validator](https://github.com/apache/commons-validator) | [commons-validator](https://commons.apache.org/proper/commons-validator) |
-| Apache Commons VFS | [commons-vfs](https://github.com/apache/commons-vfs) | [commons-vfs](https://commons.apache.org/proper/commons-vfs) |
-| Apache Commons Weaver | [commons-weaver](https://github.com/apache/commons-weaver) | [commons-weaver](https://commons.apache.org/proper/commons-weaver) |
+Please see the [list of components](https://commons.apache.org/components.html)
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index bbec6a3..30beda7 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -1,9 +1,66 @@
-                        Apache Commons CSV
-                        Version 1.10.0
-                        Release Notes
+Apache Commons CSV Version 1.11.0
+Release Notes
+
+This document contains the release notes for the 1.11.0 version of Apache Commons CSV.
+Commons CSV reads and writes files in variations of the Comma Separated Value (CSV) format.
+
+Commons CSV requires at least Java 8.
+
+The Apache Commons CSV library provides a simple interface for reading and writing CSV files of various types.
+
+Feature and bug fix release (Java 8 or above)
+
+Changes in this version include:
+
+New Features
+------------
+
+* CSV-308:  [Javadoc] Add example to CSVFormat#setHeaderComments() #344. Thanks to Buddhi De Silva, Gary Gregory.
+*           Add and use CSVFormat#setTrailingData(boolean) in CSVFormat.EXCEL for Excel compatibility #303. Thanks to DamjanJovanovic, Gary Gregory.
+*           Add and use CSVFormat#setLenientEof(boolean) in CSVFormat.EXCEL for Excel compatibility #303. Thanks to DamjanJovanovic, Gary Gregory.
+
+Fixed Bugs
+----------
+
+* CSV-306:  Replace deprecated method in user guide, update external link #324, #325. Thanks to Sam Ng, Bruno P. Kinoshita.
+*           Document duplicate header behavior #309. Thanks to Seth Falco, Bruno P. Kinoshita.
+*           Add missing docs #328. Thanks to jkbkupczyk.
+*           [StepSecurity] CI: Harden GitHub Actions #329, #330. Thanks to step-security-bot.
+* CSV-147:  Better error message during faulty CSV record read #347. Thanks to Steven Peterson, Benedikt Ritter, Gary Gregory, Joerg Schaible, Buddhi De Silva, Elliotte Rusty Harold.
+* CSV-310:  Misleading error message when QuoteMode set to None #352. Thanks to Buddhi De Silva.
+* CSV-311:  OutOfMemory for very long rows despite using column value of type Reader. Thanks to Christian Feuersaenger, Gary Gregory.
+*           Use try-with-resources to manage JDBC Clob in CSVPrinter.printRecords(ResultSet). Thanks to Gary Gregory.
+*           JDBC Blob columns are now output as Base64 instead of Object#toString(), which usually is InputStream#toString(). Thanks to Gary Gregory.
+*           Support unusual Excel use cases: Add support for trailing data after the closing quote, and EOF without a final closing quote #303. Thanks to DamjanJovanovic, Gary Gregory.
+*           MongoDB CSV empty first column parsing fix #412. Thanks to Igor Kamyshnikov, Gary Gregory.
+
+Changes
+-------
+
+*           Bump commons-io:commons-io: from 2.11.0 to 2.16.1 #408, #413. Thanks to Gary Gregory.
+*           Bump commons-parent from 57 to 69 #410. Thanks to Gary Gregory, Dependabot.
+*           Bump h2 from 2.1.214 to 2.2.224 #333, #349, #359. Thanks to Dependabot.
+*           Bump commons-lang3 from 3.12.0 to 3.14.0. Thanks to Gary Gregory.
+*           Update exception message in CSVRecord#getNextRecord() #348. Thanks to Buddhi De Silva, Michael Osipov, Gary Gregory.
+*           Bump tests using com.opencsv:opencsv from 5.8 to 5.9 #373. Thanks to Dependabot.
 
 
-INTRODUCTION:
+Historical list of changes: https://commons.apache.org/proper/commons-csv/changes-report.html
+
+For complete information on Apache Commons CSV, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons CSV website:
+
+https://commons.apache.org/proper/commons-csv/
+
+Download page: https://commons.apache.org/proper/commons-csv/download_csv.cgi
+
+Have fun!
+-Apache Commons CSV team
+
+------------------------------------------------------------------------------
+
+Apache Commons CSV Version 1.10.0
+Release Notes
 
 This document contains the release notes for the 1.10.0 version of Apache Commons CSV.
 Commons CSV reads and writes files in variations of the Comma Separated Value (CSV) format.
@@ -16,59 +73,59 @@
 
 Changes in this version include:
 
-NEW FEATURES
-============
+New Features
+------------
 
-o CSV-291:  Make CSVRecord#values() public. Thanks to Gary Gregory.
-o CSV-264:  Add DuplicateHeaderMode for flexibility with header strictness. #114. Thanks to Sagar Tiwari, Seth Falco, Alex Herbert, Gary Gregory.
-o CSV-295:  Support for parallelism in CSVPrinter. Thanks to Gary Gregory.
-o CSV-295:  Add CSVPrinter.printRecord[s](Stream). Thanks to Gary Gregory.
-o CSV-304:  Add accessors for header/trailer comments #257. Thanks to Peter Hull, Bruno P. Kinoshita, Gary Gregory.
-o           Add github/codeql-action.
+* CSV-291:  Make CSVRecord#values() public. Thanks to Gary Gregory.
+* CSV-264:  Add DuplicateHeaderMode for flexibility with header strictness. #114. Thanks to Sagar Tiwari, Seth Falco, Alex Herbert, Gary Gregory.
+* CSV-295:  Support for parallelism in CSVPrinter. Thanks to Gary Gregory.
+* CSV-295:  Add CSVPrinter.printRecord[s](Stream). Thanks to Gary Gregory.
+* CSV-304:  Add accessors for header/trailer comments #257. Thanks to Peter Hull, Bruno P. Kinoshita, Gary Gregory.
+*           Add github/codeql-action.
 
-FIXED BUGS
-==========
+Fixed Bugs
+----------
 
-o           Minor changes #172. Thanks to Arturo Bernal.
-o CSV-292:  No Automatic-Module-Name prevents usage in JPMS projects without repacking the JAR. Thanks to Rob Vesse.
-o CSV-288:  Fix for multi-char delimiter not working as expected #218. Thanks to Santhsoh, Angus.
-o CSV-269:  CSVRecord.get(Enum) should use Enum.name() instead of Enum.toString(). Thanks to Auke te Winkel, Gary Gregory.
-o           Allow org.apache.commons.csv.IOUtils.copy(Reader, Appendable, CharBuffer) to compile on Java 11 and run on Java 8. Thanks to Gary Gregory.
-o CSV-300:  CSVRecord.toList() does not give write access to the new List. Thanks to Markus Spann, Gary Gregory.
-o           CSVParser.getRecords() now throws UncheckedIOException instead of IOException. Thanks to Gary Gregory.
-o CSV-274:  Add comments to iterator() and stream() #270. Thanks to Peter Hull, Bruno P. Kinoshita, Gary Gregory.
-o CSV-290:  Fix wrong assumptions in PostgreSQL formats #265. Thanks to angusdev, Gary Gregory.
-o           Validate input to setDelimiter(String) for empty string #266. Thanks to Mykola Faryma.
-o           Bump CSVFormat#serialVersionUID from 1 to 2. Thanks to Dependabot.
-o           CSVParser: Identify duplicates in null, empty and blank header names #279. Thanks to Alex Herbert.
+*           Minor changes #172. Thanks to Arturo Bernal.
+* CSV-292:  No Automatic-Module-Name prevents usage in JPMS projects without repacking the JAR. Thanks to Rob Vesse.
+* CSV-288:  Fix for multi-char delimiter not working as expected #218. Thanks to Santhsoh, Angus.
+* CSV-269:  CSVRecord.get(Enum) should use Enum.name() instead of Enum.toString(). Thanks to Auke te Winkel, Gary Gregory.
+*           Allow org.apache.commons.csv.IOUtils.copy(Reader, Appendable, CharBuffer) to compile on Java 11 and run on Java 8. Thanks to Gary Gregory.
+* CSV-300:  CSVRecord.toList() does not give write access to the new List. Thanks to Markus Spann, Gary Gregory.
+*           CSVParser.getRecords() now throws UncheckedIOException instead of IOException. Thanks to Gary Gregory.
+* CSV-274:  Add comments to iterator() and stream() #270. Thanks to Peter Hull, Bruno P. Kinoshita, Gary Gregory.
+* CSV-290:  Fix wrong assumptions in PostgreSQL formats #265. Thanks to angusdev, Gary Gregory.
+*           Validate input to setDelimiter(String) for empty string #266. Thanks to Mykola Faryma.
+*           Bump CSVFormat#serialVersionUID from 1 to 2. Thanks to Dependabot.
+*           CSVParser: Identify duplicates in null, empty and blank header names #279. Thanks to Alex Herbert.
 
-CHANGES
-=======
+Changes
+-------
 
-o           Bump actions/cache from 2.1.6 to 3.0.10 #196, #233, #243, #267, #271. Thanks to Dependabot, Gary Gregory.
-o           Bump actions/checkout from 2.3.4 to 3.1.0 #188, #195, #220, #272. Thanks to Dependabot, Gary Gregory.
-o           Bump actions/setup-java from 2 to 3.5.1. Thanks to Gary Gregory.
-o           Bump actions/upload-artifact from 3.1.0 to 3.1.1 #280. Thanks to Dependabot.
-o           Bump commons-parent from 52 to 56 #264, #288, #298. Thanks to Gary Gregory.
-o           Bump checkstyle from 8.44 to 9.2.1 #180, #190, #194, #202, #207. Thanks to Dependabot.
-o           Bump junit-jupiter from 5.8.0-M1 to 5.9.1 #179, #186, #201, #244, #263. Thanks to Dependabot.
-o           Bump jmh-core from 1.32 to 1.36 #176, #208, #229, #285. Thanks to Dependabot.
-o           Bump jmh-generator-annprocess from 1.32 to 1.36 #175, #206, #226, #283. Thanks to Dependabot.
-o           Bump mockito-core from 3.11.2 to 4.11.0 #187, #197, #204, #212, #230, #237, #251, #259, #284, #292, #297. Thanks to Dependabot, Gary Gregory.
-o           Bump maven-pmd-plugin from 3.14.0 to 3.19.0 #184, #219, #238, #254, #258. Thanks to Dependabot.
-o           Bump pmd from 6.36.0 to 6.52.0 #173, #189, #193, #199, #227, #233, #214, #236, #240, #247, #255, #273. Thanks to Dependabot, Gary Gregory.
-o           Bump opencsv from 5.5.1 to 5.7.1 #182, #221, #260, #281. Thanks to Gary Gregory.
-o           Bump spotbugs-maven-plugin from 4.3.0 to 4.7.3.0 #192, #198, #203, #211, #225, #234, #242, #245, #261, #275, #282. Thanks to Dependabot.
-o           Bump com.github.spotbugs:spotbugs from 4.5.3 to 4.7.2. Thanks to Gary Gregory.
-o           Bump h2 from 1.4.200 to 2.1.214 #200, #205, #213, #239. Thanks to Dependabot.
-o           Bump maven-javadoc-plugin from 3.3.0 to 3.4.1. Thanks to Gary Gregory.
-o           Bump biz.aQute.bnd:biz.aQute.bndlib from 5.3.0 to 6.3.1. Thanks to Gary Gregory.
-o           Bump jacoco-maven-plugin from 0.8.7 to 0.8.8. Thanks to Gary Gregory.
-o           Bump japicmp-maven-plugin from 0.15.3 to 0.16.0. Thanks to Gary Gregory.
-o           Bump maven-checkstyle-plugin from 3.1.2 to 3.2.0 #253. Thanks to Dependabot.
+*           Bump actions/cache from 2.1.6 to 3.0.10 #196, #233, #243, #267, #271. Thanks to Dependabot, Gary Gregory.
+*           Bump actions/checkout from 2.3.4 to 3.1.0 #188, #195, #220, #272. Thanks to Dependabot, Gary Gregory.
+*           Bump actions/setup-java from 2 to 3.5.1. Thanks to Gary Gregory.
+*           Bump actions/upload-artifact from 3.1.0 to 3.1.1 #280. Thanks to Dependabot.
+*           Bump commons-parent from 52 to 56 #264, #288, #298. Thanks to Gary Gregory.
+*           Bump checkstyle from 8.44 to 9.2.1 #180, #190, #194, #202, #207. Thanks to Dependabot.
+*           Bump junit-jupiter from 5.8.0-M1 to 5.9.1 #179, #186, #201, #244, #263. Thanks to Dependabot.
+*           Bump jmh-core from 1.32 to 1.36 #176, #208, #229, #285. Thanks to Dependabot.
+*           Bump jmh-generator-annprocess from 1.32 to 1.36 #175, #206, #226, #283. Thanks to Dependabot.
+*           Bump mockito-core from 3.11.2 to 4.11.0 #187, #197, #204, #212, #230, #237, #251, #259, #284, #292, #297. Thanks to Dependabot, Gary Gregory.
+*           Bump maven-pmd-plugin from 3.14.0 to 3.19.0 #184, #219, #238, #254, #258. Thanks to Dependabot.
+*           Bump pmd from 6.36.0 to 6.52.0 #173, #189, #193, #199, #227, #233, #214, #236, #240, #247, #255, #273. Thanks to Dependabot, Gary Gregory.
+*           Bump opencsv from 5.5.1 to 5.7.1 #182, #221, #260, #281. Thanks to Gary Gregory.
+*           Bump spotbugs-maven-plugin from 4.3.0 to 4.7.3.0 #192, #198, #203, #211, #225, #234, #242, #245, #261, #275, #282. Thanks to Dependabot.
+*           Bump com.github.spotbugs:spotbugs from 4.5.3 to 4.7.2. Thanks to Gary Gregory.
+*           Bump h2 from 1.4.200 to 2.1.214 #200, #205, #213, #239. Thanks to Dependabot.
+*           Bump maven-javadoc-plugin from 3.3.0 to 3.4.1. Thanks to Gary Gregory.
+*           Bump biz.aQute.bnd:biz.aQute.bndlib from 5.3.0 to 6.3.1. Thanks to Gary Gregory.
+*           Bump jacoco-maven-plugin from 0.8.7 to 0.8.8. Thanks to Gary Gregory.
+*           Bump japicmp-maven-plugin from 0.15.3 to 0.16.0. Thanks to Gary Gregory.
+*           Bump maven-checkstyle-plugin from 3.1.2 to 3.2.0 #253. Thanks to Dependabot.
 
 Removed:
-o           Serialization in CSVFormat is not supported from one version to the next.
+*           Serialization in CSVFormat is not supported from one version to the next.
 
 Historical list of changes: https://commons.apache.org/proper/commons-csv/changes-report.html
 
@@ -84,12 +141,8 @@
 
 ------------------------------------------------------------------------------
 
-                        Apache Commons CSV
-                        Version 1.9.0
-                        Release Notes
-
-
-INTRODUCTION:
+Apache Commons CSV Version 1.9.0
+Release Notes
 
 This document contains the release notes for the 1.9.0 version of Apache Commons CSV.
 Commons CSV reads and writes files in variations of the Comma Separated Value (CSV) format.
@@ -102,79 +155,79 @@
 
 Changes in this version include:
 
-NEW FEATURES
-============
+New Features
+------------
 
-o CSV-275:  Make CSVRecord#toList() public. Thanks to Michael Wyraz, Gary Gregory.
-o           Add CSVRecord#stream(). Thanks to Gary Gregory.
-o           Add CSVParser#stream(). Thanks to Gary Gregory.
-o CSV-184:  Make the method CSVRecord.putIn(Map) public. Thanks to Gaurav Agarwal, M. Steiger, Gary Gregory.
-o           Add test cases for CSVRecord with get(Enum) and toString. #54. Thanks to dota17.
-o           Add and use CSVFormat.Builder, deprecated CSVFormat#with methods, based on #73. Thanks to Gary Gregory, dota17.
-o CSV-206:  Add support for String delimiters #76. Thanks to Gary Gregory, dota17.
+* CSV-275:  Make CSVRecord#toList() public. Thanks to Michael Wyraz, Gary Gregory.
+*           Add CSVRecord#stream(). Thanks to Gary Gregory.
+*           Add CSVParser#stream(). Thanks to Gary Gregory.
+* CSV-184:  Make the method CSVRecord.putIn(Map) public. Thanks to Gaurav Agarwal, M. Steiger, Gary Gregory.
+*           Add test cases for CSVRecord with get(Enum) and toString. #54. Thanks to dota17.
+*           Add and use CSVFormat.Builder, deprecated CSVFormat#with methods, based on #73. Thanks to Gary Gregory, dota17.
+* CSV-206:  Add support for String delimiters #76. Thanks to Gary Gregory, dota17.
 
-FIXED BUGS
-==========
+Fixed Bugs
+----------
 
-o           Replace FindBugs with SpotBugs #56. Thanks to Amey Jadiye.
-o           Javadoc typo in CSVFormat let's -> lets #57. Thanks to Chen.
-o CSV-259:  CSVFormat.printWithEscapes throws StringIndexOutOfBoundsException when value is Reader #61. Thanks to Chen.
-o           Improve CSVFormat test coverage #63. Thanks to Chen.
-o           Fix CSVFileParserTest.java to allow for a null return value from record.getComment() #62. Thanks to Chen.
-o           Improve test coverage in CSVFormatTest #65. Thanks to Chen.
-o           Removed invalid Javadoc markup for CSVFormat EXCEL #64. Thanks to Chen.
-o           Improve CSVRecord and CSVPrinter code coverage #66. Thanks to Chen.
-o           Improve lexer and token coverage #67. Thanks to Chen.
-o CSV-211:  CSVFormat.format trims last delimiter if the delimiter is a white space #71. Thanks to Alpesh Kulkarni, Chen.
-o           Replace org.apache.commons.csv.Assertions.notNull() with Objects.requireNonNull(). Thanks to Gary Gregory.
-o CSV-149:  Line number is not proper at EOF. Thanks to Kranthi, Gary Gregory, Brent Worden, dota17.
-o CSV-195:  Parser iterates over the last CSV Record twice. Thanks to Rodolfo Duldulao, Rodolfo Duldulao, Michael Vitz, dota17.
-o CSV-267:  Minor improvements #126, #127, #130. Thanks to Arturo Bernal.
-o CSV-123:  Add possibility to use ResultSet header meta data as CSV header #11. Thanks to Emmanuel Bourg, Benedikt Ritter, shivakrishnaah, Gary Gregory.
-o CSV-148:  Add test cases for withIgnoreSurroundingSpaces() and withTrim() #70. Thanks to dota17.
-o           Update CSVParser.parse(File, Charset, CSVFormat) from IO to NIO. Thanks to Gary Gregory.
-o CSV-271:  Missing separator with print(object) followed by printRecord(Object[]) #157. Thanks to Amar Prakash Pandey.
-o CSV-158:  Fix EOL checking for read array in ExtendedBufferedReader #5. Thanks to Alexander Bondarev, Benedikt Ritter, Gary Gregory, Chen.
-o CSV-263:  Print from Reader with embedded quotes generates incorrect output #78. Thanks to Jason A. Guild, Gary Gregory.
-o           Replace JUnit assert by simpler but equivalent calls. #159. Thanks to Arturo Bernal.
-o           Update gitignore to ignore idea and vscode #160. Thanks to Seth Falco.
-o CSV-281:  Update CSVBenchmark #165. Thanks to belugabehr.
-o CSV-283:  Remove Whitespace Check Determines Delimiter Twice #167. Thanks to belugabehr.
-o CSV-283:  Document and Automate CSV Benchmark Harness #166. Thanks to belugabehr.
-o CSV-279:  Optimize Lexer Delimiter Check for One Character Delimiter #163. Thanks to belugabehr.
-o           SpotBugs Error: Medium: org.apache.commons.csv.CSVParser.getHeaderNames() may expose internal representation by returning CSVParser.headerNames [org.apache.commons.csv.CSVParser] At CSVParser.java:[line 599] EI_EXPOSE_REP. Thanks to Gary Gregory.
-o           SpotBugs Error: Medium: new org.apache.commons.csv.CSVParser(Reader, CSVFormat, long, long) may expose internal representation by storing an externally mutable object into CSVParser.format [org.apache.commons.csv.CSVParser] At CSVParser.java:[line 433] EI_EXPOSE_REP2. Thanks to Gary Gregory.
-o           SpotBugs Error: Medium: new org.apache.commons.csv.CSVParser(Reader, CSVFormat, long, long) may expose internal representation by storing an externally mutable object into CSVParser.headerMap [org.apache.commons.csv.CSVParser] At CSVParser.java:[line 437] EI_EXPOSE_REP2. Thanks to Gary Gregory.
-o           SpotBugs Error: Medium: new org.apache.commons.csv.CSVParser(Reader, CSVFormat, long, long) may expose internal representation by storing an externally mutable object into CSVParser.headerNames [org.apache.commons.csv.CSVParser] At CSVParser.java:[line 438] EI_EXPOSE_REP2. Thanks to Gary Gregory.
-o           SpotBugs Error: Medium: new org.apache.commons.csv.CSVPrinter(Appendable, CSVFormat) may expose internal representation by storing an externally mutable object into CSVPrinter.format [org.apache.commons.csv.CSVPrinter] At CSVPrinter.java:[line 100] EI_EXPOSE_REP2. Thanks to Gary Gregory.
-o CSV-284:  Formalize PerformanceTest #168. Thanks to belugabehr.
-o CSV-278:  Reuse Buffers in Lexer for Delimiter Detection #162. Thanks to belugabehr.
-o CSV-286:  Cleanup and Document Performance Test Harness #170. Thanks to belugabehr.
-o CSV-265:  Update buffer position when reading line comment #120. Thanks to belugabehr.
+*           Replace FindBugs with SpotBugs #56. Thanks to Amey Jadiye.
+*           Javadoc typo in CSVFormat let's -> lets #57. Thanks to Chen.
+* CSV-259:  CSVFormat.printWithEscapes throws StringIndexOutOfBoundsException when value is Reader #61. Thanks to Chen.
+*           Improve CSVFormat test coverage #63. Thanks to Chen.
+*           Fix CSVFileParserTest.java to allow for a null return value from record.getComment() #62. Thanks to Chen.
+*           Improve test coverage in CSVFormatTest #65. Thanks to Chen.
+*           Removed invalid Javadoc markup for CSVFormat EXCEL #64. Thanks to Chen.
+*           Improve CSVRecord and CSVPrinter code coverage #66. Thanks to Chen.
+*           Improve lexer and token coverage #67. Thanks to Chen.
+* CSV-211:  CSVFormat.format trims last delimiter if the delimiter is a white space #71. Thanks to Alpesh Kulkarni, Chen.
+*           Replace org.apache.commons.csv.Assertions.notNull() with Objects.requireNonNull(). Thanks to Gary Gregory.
+* CSV-149:  Line number is not proper at EOF. Thanks to Kranthi, Gary Gregory, Brent Worden, dota17.
+* CSV-195:  Parser iterates over the last CSV Record twice. Thanks to Rodolfo Duldulao, Rodolfo Duldulao, Michael Vitz, dota17.
+* CSV-267:  Minor improvements #126, #127, #130. Thanks to Arturo Bernal.
+* CSV-123:  Add possibility to use ResultSet header meta data as CSV header #11. Thanks to Emmanuel Bourg, Benedikt Ritter, shivakrishnaah, Gary Gregory.
+* CSV-148:  Add test cases for withIgnoreSurroundingSpaces() and withTrim() #70. Thanks to dota17.
+*           Update CSVParser.parse(File, Charset, CSVFormat) from IO to NIO. Thanks to Gary Gregory.
+* CSV-271:  Missing separator with print(object) followed by printRecord(Object[]) #157. Thanks to Amar Prakash Pandey.
+* CSV-158:  Fix EOL checking for read array in ExtendedBufferedReader #5. Thanks to Alexander Bondarev, Benedikt Ritter, Gary Gregory, Chen.
+* CSV-263:  Print from Reader with embedded quotes generates incorrect output #78. Thanks to Jason A. Guild, Gary Gregory.
+*           Replace JUnit assert by simpler but equivalent calls. #159. Thanks to Arturo Bernal.
+*           Update gitignore to ignore idea and vscode #160. Thanks to Seth Falco.
+* CSV-281:  Update CSVBenchmark #165. Thanks to belugabehr.
+* CSV-283:  Remove Whitespace Check Determines Delimiter Twice #167. Thanks to belugabehr.
+* CSV-283:  Document and Automate CSV Benchmark Harness #166. Thanks to belugabehr.
+* CSV-279:  Optimize Lexer Delimiter Check for One Character Delimiter #163. Thanks to belugabehr.
+*           SpotBugs Error: Medium: org.apache.commons.csv.CSVParser.getHeaderNames() may expose internal representation by returning CSVParser.headerNames [org.apache.commons.csv.CSVParser] At CSVParser.java:[line 599] EI_EXPOSE_REP. Thanks to Gary Gregory.
+*           SpotBugs Error: Medium: new org.apache.commons.csv.CSVParser(Reader, CSVFormat, long, long) may expose internal representation by storing an externally mutable object into CSVParser.format [org.apache.commons.csv.CSVParser] At CSVParser.java:[line 433] EI_EXPOSE_REP2. Thanks to Gary Gregory.
+*           SpotBugs Error: Medium: new org.apache.commons.csv.CSVParser(Reader, CSVFormat, long, long) may expose internal representation by storing an externally mutable object into CSVParser.headerMap [org.apache.commons.csv.CSVParser] At CSVParser.java:[line 437] EI_EXPOSE_REP2. Thanks to Gary Gregory.
+*           SpotBugs Error: Medium: new org.apache.commons.csv.CSVParser(Reader, CSVFormat, long, long) may expose internal representation by storing an externally mutable object into CSVParser.headerNames [org.apache.commons.csv.CSVParser] At CSVParser.java:[line 438] EI_EXPOSE_REP2. Thanks to Gary Gregory.
+*           SpotBugs Error: Medium: new org.apache.commons.csv.CSVPrinter(Appendable, CSVFormat) may expose internal representation by storing an externally mutable object into CSVPrinter.format [org.apache.commons.csv.CSVPrinter] At CSVPrinter.java:[line 100] EI_EXPOSE_REP2. Thanks to Gary Gregory.
+* CSV-284:  Formalize PerformanceTest #168. Thanks to belugabehr.
+* CSV-278:  Reuse Buffers in Lexer for Delimiter Detection #162. Thanks to belugabehr.
+* CSV-286:  Cleanup and Document Performance Test Harness #170. Thanks to belugabehr.
+* CSV-265:  Update buffer position when reading line comment #120. Thanks to belugabehr.
 
-CHANGES
-=======
+Changes
+-------
 
-o           Update org.junit.jupiter:junit-jupiter from 5.6.0 to 5.7.0, #84 #109 Thanks to Gary Gregory.
-o           Update tests from Apache Commons Lang 3.9 to 3.12.0. Thanks to Gary Gregory.
-o           Update tests from commons-io:commons-io 2.6 to 2.11.0, #108. Thanks to Gary Gregory.
-o           Bump actions/checkout from v1 to v2.3.4, #79, #92, #121. Thanks to Dependabot.
-o           Bump commons-parent from 50 to 51 #80. Thanks to Dependabot.
-o           Bump tests from opencsv from 3.1 to 5.5.1 #81, #137, #158. Thanks to Dependabot, Gary Gregory.
-o           Update tests from super-csv from 2.2.1 to 2.4.0 #86. Thanks to Gary Gregory.
-o           Bump build actions/setup-java from v1.4.0 to v2, #101, #113. Thanks to Dependabot, Gary Gregory.
-o           Bump maven-pmd-plugin from 3.13.0 to 3.14.0 #122. Thanks to Dependabot.
-o           Bump tests from org.mockito:mockito-core 3.2.4 -> 3.11.2; #88, #107, #110, #123, #128, #129, #156. Thanks to Gary Gregory, Dependabot.
-o           Bump actions/cache from v2 to v2.1.6 #132, #153. Thanks to Dependabot.
-o           Bump maven-checkstyle-plugin from 3.0.0 to 3.1.2 #131. Thanks to Gary Gregory, Dependabot.
-o           Bump checkstyle from 8.29 to 8.44. Thanks to Gary Gregory.
-o           Bump junit-jupiter from 5.7.0 to 5.8.0-M1 #133, #149. Thanks to Dependabot, Gary Gregory.
-o           Bump commons.jacoco.version from 0.8.5 to 0.8.7 (Java 16). Thanks to Dependabot.
-o           Bump commons.spotbugs.version from 4.0.4 to 4.3.0 (Java 16). Thanks to Dependabot.
-o           Bump maven-javadoc-plugin from 3.2.0 to 3.3.0. Thanks to Gary Gregory.
-o           Bump jmh-generator-annprocess from 1.5.2 to 1.32 #151. Thanks to Dependabot.
-o           Bump PMD core from 6.29.0 to 6.36.0. Thanks to Dependabot.
-o           Bump biz.aQute.bnd:biz.aQute.bndlib from 5.1.2 to 5.3.0. Thanks to Dependabot.
+*           Update org.junit.jupiter:junit-jupiter from 5.6.0 to 5.7.0, #84 #109 Thanks to Gary Gregory.
+*           Update tests from Apache Commons Lang 3.9 to 3.12.0. Thanks to Gary Gregory.
+*           Update tests from commons-io:commons-io 2.6 to 2.11.0, #108. Thanks to Gary Gregory.
+*           Bump actions/checkout from v1 to v2.3.4, #79, #92, #121. Thanks to Dependabot.
+*           Bump commons-parent from 50 to 51 #80. Thanks to Dependabot.
+*           Bump tests from opencsv from 3.1 to 5.5.1 #81, #137, #158. Thanks to Dependabot, Gary Gregory.
+*           Update tests from super-csv from 2.2.1 to 2.4.0 #86. Thanks to Gary Gregory.
+*           Bump build actions/setup-java from v1.4.0 to v2, #101, #113. Thanks to Dependabot, Gary Gregory.
+*           Bump maven-pmd-plugin from 3.13.0 to 3.14.0 #122. Thanks to Dependabot.
+*           Bump tests from org.mockito:mockito-core 3.2.4 -> 3.11.2; #88, #107, #110, #123, #128, #129, #156. Thanks to Gary Gregory, Dependabot.
+*           Bump actions/cache from v2 to v2.1.6 #132, #153. Thanks to Dependabot.
+*           Bump maven-checkstyle-plugin from 3.0.0 to 3.1.2 #131. Thanks to Gary Gregory, Dependabot.
+*           Bump checkstyle from 8.29 to 8.44. Thanks to Gary Gregory.
+*           Bump junit-jupiter from 5.7.0 to 5.8.0-M1 #133, #149. Thanks to Dependabot, Gary Gregory.
+*           Bump commons.jacoco.version from 0.8.5 to 0.8.7 (Java 16). Thanks to Dependabot.
+*           Bump commons.spotbugs.version from 4.0.4 to 4.3.0 (Java 16). Thanks to Dependabot.
+*           Bump maven-javadoc-plugin from 3.2.0 to 3.3.0. Thanks to Gary Gregory.
+*           Bump jmh-generator-annprocess from 1.5.2 to 1.32 #151. Thanks to Dependabot.
+*           Bump PMD core from 6.29.0 to 6.36.0. Thanks to Dependabot.
+*           Bump biz.aQute.bnd:biz.aQute.bndlib from 5.1.2 to 5.3.0. Thanks to Dependabot.
 
 
 Historical list of changes: https://commons.apache.org/proper/commons-csv/changes-report.html
@@ -191,12 +244,8 @@
 
 ------------------------------------------------------------------------------
 
-                        Apache Commons CSV
-                        Version 1.8
-                        Release Notes
-
-
-INTRODUCTION:
+Apache Commons CSV Version 1.8
+Release Notes
 
 This document contains the release notes for the 1.8 version of Apache Commons CSV.
 Commons CSV reads and writes files in variations of the Comma Separated Value (CSV) format.
@@ -208,33 +257,33 @@
 
 Changes in this version include:
 
-NEW FEATURES
-==============
+New Features
+------------==
 
-o CSV-255:  Add CSVRecord.isSet(int) method #52. Thanks to 0x100.
+* CSV-255:  Add CSVRecord.isSet(int) method #52. Thanks to 0x100.
 
-FIXED BUGS
-============
+Fixed Bugs
+----------==
 
-o CSV-135:  Char escape doesn't work properly with quoting. Thanks to Mateusz Zakarczemny.
-o CSV-244:  Test case failures following CSVFormat#equals() update.
-o CSV-243:  CSVFormat withTrim() and withIgnoreSurroundingSpaces() need better docs.
-o CSV-242:  CSVFormat equals() and hashCode() don't use all fields.
-o CSV-241:  CSVFormat#validate() does not account for allowDuplicateHeaderNames #43. Thanks to LuckyIlam, Gary Gregory.
-o CSV-245:  Post 1.7 release fixes. Thanks to Alex Herbert.
-o CSV-252:  Upgrade test framework to JUnit 5 Jupiter #49, #50. Thanks to Alex Herbert.
-o CSV-247:  A single empty header is allowed when not allowing empty column headers. #47. Thanks to Alex Herbert, Gary Gregory.
-o CSV-248:  CSVRecord is not Serializable. Thanks to Alex Herbert.
-o           Use test scope for supercsv #48. Thanks to Alex Herbert.
+* CSV-135:  Char escape doesn't work properly with quoting. Thanks to Mateusz Zakarczemny.
+* CSV-244:  Test case failures following CSVFormat#equals() update.
+* CSV-243:  CSVFormat withTrim() and withIgnoreSurroundingSpaces() need better docs.
+* CSV-242:  CSVFormat equals() and hashCode() don't use all fields.
+* CSV-241:  CSVFormat#validate() does not account for allowDuplicateHeaderNames #43. Thanks to LuckyIlam, Gary Gregory.
+* CSV-245:  Post 1.7 release fixes. Thanks to Alex Herbert.
+* CSV-252:  Upgrade test framework to JUnit 5 Jupiter #49, #50. Thanks to Alex Herbert.
+* CSV-247:  A single empty header is allowed when not allowing empty column headers. #47. Thanks to Alex Herbert, Gary Gregory.
+* CSV-248:  CSVRecord is not Serializable. Thanks to Alex Herbert.
+*           Use test scope for supercsv #48. Thanks to Alex Herbert.
 
-CHANGES
-=========
+Changes
+-------==
 
-o           Update tests from H2 1.4.199 to 1.4.200. Thanks to Gary Gregory.
-o           Update tests from Hamcrest 2.1 to 2.2. Thanks to Gary Gregory.
-o           Update tests from Mockito 3.1.0 to 3.2.4. Thanks to Gary Gregory.
-o           Fix typos in site and test #53. Thanks to Chen.
-o           Fix typo performance test #55. Thanks to Chen.
+*           Update tests from H2 1.4.199 to 1.4.200. Thanks to Gary Gregory.
+*           Update tests from Hamcrest 2.1 to 2.2. Thanks to Gary Gregory.
+*           Update tests from Mockito 3.1.0 to 3.2.4. Thanks to Gary Gregory.
+*           Fix typos in site and test #53. Thanks to Chen.
+*           Fix typo performance test #55. Thanks to Chen.
 
 
 Historical list of changes: https://commons.apache.org/proper/commons-csv/changes-report.html
@@ -251,12 +300,8 @@
 
 ------------------------------------------------------------------------------
 
-                        Apache Commons CSV
-                        Version 1.7
-                        Release Notes
-
-
-INTRODUCTION:
+Apache Commons CSV Version 1.7
+Release Notes
 
 This document contains the release notes for the 1.7 version of Apache Commons CSV.
 Commons CSV reads and writes files in variations of the Comma Separated Value (CSV) format.
@@ -268,25 +313,25 @@
 
 Changes in this version include:
 
-NEW FEATURES
-==============
+New Features
+------------==
 
-o CSV-233:  Add predefined CSVFormats for printing MongoDB CSV and TSV. Thanks to Gary Gregory.
-o CSV-234:  Add support for java.sql.Clob. Thanks to Roberto Benedetti, Gary Gregory.
-o CSV-239:  Cannot get headers in column order from CSVRecord. Thanks to Gary Gregory, Dave Moten.
+* CSV-233:  Add predefined CSVFormats for printing MongoDB CSV and TSV. Thanks to Gary Gregory.
+* CSV-234:  Add support for java.sql.Clob. Thanks to Roberto Benedetti, Gary Gregory.
+* CSV-239:  Cannot get headers in column order from CSVRecord. Thanks to Gary Gregory, Dave Moten.
 
-FIXED BUGS
-============
+Fixed Bugs
+----------==
 
-o CSV-208:  Fix escape character for POSTGRESQL_TEXT and POSTGRESQL_CSV formats. Thanks to Jurrie Overgoor.
-o CSV-232:  Site link "Source Repository" does not work. Thanks to Jurrie Overgoor, Gary Gregory.
-o CSV-238:  Escape quotes in CLOBs #39. Thanks to Stephen Olander-Waters.
+* CSV-208:  Fix escape character for POSTGRESQL_TEXT and POSTGRESQL_CSV formats. Thanks to Jurrie Overgoor.
+* CSV-232:  Site link "Source Repository" does not work. Thanks to Jurrie Overgoor, Gary Gregory.
+* CSV-238:  Escape quotes in CLOBs #39. Thanks to Stephen Olander-Waters.
 
-CHANGES
-=========
+Changes
+-------==
 
-o CSV-237:  Update to Java 8. Thanks to Gary Gregory.
-o           Update tests from H2 1.4.198 to 1.4.199. Thanks to Gary Gregory.
+* CSV-237:  Update to Java 8. Thanks to Gary Gregory.
+*           Update tests from H2 1.4.198 to 1.4.199. Thanks to Gary Gregory.
 
 
 Historical list of changes: https://commons.apache.org/proper/commons-csv/changes-report.html
@@ -303,12 +348,8 @@
 
 ------------------------------------------------------------------------------
 
-                        Apache Commons CSV
-                        Version 1.6
-                        Release Notes
-
-
-INTRODUCTION:
+Apache Commons CSV Version 1.6
+Release Notes
 
 This document contains the release notes for the 1.6 version of
 Apache Commons CSV. Commons CSV reads and writes files in variations of the
@@ -323,33 +364,33 @@
 
 Changes in this version include:
 
-NEW FEATURES
-==============
+New Features
+------------==
 
-o CSV-217:  Add autoFlush option for CsvPrinter. PR #24.
+* CSV-217:  Add autoFlush option for CsvPrinter. PR #24.
             Thanks to Korolyov Alexei.
-o CSV-220:  Add API org.apache.commons.csv.CSVFormat.withSystemRecordSeparator().
+* CSV-220:  Add API org.apache.commons.csv.CSVFormat.withSystemRecordSeparator().
             Thanks to Gary Gregory.
 
-FIXED BUGS
-============
+Fixed Bugs
+----------==
 
-o CSV-219:  The behavior of quote char using is not similar as Excel does when
+* CSV-219:  The behavior of quote char using is not similar as Excel does when
             the first string contains CJK char(s). Thanks to Zhang Hongda.
-o CSV-172:  Don't quote cells just because they have UTF-8 encoded characters.
+* CSV-172:  Don't quote cells just because they have UTF-8 encoded characters.
             Thanks to Andrew Pennebaker.
-o CSV-223:  Inconsistency between Javadoc of CSVFormat DEFAULT EXCEL.
+* CSV-223:  Inconsistency between Javadoc of CSVFormat DEFAULT EXCEL.
             Thanks to Samuel Martin.
-o CSV-209:  Create CSVFormat.ORACLE preset. Thanks to Gary Gregory.
-o CSV-224:  Some multi-iterator parsing peek sequences incorrectly consume
+* CSV-209:  Create CSVFormat.ORACLE preset. Thanks to Gary Gregory.
+* CSV-224:  Some multi-iterator parsing peek sequences incorrectly consume
             elements. Thanks to David Warshaw.
-o CSV-225:  Parse method should avoid creating a redundant BufferedReader.
+* CSV-225:  Parse method should avoid creating a redundant BufferedReader.
             Thanks to Anson Schwabecher.
 
-CHANGES
-=========
+Changes
+-------==
 
-o CSV-231:  Add more documentation to CSVPrinter.
+* CSV-231:  Add more documentation to CSVPrinter.
 
 
 Have fun!
@@ -357,12 +398,8 @@
 
 ------------------------------------------------------------------------------
 
-                        Apache Commons CSV
-                        Version 1.5
-                        Release Notes
-
-
-INTRODUCTION:
+Apache Commons CSV Version 1.5
+Release Notes
 
 This document contains the release notes for the 1.5 version of Apache Commons CSV.
 Commons CSV reads and writes files in variations of the Comma Separated Value (CSV) format.
@@ -376,30 +413,30 @@
 
 Changes in this version include:
 
-NEW FEATURES
-==============
+New Features
+------------==
 
-o CSV-189:  CSVParser: Add factory method accepting InputStream. Thanks to Peter Holzwarth, Gary Gregory.
-o CSV-190:  Add convenience API CSVFormat.print(File, Charset). Thanks to Gary Gregory.
-o CSV-191:  Add convenience API CSVFormat.print(Path, Charset). Thanks to Gary Gregory.
-o CSV-192:  Add convenience API CSVParser.parse(Path, Charset, CSVFormat). Thanks to Gary Gregory.
-o CSV-205:  Add convenience API CSVFormat#printer() to print to System.out. Thanks to Gary Gregory.
-o CSV-207:  Provide a CSV Format for printing PostgreSQL CSV and Text formats. Thanks to Gary Gregory.
-o CSV-214:  Adding a placeholder in the Lexer and CSV parser to store the end-of-line string. Thanks to Nitin Mahendru, Gary Gregory.
+* CSV-189:  CSVParser: Add factory method accepting InputStream. Thanks to Peter Holzwarth, Gary Gregory.
+* CSV-190:  Add convenience API CSVFormat.print(File, Charset). Thanks to Gary Gregory.
+* CSV-191:  Add convenience API CSVFormat.print(Path, Charset). Thanks to Gary Gregory.
+* CSV-192:  Add convenience API CSVParser.parse(Path, Charset, CSVFormat). Thanks to Gary Gregory.
+* CSV-205:  Add convenience API CSVFormat#printer() to print to System.out. Thanks to Gary Gregory.
+* CSV-207:  Provide a CSV Format for printing PostgreSQL CSV and Text formats. Thanks to Gary Gregory.
+* CSV-214:  Adding a placeholder in the Lexer and CSV parser to store the end-of-line string. Thanks to Nitin Mahendru, Gary Gregory.
 
-FIXED BUGS
-============
+Fixed Bugs
+----------==
 
-o CSV-203:  withNullString value is printed without quotes when QuoteMode.ALL is specified; add QuoteMode.ALL_NON_NULL. PR #17. Thanks to Richard Wheeldon, Kai Paroth.
-o CSV-194:  Fix outdated comments about FileReader in CSVParser #13. Thanks to Marc Prud'hommeaux.
-o CSV-193:  Fix incorrect method name 'withFirstRowAsHeader' in user guide. Thanks to Matthias Wiehl.
-o CSV-171:  Negative numeric values in the first column are always quoted in minimal mode. Thanks to Gary Gregory, Michael Graessle, Adrian Bridgett.
+* CSV-203:  withNullString value is printed without quotes when QuoteMode.ALL is specified; add QuoteMode.ALL_NON_NULL. PR #17. Thanks to Richard Wheeldon, Kai Paroth.
+* CSV-194:  Fix outdated comments about FileReader in CSVParser #13. Thanks to Marc Prud'hommeaux.
+* CSV-193:  Fix incorrect method name 'withFirstRowAsHeader' in user guide. Thanks to Matthias Wiehl.
+* CSV-171:  Negative numeric values in the first column are always quoted in minimal mode. Thanks to Gary Gregory, Michael Graessle, Adrian Bridgett.
 
-CHANGES
-=========
+Changes
+-------==
 
-o CSV-187: Update platform requirement from Java 6 to 7. Thanks to Gary Gregory.
-o CSV-201: Do not use RuntimeException in CSVParser.iterator().new Iterator() {...}.getNextRecord(). Thanks to Benedikt Ritter, Gary Gregory.
+* CSV-187: Update platform requirement from Java 6 to 7. Thanks to Gary Gregory.
+* CSV-201: Do not use RuntimeException in CSVParser.iterator().new Iterator() {...}.getNextRecord(). Thanks to Benedikt Ritter, Gary Gregory.
 
 
 Historical list of changes: https://commons.apache.org/proper/commons-csv/changes-report.html
@@ -414,12 +451,8 @@
 
 ------------------------------------------------------------------------------
 
-                        Apache Commons CSV
-                        Version 1.4
-                        Release Notes
-
-
-INTRODUCTION:
+Apache Commons CSV Version 1.4
+Release Notes
 
 This document contains the release notes for the 1.4 version of Apache Commons CSV.
 Commons CSV reads and writes files in variations of the Comma Separated Value (CSV) format.
@@ -433,17 +466,17 @@
 
 Changes in this version include:
 
-NEW FEATURES
-==============
+New Features
+------------==
 
-o CSV-182:  Allow some printing operations directly from CSVFormat. Thanks to Gary Gregory.
+* CSV-182:  Allow some printing operations directly from CSVFormat. Thanks to Gary Gregory.
 
 
-CHANGES
-=========
+Changes
+-------==
 
-o CSV-181:  Make CSVPrinter.print(Object) GC-free. Thanks to Gary Gregory.
-o CSV-183:  Drop ferc.gov tests.  
+* CSV-181:  Make CSVPrinter.print(Object) GC-free. Thanks to Gary Gregory.
+* CSV-183:  Drop ferc.gov tests.  
 
 
 Historical list of changes: https://commons.apache.org/proper/commons-csv/changes-report.html
@@ -458,12 +491,8 @@
 
 ------------------------------------------------------------------------------
 
-                        Apache Commons CSV
-                        Version 1.3
-                        Release Notes
-
-
-INTRODUCTION:
+Apache Commons CSV Version 1.3
+Release Notes
 
 This document contains the release notes for the 1.3 version of Apache Commons CSV.
 Commons CSV reads and writes files in variations of the Comma Separated Value (CSV) format.
@@ -477,29 +506,29 @@
 
 Changes in this version include:
 
-NEW FEATURES
-==============
+New Features
+------------==
 
-o CSV-179:  Add shortcut method for using first record as header to CSVFormat.
-o CSV-180:  Add withHeader(Class? extends Enum>) to CSVFormat.
-o CSV-159:  Add IgnoreCase option for accessing header names. Thanks to Yamil Medina.
-o CSV-169:  The null string should be case-sensitive when reading records. Thanks to Gary Gregory.
-o CSV-175:  Support for ignoring trailing delimiter. Thanks to Gary Gregory, Chris Jones.
-o CSV-177:  Support trimming leading and trailing blanks. Thanks to Gary Gregory.
-o CSV-178:  Create default formats for Informix UNLOAD and UNLOAD CSV. Thanks to Gary Gregory.
+* CSV-179:  Add shortcut method for using first record as header to CSVFormat.
+* CSV-180:  Add withHeader(Class? extends Enum>) to CSVFormat.
+* CSV-159:  Add IgnoreCase option for accessing header names. Thanks to Yamil Medina.
+* CSV-169:  The null string should be case-sensitive when reading records. Thanks to Gary Gregory.
+* CSV-175:  Support for ignoring trailing delimiter. Thanks to Gary Gregory, Chris Jones.
+* CSV-177:  Support trimming leading and trailing blanks. Thanks to Gary Gregory.
+* CSV-178:  Create default formats for Informix UNLOAD and UNLOAD CSV. Thanks to Gary Gregory.
 
-FIXED BUGS
-============
+Fixed Bugs
+----------==
 
-o CSV-168:  CSVFormat.nullString should not be escaped. Thanks to Gary Gregory, cornel creanga.
-o CSV-170:  CSVFormat.MYSQL nullString should be "\N". Thanks to Gary Gregory, cornel creanga.
-o CSV-161:  Fix Javadoc to say CSVFormat with() methods return a new CSVFormat. Thanks to Gary Gregory, Kristof Meixner, Emmanuel Bourg.
+* CSV-168:  CSVFormat.nullString should not be escaped. Thanks to Gary Gregory, cornel creanga.
+* CSV-170:  CSVFormat.MYSQL nullString should be "\N". Thanks to Gary Gregory, cornel creanga.
+* CSV-161:  Fix Javadoc to say CSVFormat with() methods return a new CSVFormat. Thanks to Gary Gregory, Kristof Meixner, Emmanuel Bourg.
 
-CHANGES
-============
+Changes
+-------=====
 
-o CSV-167:  Comment line hides next record; update Javadoc to make behavior clear. Thanks to Rene.
-o CSV-153:  CSVPrinter doesn't skip creation of header record if skipHeaderRecord is set to true. Thanks to Wren.
+* CSV-167:  Comment line hides next record; update Javadoc to make behavior clear. Thanks to Rene.
+* CSV-153:  CSVPrinter doesn't skip creation of header record if skipHeaderRecord is set to true. Thanks to Wren.
 
 
 Have fun!
@@ -507,12 +536,8 @@
 
 ------------------------------------------------------------------------------
 
-                        Apache Commons CSV
-                        Version 1.2
-                        Release Notes
-
-
-INTRODUCTION:
+Apache Commons CSV Version 1.2
+Release Notes
 
 This document contains the release notes for the 1.2 version of Apache Commons CSV.
 Commons CSV reads and writes files in variations of the Comma Separated Value (CSV) format.
@@ -526,16 +551,16 @@
 
 Changes in this version include:
 
-NEW FEATURES
-==============
+New Features
+------------==
 
-o CSV-157:  Add enum CSVFormat.Predefined that contains the default CSVFormat values.
+* CSV-157:  Add enum CSVFormat.Predefined that contains the default CSVFormat values.
 
-FIXED BUGS
-============
+Fixed Bugs
+----------==
 
-o CSV-145:  CSVFormat.with* methods clear the header comments. Thanks to Frank Ulbricht.
-o CSV-156:  Incorrect Javadoc on QuoteMode.NONE. Thanks to Jason Steenstra-Pickens.
+* CSV-145:  CSVFormat.with* methods clear the header comments. Thanks to Frank Ulbricht.
+* CSV-156:  Incorrect Javadoc on QuoteMode.NONE. Thanks to Jason Steenstra-Pickens.
 
 
 Historical list of changes: https://commons.apache.org/proper/commons-csv/changes-report.html
@@ -550,12 +575,8 @@
 
 ------------------------------------------------------------------------------
 
-                        Apache Commons CSV
-                        Version 1.1
-                        Release Notes
-
-
-INTRODUCTION:
+Apache Commons CSV Version 1.1
+Release Notes
 
 This document contains the release notes for the 1.1 version of Apache Commons CSV.
 Commons CSV reads and writes files in variations of the Comma Separated Value (CSV) format.
@@ -570,19 +591,19 @@
 Changes in this version include:
 
 New features:
-o [CSV-129] Add CSVFormat#with 0-arg methods matching boolean arg methods. 
-o [CSV-131] Save positions of records to enable random access. Thanks to Holger Stratmann. 
-o [CSV-139] CSVPrinter.printRecord(ResultSet) with metadata. 
+* [CSV-129] Add CSVFormat#with 0-arg methods matching boolean arg methods. 
+* [CSV-131] Save positions of records to enable random access. Thanks to Holger Stratmann. 
+* [CSV-139] CSVPrinter.printRecord(ResultSet) with metadata. 
 
 Fixed Bugs:
-o [CSV-140] QuoteMode.NON_NUMERIC doesn't work with CSVPrinter.printRecords(ResultSet). Thanks to Damjan Jovanovic. 
-o [CSV-130] CSVFormat#withHeader doesn't work well with #printComment, add withHeaderComments(String...). Thanks to Sergei Lebedev. 
-o [CSV-128] CSVFormat.EXCEL should ignore empty header names. 
-o [CSV-132] Incorrect Javadoc referencing org.apache.commons.csv.CSVFormat withQuote(). Thanks to Sascha Szott. 
+* [CSV-140] QuoteMode.NON_NUMERIC doesn't work with CSVPrinter.printRecords(ResultSet). Thanks to Damjan Jovanovic. 
+* [CSV-130] CSVFormat#withHeader doesn't work well with #printComment, add withHeaderComments(String...). Thanks to Sergei Lebedev. 
+* [CSV-128] CSVFormat.EXCEL should ignore empty header names. 
+* [CSV-132] Incorrect Javadoc referencing org.apache.commons.csv.CSVFormat withQuote(). Thanks to Sascha Szott. 
 
 Changes:
-o [CSV-124] Improve toString() implementation of CSVRecord. Thanks to Kalyan. 
-o [CSV-134] Unified parameter validation. Thanks to wu wen. 
+* [CSV-124] Improve toString() implementation of CSVRecord. Thanks to Kalyan. 
+* [CSV-134] Unified parameter validation. Thanks to wu wen. 
 
 Historical list of changes: https://commons.apache.org/proper/commons-csv/changes-report.html
 
@@ -596,12 +617,8 @@
 
 -------------------------------------------------------------------------------
 
-                        Apache Commons CSV
-                        Version 1.0
-                        Release Notes
-
-
-INTRODUCTION:
+Apache Commons CSV Version 1.0
+Release Notes
 
 This document contains the release notes for the 1.0 version of Apache Commons CSV.
 Commons CSV reads and writes files in variations of the Comma Separated Value (CSV) format.
@@ -615,68 +632,68 @@
 
 Changes in this version include:
 
-NEW FEATURES
-============
+New Features
+------------
 
-o CSV-121:  IllegalArgumentException thrown when the header contains duplicate names when the column names are empty.
+* CSV-121:  IllegalArgumentException thrown when the header contains duplicate names when the column names are empty.
             Thanks to Sebastian Hardt.
-o CSV-120:  CSVFormat#withHeader doesn't work with CSVPrinter Thanks to Sergei Lebedev.
-o CSV-119:  CSVFormat is missing a print(...) method Thanks to Sergei Lebedev.
-o CSV-105:  Add Map conversion API to CSVRecord
-o CSV-52:   Keep track of record number
-o CSV-92:   Need a way to extract parsed headers, e.g. for use in formatting
+* CSV-120:  CSVFormat#withHeader doesn't work with CSVPrinter Thanks to Sergei Lebedev.
+* CSV-119:  CSVFormat is missing a print(...) method Thanks to Sergei Lebedev.
+* CSV-105:  Add Map conversion API to CSVRecord
+* CSV-52:   Keep track of record number
+* CSV-92:   Need a way to extract parsed headers, e.g. for use in formatting
             output
-o CSV-65:   Header support
-o CSV-48:   Predefined format for MYSQL
+* CSV-65:   Header support
+* CSV-48:   Predefined format for MYSQL
 
-FIXED BUGS
-==========
+Fixed Bugs
+----------
 
-o CSV-125:  No longer works with Java 6
-o CSV-122:  NullPointerException when empty header string and null string of "".
+* CSV-125:  No longer works with Java 6
+* CSV-122:  NullPointerException when empty header string and null string of "".
             Thanks to Mike Lewis.
-o CSV-118:  CSVRecord.toMap() throws NPE on formats with no
+* CSV-118:  CSVRecord.toMap() throws NPE on formats with no
             headers. Thanks to Enrique Lara.
-o CSV-113:  Check whether ISE/IAE are being used appropriately
-o CSV-114:  CSVFormat constructor should reject a header array with duplicate
+* CSV-113:  Check whether ISE/IAE are being used appropriately
+* CSV-114:  CSVFormat constructor should reject a header array with duplicate
             entries
-o CSV-112:  HeaderMap is inconsistent when it is parsed from an input with
+* CSV-112:  HeaderMap is inconsistent when it is parsed from an input with
             duplicate columns names
-o CSV-111:  CSVRecord.toMap() fails if row length shorter than header length
-o CSV-106:  CSVFormat.format allways append null
-o CSV-100:  CSVParser: getHeaderMap throws NPE
-o CSV-53:   CSVRecord does not verify that the length of the header mapping
+* CSV-111:  CSVRecord.toMap() fails if row length shorter than header length
+* CSV-106:  CSVFormat.format allways append null
+* CSV-100:  CSVParser: getHeaderMap throws NPE
+* CSV-53:   CSVRecord does not verify that the length of the header mapping
             matches the number of values
-o CSV-54:   Confusing semantic of the ignore leading/trailing spaces parameters
-o CSV-34:   CSVFormat describes itself as immutable, but it is not - in
+* CSV-54:   Confusing semantic of the ignore leading/trailing spaces parameters
+* CSV-34:   CSVFormat describes itself as immutable, but it is not - in
             particular it is not thread-safe
-o CSV-36:   Endless loops in CSV parser
-o CSV-13:   NullPointerException in CSVPrinter.print()/println()
-o CSV-23:   Excel strategy uses wrong separator
+* CSV-36:   Endless loops in CSV parser
+* CSV-13:   NullPointerException in CSVPrinter.print()/println()
+* CSV-23:   Excel strategy uses wrong separator
 
-CHANGES
-=======
+Changes
+-------
 
-o CSV-117:  Validate format parameters in constructor
-o CSV-42:   Lots of possible changes Thanks to Bob Smith.
-o CSV-78:   Use Character instead of char for char fields except delimiter
-o CSV-99:   Revert Builder implementation in CSVFormat
-o CSV-93:   Allow the handling of NULL values
-o CSV-68:   Use the Builder pattern for CSVFormat
-o CSV-84:   Clarify comment handling
-o CSV-25:   CSVParser.nextValue() seems pointless
-o CSV-97:   Allow the String value for null to be customized for the CSV
+* CSV-117:  Validate format parameters in constructor
+* CSV-42:   Lots of possible changes Thanks to Bob Smith.
+* CSV-78:   Use Character instead of char for char fields except delimiter
+* CSV-99:   Revert Builder implementation in CSVFormat
+* CSV-93:   Allow the handling of NULL values
+* CSV-68:   Use the Builder pattern for CSVFormat
+* CSV-84:   Clarify comment handling
+* CSV-25:   CSVParser.nextValue() seems pointless
+* CSV-97:   Allow the String value for null to be customized for the CSV
             printer
-o CSV-88:   Not possible to create a CSVFormat from scratch
-o CSV-94:   Lexer should only use char fields
-o CSV-71:   Add convenience methods to CSVLexer
-o CSV-59:   Is CharBuffer really needed, now that StringBuilder is available?
-o CSV-55:   Replace while(true)-loop in CSVParser.getRecord with do-while-loop
-o CSV-45:   CSVPrinter overhaul
-o CSV-49:   CSVStrategy has modifiable public static variables Thanks to Bob Smith.
-o CSV-46:   Reduce visibility of methods in internal classes
-o CSV-26:   ExtendedBufferedReader does too much
-o CSV-27:   Decide whether to keep the csv.writer subpackage
+* CSV-88:   Not possible to create a CSVFormat from scratch
+* CSV-94:   Lexer should only use char fields
+* CSV-71:   Add convenience methods to CSVLexer
+* CSV-59:   Is CharBuffer really needed, now that StringBuilder is available?
+* CSV-55:   Replace while(true)-loop in CSVParser.getRecord with do-while-loop
+* CSV-45:   CSVPrinter overhaul
+* CSV-49:   CSVStrategy has modifiable public static variables Thanks to Bob Smith.
+* CSV-46:   Reduce visibility of methods in internal classes
+* CSV-26:   ExtendedBufferedReader does too much
+* CSV-27:   Decide whether to keep the csv.writer subpackage
 
 
 Historical list of changes: https://commons.apache.org/proper/commons-csv/changes-report.html
diff --git a/pom.xml b/pom.xml
index a5774bf..de62f86 100644
--- a/pom.xml
+++ b/pom.xml
@@ -166,6 +166,7 @@
     <!-- The RC version used in the staging repository URL. -->
     <commons.rc.version>RC1</commons.rc.version>
     <commons.bc.version>1.10.0</commons.bc.version>
+    <commons.release.next>1.11.1</commons.release.next>
     <commons.componentid>csv</commons.componentid>
     <commons.module.name>org.apache.commons.csv</commons.module.name>
     <commons.jira.id>CSV</commons.jira.id>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 12b04ad..48ee80f 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -40,7 +40,7 @@
     <title>Apache Commons CSV Release Notes</title>
   </properties>
   <body>
-    <release version="1.11.0" date="YYYY-MM-DD" description="Feature and bug fix release (Java 8 or above)">
+    <release version="1.11.0" date="2024-04-28" description="Feature and bug fix release (Java 8 or above)">
       <!-- ADD -->
       <action issue="CSV-308" type="add" dev="ggregory" due-to="Buddhi De Silva, Gary Gregory">[Javadoc] Add example to CSVFormat#setHeaderComments() #344.</action>
       <action type="add" dev="ggregory" due-to="DamjanJovanovic, Gary Gregory">Add and use CSVFormat#setTrailingData(boolean) in CSVFormat.EXCEL for Excel compatibility #303.</action>
diff --git a/src/changes/release-notes.vm b/src/changes/release-notes.vm
index 41e80f2..a10171f 100644
--- a/src/changes/release-notes.vm
+++ b/src/changes/release-notes.vm
@@ -15,12 +15,9 @@
 ## specific language governing permissions and limitations
 ## under the License.
 ##
-                        ${project.name}
-                        Version ${version}
-                        Release Notes
-
-
-INTRODUCTION:
+${project.name}
+Version ${version}
+Release Notes
 
 This document contains the release notes for the ${version} version of Apache Commons CSV.
 Commons CSV reads and writes files in variations of the Comma Separated Value (CSV) format.
@@ -68,7 +65,7 @@
 #else
 #set($dueto="")
 #end
-o $issue ${action}$dueto
+* $issue ${action}$dueto
 #set($action="")
 #set($issue="")
 #set($dueto="")
@@ -80,8 +77,8 @@
 Changes in this version include:
 
 #if ($release.getActions('add').size() !=0)
-NEW FEATURES
-============
+New Features
+------------
 
 #foreach($actionItem in $release.getActions('add'))
 #processaction()
@@ -89,8 +86,8 @@
 #end
 
 #if ($release.getActions('fix').size() !=0)
-FIXED BUGS
-==========
+Fixed Bugs
+----------
 
 #foreach($actionItem in $release.getActions('fix'))
 #processaction()
@@ -98,8 +95,8 @@
 #end
 
 #if ($release.getActions('update').size() !=0)
-CHANGES
-=======
+Changes
+-------
 
 #foreach($actionItem in $release.getActions('update'))
 #processaction()
@@ -107,7 +104,9 @@
 #end
 
 #if ($release.getActions('remove').size() !=0)
-Removed:
+Removals
+--------
+
 #foreach($actionItem in $release.getActions('remove'))
 #processaction()
 #end
diff --git a/src/site/xdoc/download_csv.xml b/src/site/xdoc/download_csv.xml
index 21d27b6..081518f 100644
--- a/src/site/xdoc/download_csv.xml
+++ b/src/site/xdoc/download_csv.xml
@@ -113,32 +113,32 @@
       </p>
     </subsection>
     </section>
-    <section name="Apache Commons CSV 1.10.0 (Java 8 or above)">
+    <section name="Apache Commons CSV 1.11.0 (Java 8 or above)">
       <subsection name="Binaries">
         <table>
           <tr>
-              <td><a href="[preferred]/commons/csv/binaries/commons-csv-1.10.0-bin.tar.gz">commons-csv-1.10.0-bin.tar.gz</a></td>
-              <td><a href="https://downloads.apache.org/commons/csv/binaries/commons-csv-1.10.0-bin.tar.gz.sha512">sha512</a></td>
-              <td><a href="https://downloads.apache.org/commons/csv/binaries/commons-csv-1.10.0-bin.tar.gz.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/csv/binaries/commons-csv-1.11.0-bin.tar.gz">commons-csv-1.11.0-bin.tar.gz</a></td>
+              <td><a href="https://downloads.apache.org/commons/csv/binaries/commons-csv-1.11.0-bin.tar.gz.sha512">sha512</a></td>
+              <td><a href="https://downloads.apache.org/commons/csv/binaries/commons-csv-1.11.0-bin.tar.gz.asc">pgp</a></td>
           </tr>
           <tr>
-              <td><a href="[preferred]/commons/csv/binaries/commons-csv-1.10.0-bin.zip">commons-csv-1.10.0-bin.zip</a></td>
-              <td><a href="https://downloads.apache.org/commons/csv/binaries/commons-csv-1.10.0-bin.zip.sha512">sha512</a></td>
-              <td><a href="https://downloads.apache.org/commons/csv/binaries/commons-csv-1.10.0-bin.zip.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/csv/binaries/commons-csv-1.11.0-bin.zip">commons-csv-1.11.0-bin.zip</a></td>
+              <td><a href="https://downloads.apache.org/commons/csv/binaries/commons-csv-1.11.0-bin.zip.sha512">sha512</a></td>
+              <td><a href="https://downloads.apache.org/commons/csv/binaries/commons-csv-1.11.0-bin.zip.asc">pgp</a></td>
           </tr>
         </table>
       </subsection>
       <subsection name="Source">
         <table>
           <tr>
-              <td><a href="[preferred]/commons/csv/source/commons-csv-1.10.0-src.tar.gz">commons-csv-1.10.0-src.tar.gz</a></td>
-              <td><a href="https://downloads.apache.org/commons/csv/source/commons-csv-1.10.0-src.tar.gz.sha512">sha512</a></td>
-              <td><a href="https://downloads.apache.org/commons/csv/source/commons-csv-1.10.0-src.tar.gz.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/csv/source/commons-csv-1.11.0-src.tar.gz">commons-csv-1.11.0-src.tar.gz</a></td>
+              <td><a href="https://downloads.apache.org/commons/csv/source/commons-csv-1.11.0-src.tar.gz.sha512">sha512</a></td>
+              <td><a href="https://downloads.apache.org/commons/csv/source/commons-csv-1.11.0-src.tar.gz.asc">pgp</a></td>
           </tr>
           <tr>
-              <td><a href="[preferred]/commons/csv/source/commons-csv-1.10.0-src.zip">commons-csv-1.10.0-src.zip</a></td>
-              <td><a href="https://downloads.apache.org/commons/csv/source/commons-csv-1.10.0-src.zip.sha512">sha512</a></td>
-              <td><a href="https://downloads.apache.org/commons/csv/source/commons-csv-1.10.0-src.zip.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/csv/source/commons-csv-1.11.0-src.zip">commons-csv-1.11.0-src.zip</a></td>
+              <td><a href="https://downloads.apache.org/commons/csv/source/commons-csv-1.11.0-src.zip.sha512">sha512</a></td>
+              <td><a href="https://downloads.apache.org/commons/csv/source/commons-csv-1.11.0-src.zip.asc">pgp</a></td>
           </tr>
         </table>
       </subsection>
diff --git a/src/site/xdoc/mail-lists.xml b/src/site/xdoc/mail-lists.xml
index 8cbe145..727e4a5 100644
--- a/src/site/xdoc/mail-lists.xml
+++ b/src/site/xdoc/mail-lists.xml
@@ -59,9 +59,9 @@
       </p>
       <p>
         Questions related to the usage of Apache Commons CSV should be posted to the
-        <a href="https://mail-archives.apache.org/mod_mbox/commons-user/">User List</a>.
+        <a href="https://lists.apache.org/list.html?user@commons.apache.org">User List</a>.
         <br />
-        The <a href="https://mail-archives.apache.org/mod_mbox/commons-dev/">Developer List</a>
+        The <a href="https://lists.apache.org/list.html?dev@commons.apache.org">Developer List</a>
         is for questions and discussion related to the development of Apache Commons CSV.
         <br />
         Please do not cross-post; developers are also subscribed to the user list.
@@ -70,8 +70,10 @@
         to subscribe.
       </p>
       <p>
-        <strong>Note:</strong> please don't send patches or attachments to any of the mailing lists.
+        <strong>Note:</strong> please don't send patches or attachments to any of the mailing lists;
+        most of the lists are set up to drop attachments.
         Patches are best handled via the <a href="issue-tracking.html">Issue Tracking</a> system.
+        If you have a GitHub account, most components also accept PRs (pull requests).
         Otherwise, please upload the file to a public server and include the URL in the mail.
       </p>
     </section>
@@ -105,12 +107,11 @@
           <td><a href="mailto:user-subscribe@commons.apache.org">Subscribe</a></td>
           <td><a href="mailto:user-unsubscribe@commons.apache.org">Unsubscribe</a></td>
           <td><a href="mailto:user@commons.apache.org?subject=[csv]">Post</a></td>
-          <td><a href="https://mail-archives.apache.org/mod_mbox/commons-user/">mail-archives.apache.org</a><br />
+          <td>
               <a href="https://lists.apache.org/list.html?user@commons.apache.org">lists.apache.org</a>
           </td>
-          <td><a href="https://markmail.org/list/org.apache.commons.users/">markmail.org</a><br />
-              <a href="https://www.mail-archive.com/user@commons.apache.org/">www.mail-archive.com</a><br />
-              <a href="https://news.gmane.org/gmane.comp.jakarta.commons.devel">news.gmane.org</a>
+          <td>
+              <a href="https://www.mail-archive.com/user@commons.apache.org/">www.mail-archive.com</a>
           </td>
         </tr>
 
@@ -125,12 +126,11 @@
           <td><a href="mailto:dev-subscribe@commons.apache.org">Subscribe</a></td>
           <td><a href="mailto:dev-unsubscribe@commons.apache.org">Unsubscribe</a></td>
           <td><a href="mailto:dev@commons.apache.org?subject=[csv]">Post</a></td>
-          <td><a href="https://mail-archives.apache.org/mod_mbox/commons-dev/">mail-archives.apache.org</a><br />
+          <td>
               <a href="https://lists.apache.org/list.html?dev@commons.apache.org">lists.apache.org</a>
           </td>
-          <td><a href="https://markmail.org/list/org.apache.commons.dev/">markmail.org</a><br />
-              <a href="https://www.mail-archive.com/dev@commons.apache.org/">www.mail-archive.com</a><br />
-              <a href="https://news.gmane.org/gmane.comp.jakarta.commons.devel">news.gmane.org</a>
+          <td>
+              <a href="https://www.mail-archive.com/dev@commons.apache.org/">www.mail-archive.com</a>
           </td>
         </tr>
 
@@ -145,10 +145,10 @@
           <td><a href="mailto:issues-subscribe@commons.apache.org">Subscribe</a></td>
           <td><a href="mailto:issues-unsubscribe@commons.apache.org">Unsubscribe</a></td>
           <td><i>read only</i></td>
-          <td><a href="https://mail-archives.apache.org/mod_mbox/commons-issues/">mail-archives.apache.org</a><br />
+          <td>
               <a href="https://lists.apache.org/list.html?issues@commons.apache.org">lists.apache.org</a>
           </td>
-          <td><a href="https://markmail.org/list/org.apache.commons.issues/">markmail.org</a><br />
+          <td>
               <a href="https://www.mail-archive.com/issues@commons.apache.org/">www.mail-archive.com</a>
           </td>
         </tr>
@@ -164,10 +164,10 @@
           <td><a href="mailto:commits-subscribe@commons.apache.org">Subscribe</a></td>
           <td><a href="mailto:commits-unsubscribe@commons.apache.org">Unsubscribe</a></td>
           <td><i>read only</i></td>
-          <td><a href="https://mail-archives.apache.org/mod_mbox/commons-commits/">mail-archives.apache.org</a><br />
+          <td>
               <a href="https://lists.apache.org/list.html?commits@commons.apache.org">lists.apache.org</a>
           </td>
-          <td><a href="https://markmail.org/list/org.apache.commons.commits/">markmail.org</a><br />
+          <td>
               <a href="https://www.mail-archive.com/commits@commons.apache.org/">www.mail-archive.com</a>
           </td>
         </tr>
@@ -199,13 +199,11 @@
           <td><a class="externalLink" href="mailto:announce-subscribe@apache.org">Subscribe</a></td>
           <td><a class="externalLink" href="mailto:announce-unsubscribe@apache.org">Unsubscribe</a></td>
           <td><i>read only</i></td>
-          <td><a class="externalLink" href="https://mail-archives.apache.org/mod_mbox/www-announce/">mail-archives.apache.org</a><br />
+          <td>
               <a class="externalLink" href="https://lists.apache.org/list.html?announce@apache.org">lists.apache.org</a>
           </td>
-          <td><a class="externalLink" href="https://markmail.org/list/org.apache.announce/">markmail.org</a><br />
-              <a class="externalLink" href="https://old.nabble.com/Apache-News-and-Announce-f109.html">old.nabble.com</a><br />
-              <a class="externalLink" href="https://www.mail-archive.com/announce@apache.org/">www.mail-archive.com</a><br />
-              <a class="externalLink" href="https://news.gmane.org/gmane.comp.apache.announce">news.gmane.org</a>
+          <td>
+              <a class="externalLink" href="https://www.mail-archive.com/announce@apache.org/">www.mail-archive.com</a>
           </td>
         </tr>
       </table>
