diff --git a/ReleaseNotes/ReleaseNotes-2.8.4.txt b/ReleaseNotes/ReleaseNotes-2.8.4.txt
new file mode 100644
index 0000000..1719294
--- /dev/null
+++ b/ReleaseNotes/ReleaseNotes-2.8.4.txt
@@ -0,0 +1,173 @@
+Release notes for Gerrit 2.8.4
+==============================
+
+There are no schema changes from link:ReleaseNotes-2.8.3.html[2.8.3].
+
+Download:
+link:https://gerrit-releases.storage.googleapis.com/gerrit-2.8.4.war[
+https://gerrit-releases.storage.googleapis.com/gerrit-2.8.4.war]
+
+
+Bug Fixes
+---------
+
+
+Secondary Index
+~~~~~~~~~~~~~~~
+
+
+* Disable `commitWithin` when running Reindex.
++
+If `commitWithin` was set to a low value, it caused poor performance
+when running the Reindex program on sites with a large amount of changes.
++
+The `commitWithin` setting is now disabled from within Reindex by overriding
+the configuration with '-1'. Index updates are auto-flushed but not
+auto-committed, which is the least safe but the most efficient for reindexing
+the entire site.
+
+* Fix memory leak in Lucene index.
++
+`SubIndex.NrtFuture` objects were being added as listeners of `searchManager`
+and never released.
+
+Change Screen
+~~~~~~~~~~~~~
+
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=2456[Issue 2456]:
+Respect the comment visibility preference in the new change screen.
++
+The "Expand All" and "Collapse All" settings now work like they did on
+the old change screen.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=2538[Issue 2538]:
+Don't show the "Patch File" download for merge commits.
++
+The patch file download does not work for commits with more than one
+parent (i.e. merges) and results in an error being displayed. Now the
+link is not shown for merge commits; a solution for merge patches will
+be investigated for future releases.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=2526[Issue 2526]:
+Hide the `refs/heads/` prefix in branch suggestion list for cherry-picks.
++
+Regular branches like `refs/heads/stable/` will now be displayed as
+just `stable` in the suggestion list when cherry-picking a change in the
+Web UI.
+
+* Disable the "Save" button after it is pressed when editing the commit
+message.
++
+The "Save" button was not being disabled, and could be pressed multiple
+times while the message was being saved, resulting in multiple new patch
+sets being created.
+
+* Fix syntax highlighting for shell files in new side-by-side diff.
+
+* Fix inconsistent behavior of diff view when viewing binary files.
++
+In the new change screen, if the user clicked on a binary file in
+the file list, the unified view was used. Then when navigating to
+a previous or next file that is not binary, the diff view stayed in
+the old unified setting.
+
+* Make the skip bar more user friendly in side-by-side diff.
++
+The whole "skipped xxx common lines" text is now a link, rather
+than just the number.
+
+* Show previous and next file shortcut keys in new side-by-side
+navigation arrow tooltips.
++
+In the top right corner of a file the navigation cluster has a
+tooltip on the up arrow but did not show the tooltip on the left
+or right arrows.
+
+Plugins
+~~~~~~~
+
+
+* Fix ChangeListener auto-registered implementations.
++
+Add missing `@ExtensionPoint` in `ChangeListener` so implementors can
+use `@Listen` to register.
+
+* Escape dollar sign in plugin manifest entries.
++
+Plugins could be built, but not loaded, if they had any manifest entries
+that contained a dollar sign.
+
+Misc
+~~~~
+
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=2564[Issue 2564],
+link:https://code.google.com/p/gerrit/issues/detail?id=2571[Issue 2571]:
+Emit ref-updated event when editing project access via Web UI.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=2557[Issue 2557]:
+By default don't allow admins to create new branches by push.
++
+When pushing changes it is easy to make a typo in the refspec and in this case
+new branches should not be created. If administrators want to create branches
+by push they should explicitly assign themselves the needed access rights.
+
+* Do not refresh project list if filter did not change.
++
+The project list was being refreshed on every key event even if the
+filter did not change, e.g. moving the cursor inside the text entry was
+causing the list to update unnecessarily.
+
+* Fix mail thread getting stuck when waiting for response from SMTP server.
++
+It is now possible to configure the default thread pool size, the size of
+the thread pool for sending emails, and the SMTP server connection timeout.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=2215[Issue 2215]:
+Paginate the project list screen.
++
+The project list screen was taking a long time to render over a large
+amount of projects (1,000+) and with even larger number of projects
+(3,000+), it could make the browser unresponsive.
++
+The project list screen now uses pagination to resolve this issue. The
+number of projects displayed is determined by the 'Maximum Page Size'
+user preference.
++
+Option 'S' is added to the projects REST API to support query offset.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=2599[Issue 2599]:
+Always auto confirm adding reviewers in `set-reviewers` SSH command.
++
+If a group contains more than 'addreviewer.maxWithoutConfirmation'
+members, adding it as reviewer to a change requires a confirmation. A
+user should only be asked for the confirmation when reviewers are
+added from the Web UI but not when the `set-reviewers` SSH command is
+used.
+
+* Set uploader to current user in `patchset-created` event upon cherry-picking.
++
+When using the Web UI (both old and new change screens) to cherry-pick a
+change to a branch that already has this change (e.g. cherry-picking
+on the same branch to get rid of dependencies), the corresponding
+`patchset-created` event had its `patchSet.uploader` set to the change's
+owner instead of the current user. It is now set to the current user,
+so stream-events consumers can properly detect who uploaded the
+rebased patch set.
+
+Documentation
+~~~~~~~~~~~~~
+
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1273[Issue 1273]:
+Update the MySQL documentation concerning character sets.
++
+The setup documentation is updated to mention that there is no need to use
+latin1 encoding if you are using an engine other than MyISAM.
+
+* Use consistent grammatical tense in ssh command descriptions.
+
+* Add more detail about `refs/drafts` in
+link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8.4/access-control.html[
+access control documentation].
diff --git a/ReleaseNotes/index.txt b/ReleaseNotes/index.txt
index e73d224..94f6a92 100644
--- a/ReleaseNotes/index.txt
+++ b/ReleaseNotes/index.txt
@@ -4,6 +4,7 @@
 [[2_8]]
 Version 2.8.x
 -------------
+* link:ReleaseNotes-2.8.4.html[2.8.4]
 * link:ReleaseNotes-2.8.3.html[2.8.3]
 * link:ReleaseNotes-2.8.2.html[2.8.2]
 * link:ReleaseNotes-2.8.1.html[2.8.1]
