diff --git a/docs/releasenotes/0.8.10.rst b/docs/releasenotes/0.8.10.rst
new file mode 100644
index 0000000000000000000000000000000000000000..809a21641eb472a9c9399299c37de60c158c771a
--- /dev/null
+++ b/docs/releasenotes/0.8.10.rst
@@ -0,0 +1,94 @@
+Djblets 0.8.10 Release Notes
+============================
+
+**Release date**: TBD
+
+
+djblets.auth
+============
+
+* Removed the maximum password length restriction in
+  :py:class:`RegistrationForm`.
+
+  This limit was here due to issues in very early versions of Django, and
+  no longer applies. Long password can now be set without hitting a
+  restriction.
+
+
+djblets.configforms
+===================
+
+* Fixed calling the parent :js:func:`render` method in
+  :js:class:`Djblets.TableView`.
+
+
+djblets.db
+==========
+
+* :py:class:`djblets.db.fields.CounterField` now supports ``F()`` expressions
+  during initialization.
+
+  Using ``F()`` expressions allows for doing more advanced, atomic computation
+  of default values based on other fields in the model, without having to
+  write a custom function.
+
+* Added :py:class:`djblets.db.fields.RelationCounterField` for counting
+  objects on the other side of a relation.
+
+  RelationCounterField tracks the counts on one end of a ForeignKey or
+  ManyToManyField relation, providing a convenient and efficient way of
+  operating based on how many objects are related to the model.
+
+  It works just like CounterField, but handles all the hard working of
+  getting the total counts when first initializing and keeping them up to
+  date as objects are added or removed.
+
+
+djblets.testing
+===============
+
+* Added a mixin for test cases that need to create custom models.
+
+  Django doesn't make it easy to write unit tests that have their own
+  custom models. The test runner has to add an app with a models.py file
+  to ``INSTALLED_APPS``, and the models have to live somewhere within that
+  directory. This is a lot of work, and it's hard to keep things clean
+  this way.
+
+  This release introduces a new mixin,
+  :py:class:`djblets.testing.testcases.TestModelsLoaderMixin`, that can be
+  used to allow a file containing unit tests to define custom models. The
+  classes that need to use the models simply define the models within the
+  file, use the mixin, and then operate on them.
+
+  The mixin handles the hard work of sticking the module in
+  ``INSTALLED_APPS``, loading the module, and also creating a fake 'models'
+  module to satisfy Django's requirements.
+
+* Docstrings for test cases using
+  :py:class:`djblets.testing.testcases.TestCase` can now wrap without being
+  cut off.
+
+
+djblets.webapi
+==============
+
+* Failing to parse the HTTP ``Authorization`` header for any reason now logs a
+  warning instead of returning a HTTP 500.
+
+
+jquery.gravy.inlineEditor
+=========================
+
+* Fixed the sizing of inline editor fields on Firefox.
+
+  Due to a bad calculation, the fields could end up being very short, making
+  room for buttons that were actually on the next line. They now take up the
+  full available width.
+
+
+Contributors
+============
+
+* Christian Hammond
+* David Trowbridge
diff --git a/docs/releasenotes/index.rst b/docs/releasenotes/index.rst
index 7b328619cbe6a891e9808ae387f66c44fe5b794f..10ba79e5e6db991830a3a222dc2fcfdcb01a8aed 100644
--- a/docs/releasenotes/index.rst
+++ b/docs/releasenotes/index.rst
@@ -11,6 +11,7 @@ Djblets Release Notes
 .. toctree::
    :maxdepth: 1
 
+   0.8.10
    0.8.9
    0.8.8
    0.8.7
