diff --git a/README.md b/README.md
index fe93563235b53d285578e0b1611b7df59cbc1a9c..681126f08dfd86622ee4ff01ea4b56239e2f4ec2 100644
--- a/README.md
+++ b/README.md
@@ -60,12 +60,33 @@ compiler but also mingw for the C part. Use `ocaml-env` to setup the
 environement for the compilation. Then the compilation is the same
 than for linux.
 
+## Making a release
+
+To make a release, the `RELEASE_TOKEN` environment variable must be
+set to a token generated by Gitlab and associated with your account
+(the one in the example is invalid):
+
+````
+export RELEASE_TOKEN=glptt-0123456789abcdef
+````
+
+- Update `version`, using the `YYYY.MM` format (Y=year, M=month).
+- Update `CHANGES.md` by adding a section in front of the current
+  ones. This file is processed by `changelog.sed`, which contains
+  additional comments about the subset of markdown understood by the
+  script.
+- Commit all changes.
+- Push to different branch to create a merge request
+- Review, fix and eventually merge it
+- Locally, pull from `origin/master` to `master`
+- Tag the commit with preferably the same value as `version`, ie.
+  `YYYY.MM` (there may be a suffix if necessary).
+- Execute `make release` and confirm.
+
 ## Remarks
 
-`Bin/` and `Src/` directories are copied from their respective
-repositories using the `release_colibri_opensource.sh` script found in
-`gatel/Src`'s original repository. They should be considered read-only
-here.
+The `Src/` directory is copied nightly from its original repository.
+It should be considered read-only here.
 
 ## LICENCE