From 43fcc63c23741b1d4c67ead1cd939e12919383d1 Mon Sep 17 00:00:00 2001
From: Christian Legnitto <LegNeato@users.noreply.github.com>
Date: Thu, 16 May 2019 19:22:20 -0700
Subject: [PATCH] Update RELEASING.md

---
 RELEASING.md | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/RELEASING.md b/RELEASING.md
index 1946f092..2cc89734 100644
--- a/RELEASING.md
+++ b/RELEASING.md
@@ -2,6 +2,17 @@
 
 ## Prerequisites
 
+It is generally best to start with a clean respository dedicated to a release so that no git weirdness happens:
+
+```
+git clone git@github.com:graphql-rust/juniper.git juniper_release;
+cd juniper_release;
+```
+
+We use the `nightly` toolchain when releasing. This is because some of our crates require nightly:
+
+`rustup default nightly`
+
 We use [`cargo-make`](cargo-make) and [`cargo-release`](cargo-release) to automate crate releases. You will need to install them locally:
 
 - `cargo install -f cargo-make`
@@ -15,6 +26,8 @@ There are two general classes of release and each require running different auto
 
 2. A subset of workspace crates need to be released, or not all crate releases share the same release level. _These commands start with `release-skip-[whatever]`._
 
+**All release commands must be run from the root directory of the repository.**
+
 ## Determine new release level
 
 For each crate, determine the desired release level (`patch`, `minor`, `major`). Set the `RELEASE_LEVEL` env variable to the desired release level.