diff --git a/doc/build.sh b/doc/build.sh
old mode 100644
new mode 100755
index 150e33916ca642c328cda4619dd6a2430309415a..955ccd81d711b848509d51c1cc7d12484f5edbdc
--- a/doc/build.sh
+++ b/doc/build.sh
@@ -15,6 +15,7 @@ cat >> index.rst << EOF
    quickstart
    running
    examples
+   releasing
 EOF
 
 # run sphinx
diff --git a/doc/conf.py b/doc/conf.py
index 4f52a0ff4d85b8189c98af84eca90cdc19200581..4f5141eccc50a636b7641f58c8d16dafac3eff23 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -22,7 +22,7 @@ copyright = '2019, Neil J. Cornish, Tyson B. Littenberg'
 author = 'Neil J. Cornish, Tyson B. Littenberg'
 
 # The full version, including alpha/beta/rc tags
-release = '1.0.4'
+release = '1.0.3'
 
 
 # -- General configuration ---------------------------------------------------
diff --git a/doc/releasing.md b/doc/releasing.md
new file mode 100644
index 0000000000000000000000000000000000000000..6662fcd7872417911e146c2ee6c1ca95836f2280
--- /dev/null
+++ b/doc/releasing.md
@@ -0,0 +1,58 @@
+# Preparing A Release
+
+Procedure:
+ 1. [Create a tag](#create-a-tag)
+ 1. [Build A Release Tarball](#build-a-release-tarball)
+
+## Create a tag
+Tag the state of the repository you'd like to release: [create new tag in
+gitlab](https://git.ligo.org/lscsoft/bayeswave/-/tags/new). See [previous
+tags](https://git.ligo.org/lscsoft/bayeswave/-/tags) for examples of notes and
+the semantic version name used (e.g. vX.Y.Z)
+
+## Build A Source Tarball
+LSC software is released by uploading a source tarball to the
+[software.ligo.org](software.ligo.org) software repository.  This tarball can
+then be unpacked and built by package managers.  At this time, BayesWave can be
+managed by the following systems:
+ * `conda`, in which case the BayesWave release will eventually show up in the
+ [LIGO conda reference environments](https://docs.ligo.org/lscsoft/conda/).
+ * `yum`, in which case BayesWave can be installed directly from the LSCSoft
+ SL7 repositories.
+
+The easiest way to enter a suitable build environment is to use the BayesWave
+dependencies docker image.  Assuming we're starting at the root of the
+BayesWave repository:
+```
+$ docker run -it -u $(id -u):$(id -g) -w $PWD -v /home:/home containers.ligo.org/lscsoft/bayeswave/dependencies:el7
+$ mkdir dist
+$ pushd dist
+$ cmake3 ..
+$ cmake3 --build . --target package_source
+```
+(Noting that the Cmake executable in the BayesWave dependencies image is called
+ `cmake3`).
+
+On success, this should produce a compressed tarball `bayeswave-X.Y.Z.tar.xz`,
+where `X.Y.Z` is your tag version.
+
+## Upload Source Tarball
+Acquire the upload script `lscsrc_new_file.sh` from Adam Mercer.  If using
+linux (rather than OSX), make sure you change the call to `gmktemp` to `mktemp`:
+```
+#SKTFILE=`gmktemp --dry-run`
+SKTFILE=`mktemp --dry-run`
+```
+Run the script to upload the tarball:
+```
+$ sh ~/Downloads/lscsrc_new_file.sh bayeswave-X.Y.Z.tar.xz
+```
+
+## Open SCCB Request
+Full instructions available [here](https://docs.ligo.org/sccb/requests/).  Briefly:
+ 1. [Open a ticket](https://git.ligo.org/sccb/requests/issues/new)
+ 1. Invite your reviewer to post a comment indicating review sign-off.
+
+## Deployment
+The process now leaves the BayesWave team's hands and packages will be built
+and deployed using the provided tarball, pending SCCB approval.