Add a release checklist.
diff --git a/doc/release.txt b/doc/release.txt
new file mode 100644
index 0000000..c823222
--- /dev/null
+++ b/doc/release.txt
@@ -0,0 +1,28 @@
+= Release checklist =
+
+Source release:
+
+- Update CHANGES with notable specifics.
+- Update version and LIB_* API soname suffix in configure.ac.
+  - If the source code changed, incremement REVISION.
+  - If interfaces changed, increment CURRENT and zero REVISION.
+  - If interfaces were added, increment AGE.
+  - If interfaces were removed, set AGE to zero.
+- Update the version and release date in doc/libogg/*.html.
+- Check for uncommitted changes to master.
+- Tag the release commit with 'git tag -s vN.M'.
+  - Include release notes in the tag annotation.
+- Verify 'make distcheck' produces a tarball with the desired name.
+- Push tag to public repo.
+- Upload source package 'libogg-${version}.tar.gz' et al.
+  to the website and verify file permissions.
+- Update checksum files on website.
+- Update links on <https://www.opus-codec.org/downloads/>.
+- Add a copy of the documentation to <https://xiph.org/ogg/docs/>
+  and update the links.
+
+Releases are commited to https://svn.xiph.org/releases/ogg/
+which propagates to downloads.xiph.org.
+
+Release packages should also be manually attached to the corresponding
+tag on the github mirror https://github.com/xiph/ogg/releases