diff --git a/pages/site/releases/3.2.md b/pages/site/releases/3.2.md
index 431b62b..c6aeea3 100644
--- a/pages/site/releases/3.2.md
+++ b/pages/site/releases/3.2.md
@@ -12,29 +12,53 @@
 
 * File Uploads in frontend
 
+* Support for Java 11
+
 ## Important Notes
 
 ### Mergeability behavior and performance
 
-This release introduces a configuration that defines when Gerrit computes the
-mergability of a change ('change.mergeabilityComputationBehavior').
+This release introduces a configuration setting `change.mergeabilityComputationBehavior`
+that defines when Gerrit computes the mergability of a change .
 
 Computing the mergability of changes is an expensive operation that can be
 become a bottleneck for large Gerrit installations. The new setting allows
-administrators to control this expense. The tree options relate to the following
-use-cases:
+administrators to control this expense. Please refer to the
+[Gerrit documentation](http://gerrit-documentation.storage.googleapis.com/Documentation/3.2.0/config-gerrit.html#change.mergeabilityComputationBehavior)
+for more details about this setting.
 
-1. API_REF_UPDATED_AND_CHANGE_REINDEX: Mergeability is computed when Gerrit
-   returns results on the API, reindexes changes and updates target refs.
-2. REF_UPDATED_AND_CHANGE_REINDEX: Mergeability is computed when Gerrit
-   reindexes changes and updates target refs.
-3. NEVER: Optimize gerrit performance by shutting down mergeability computation
-   entirely.
+### Support for Java 11
 
-The documentation contains more information about this setting.
+Gerrit is now officially supported on Java 11, in addition to Java 8.
+Running on Java 11 was already possible from v2.16.13, v3.0.4 and v3.1.0, but not officially
+supported because of the lack of a CI validation on Java 11 for stable-2.16, stable-3.0
+and stable-3.1 branches.
+
+Gerrit v3.2 has been validated with Java 11, with the following known issues:
+
+* [Issue 11567](https://bugs.chromium.org/p/gerrit/issues/detail?id=11567):
+Java 11 runtime & startTLS LDAP broken: 'error code 8 - BindSimple: Transport encryption'.
+
+* [Issue 12639](https://bugs.chromium.org/p/gerrit/issues/detail?id=12639):
+WARNING: An illegal reflective access operation has occurred, when starting Gerrit.
 
 ### Schema Changes
 
+This release contains schema changes. To upgrade:
+
+``` sh
+  java -jar gerrit.war init -d site_path
+```
+
+**PERFORMANCE WARNING**: The migration process performs the cleanup of
+the zombie draft comments in the All-Users.git repository that have been
+left behind since the introduction of NoteDb. It is highly recommended
+to perform a `git gc --aggressive` of the All-Users.git repository *BEFORE*
+running the migration.
+
+Also, make sure that the All-Users.git resides on
+a fast access local filesystem for minimizing the migration time.
+
 ### Breaking Changes
 
 ## New Features
@@ -43,9 +67,113 @@
 
 File Uploads are now supported in the User Interface or through the REST API.
 
-### Polymer 3
+### New Revert permission
+
+Introduce a new permission to allow/deny the ability to revert a change through
+the Gerrit UI.
+
+The permission is automatically added to the `Registered Users` as part of the
+schema upgrade. To deny reverts, Gerrit administrators should remove this permission
+from `All-Projects` ACL.
+
+### PolyGerrit UI
 
 The Gerrit frontend has been migrated from Polymer 2 to
 [Polymer 3](https://polymer-library.polymer-project.org/3.0/docs/upgrade).
 
+* Users can now cherry pick entire topics.
+
+* Gerrit supports adding display names. Hosts can configure first name or username as default.
+
+* The reply dialog now shows the entire comment thread instead of the comment list.
+
+* [Issue 10444](https://bugs.chromium.org/p/gerrit/issues/detail?id=10444):
+UI for deleting change messages for Gerrit Administrators.
+
+* [Issue 10890](https://bugs.chromium.org/p/gerrit/issues/detail?id=10890):
+Repository list: Move "Repository Browser" column left of "Description" column.
+
+* [Issue 11441](https://bugs.chromium.org/p/gerrit/issues/detail?id=11441):
+Add in-product reminder to keep discussions respectful.
+
+  Some code review discussions can become a bit rough and some people perceived
+  discussions as not always respectful.
+  Add an in-product reminder to keep discussions respectful when a reply is typed,
+  optionally with linking to the code of conduct.
+
+* [Issue 11521](https://bugs.chromium.org/p/gerrit/issues/detail?id=11521):
+Display trace ID in error popup if request failed and server did a trace.
+
+* [Issue 11522](https://bugs.chromium.org/p/gerrit/issues/detail?id=11522):
+New UI for editing code review labels in the project configuration.
+
+* [Issue 11705](https://bugs.chromium.org/p/gerrit/issues/detail?id=11705):
+Show count of changes in User Dashboard.
+
+* [Issue 11706](https://bugs.chromium.org/p/gerrit/issues/detail?id=11706):
+Allow editing the commit message as part of a change edit.
+
+### Download commands plugin
+
+* [Issue 11594](https://bugs.chromium.org/p/gerrit/issues/detail?id=11594)
+Merge the repo-vs-git logic into GitDownloadCommand directly.
+
+   Created separate "getRepoCommand" and "getCommand" methods for
+   downstream classes to extend with the default "getRepoCommand"
+   defaulting to null.
+
+* [Issue 11609](https://bugs.chromium.org/p/gerrit/issues/detail?id=11609)
+"Download patch" UI includes an option for also creating a local branch.
+
+  A very standard workflow is to download a change from Gerrit then want
+  to make edits and then repo upload the changes back to Gerrit.
+  Allow developers who are not familiar with the idiosyncrasies of repo,
+  to easily create a local branch when checking out changes.
+
+## Bug Fixes
+
+* Replication plugin fixes
+
+  * [Issue 11672](https://bugs.chromium.org/p/gerrit/issues/detail?id=11672):
+  Change the storage structure of the persisted replication tasks to avoid losing events.
+
+* PolyGerrit fixes
+
+  * [Issue 11515](https://bugs.chromium.org/p/gerrit/issues/detail?id=11515):
+  Fix Ctrl-Enter on Move Change
+
+  * [Issue 11552](https://bugs.chromium.org/p/gerrit/issues/detail?id=11552):
+  Fix prev/next on diff screen with unchanged files containing only comments.
+
+  * [Issue 11725](https://bugs.chromium.org/p/gerrit/issues/detail?id=11725):
+  Fix diff view file name shown even when the file wasn't changed, but only included because
+  contains a comment.
+
+  * [Issue 11727](https://bugs.chromium.org/p/gerrit/issues/detail?id=11727):
+  Fix blue underline missing from active tabs.
+
 ## Dependency Updates
+
+* Upgrade flogger to 0.5.1
+
+* Upgrade guava to 29.0
+
+* Upgrade guice to 4.2.3
+
+* Upgrade mina-sshd to 2.4.0
+
+* Upgrade ow2 to 7.2
+
+* Upgrade truth to 1.0.1
+
+## Native packaging
+
+* Upgrade the Docker/Ubuntu image to Ubuntu 20.04
+
+* Upgrade the Docker/CentOS image to CentOS 8.1.1911
+
+* Move to OpenJDK 11
+
+  Gerrit v3.2 supports both Java 8 and 11. However, Java 11 is the best choice for
+  large production servers thanks to the introduction of more advanced Garbage Collection
+  [strategies and associated tuning for large heaps](https://docs.oracle.com/en/java/javase/11/gctuning/introduction-garbage-collection-tuning.html).
