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.