From 56de66dfc2547b58ec97829cea873de9653736e3 Mon Sep 17 00:00:00 2001
From: Xue Fuqiao <xfq.free@gmail.com>
Date: Tue, 10 Nov 2015 17:46:51 +0800
Subject: [PATCH 2/2] Document the release process

* admin/notes/versioning: Add information about RC releases.

* admin/RELEASE-PROCESS: Document the release process.

* admin/authors.el (authors-ignored-files):
* admin/README: Change FOR-RELEASE to RELEASE-PROCESS.
---
 admin/README           |  4 ++--
 admin/RELEASE-PROCESS  | 45 ++++++++++++++++++++++++++++++++++++++++++++-
 admin/authors.el       |  2 +-
 admin/notes/versioning | 11 +++++++----
 4 files changed, 54 insertions(+), 8 deletions(-)

diff --git a/admin/README b/admin/README
index 2286e35..22c72f4 100644
--- a/admin/README
+++ b/admin/README
@@ -12,9 +12,9 @@ what you do when using them.
 
 * Instructions and scripts used to prepare an Emacs release.
 
-** FOR-RELEASE
+** RELEASE-PROCESS
 
-Living list of activities that must be completed before the next release.
+The release process used by GNU Emacs.
 
 ** make-tarball.txt
 
diff --git a/admin/RELEASE-PROCESS b/admin/RELEASE-PROCESS
index 286b90e..672cab4 100644
--- a/admin/RELEASE-PROCESS
+++ b/admin/RELEASE-PROCESS
@@ -1,7 +1,43 @@
-Tasks needed before the next release.
+This document describes the release process used by GNU Emacs.
+
+* RELEASE CYCLE
+
+Each release cycle will be split into three periods.
+
+** Phase one: development
+
+The first phase of the release schedule is the "heads-down" working
+period for new features.
+
+** Phase two: feature freeze
+
+Shortly before the feature freeze, Emacs developers will be devoted to
+figuring out what features to include in the next release and what
+features to defer to a later release.
+
+During the feature freeze, no new features will be accepted in
+`master'.  It ensures that sufficient share of the release cycle is
+dedicated to QA.
+
+When the feature freeze is over, a release branch called "emacs-NN"
+("NN" represents the major version number of the new Emacs release)
+will be cut from `master'.
+
+** Phase three: bugfixes
+
+The last phase of a release cycle is spent fixing bugs and eliminating
+undocumented new features on the "emacs-NN" branch.
+
+In parallel to this phase, `master' can receive new features, to be
+released in the next release cycle.  From time to time, the master
+branches merges bugfix commits from the "emacs-NN" branch.
 
 * TO BE DONE SHORTLY BEFORE RELEASE
 
+** Make sure the Copyright date reflects the current year in the source
+files.  See `admin/notes/years' for information about maintaining
+copyright years for GNU Emacs.
+
 ** Make sure the necessary sources and scripts for any generated files
 are included in the source tarfile.  (They don't need to be installed,
 so eg admin/ is fine.)
@@ -275,6 +311,13 @@ tips.texi
 variables.texi
 windows.texi
 
+* OTHER INFORMATION
+
+For Emacs's versioning scheme, see `admin/notes/versioning'.
+
+For instructions to create pretest or release tarballs, announcements,
+etc., see `admin/make-tarball.txt'.
+
 
 Local variables:
 mode: outline
diff --git a/admin/authors.el b/admin/authors.el
index 3d7850a..f5d23be 100644
--- a/admin/authors.el
+++ b/admin/authors.el
@@ -267,7 +267,7 @@ authors-ignored-files
   '("external-lisp"
     "lock" "share-lib" "local-lisp"
     "noleim-Makefile.in"
-    "NEWS" "ORDERS" "PROBLEMS" "FAQ" "AUTHORS" "FOR-RELEASE" "TODO" "todo"
+    "NEWS" "ORDERS" "PROBLEMS" "FAQ" "AUTHORS" "RELEASE-PROCESS" "TODO" "todo"
     "MACHINES" "SERVICE"
     "README.unicode" "README.multi-tty" "TUTORIAL.translators"
     "NEWS.unicode" "COPYING.DJ" "Makefile.old" "Makefile.am"
diff --git a/admin/notes/versioning b/admin/notes/versioning
index e422b22..e956a68 100644
--- a/admin/notes/versioning
+++ b/admin/notes/versioning
@@ -9,16 +9,19 @@ Emacs version numbers have the form
 "build" increments each time Emacs is built in the same location
 (without cleaning) and isn't really part of the version.
 
-bugfix releases increase "minor" by 1.
-non-bugfix releases increase "major" by 1, and reset "minor" to 1.
+Bugfix releases increase "minor" by 1.
+Non-bugfix releases increase "major" by 1, and reset "minor" to 1.
 (The division between bugfix and non-bugfix has not always been clear
 historically.)
 
 Unreleased (development) versions have an extra "devel" component.
 This is a fairly meaningless number that may be unchanged for a long time.
 It is normally 50.
-When the release process starts, it changes to 90, 91, ...
-When the actual release is made, this component is removed.
+
+After we cut the release branch, we’ll make pretest and release
+candidate (RC) releases.  For pretest releases, the "devel" component
+changes to 90, 91, ...  When the first RC release is made, this
+component is removed.
 
 The development version for a new major release has "minor" = 0.
 The development version for a new minor release has "minor" = that of
-- 
2.6.3

