summaryrefslogtreecommitdiff
path: root/admin
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2021-09-30 22:19:14 +0300
committerEli Zaretskii <eliz@gnu.org>2021-09-30 22:19:14 +0300
commit5c73dfcbcb12d107dfdad335328b7c258bdd64c8 (patch)
tree483d7eee4c76c5c43bbef0768e53badb1220dd60 /admin
parentf060d1c9a4d3f2c5990914e1272ebd55a72645a5 (diff)
downloademacs-5c73dfcbcb12d107dfdad335328b7c258bdd64c8.tar.gz
* admin/release-branch.txt: New file.
Diffstat (limited to 'admin')
-rw-r--r--admin/release-branch.txt75
1 files changed, 75 insertions, 0 deletions
diff --git a/admin/release-branch.txt b/admin/release-branch.txt
new file mode 100644
index 00000000000..2be0495c414
--- /dev/null
+++ b/admin/release-branch.txt
@@ -0,0 +1,75 @@
+Instructions for cutting the Emacs release branch
+
+1. In the clone of the Emacs Git repository, switch to the 'master'
+ branch, "git pull", and build it to make sure it's not broken.
+ Consider deleting all the *.elc and *.o files, or running the
+ command "make extraclean", before building.
+
+2. Create the release branch and switch to it. Assuming that it is
+ for releasing Emacs versions XY.1, XY.2, etc., the command is:
+
+ git checkout -b emacs-XY
+
+3. Switch the release branch to the suitable version. The convention
+ is that release branches start with version XY.0.60, whereas the
+ master branch from which the release branch was cut was at the
+ version XY.0.50. To change the version, do the following inside
+ Emacs:
+
+ M-x load-file RET admin/admin.el RET
+ M-x set-version RET XY.0.60 RET
+
+ Change the value of 'customize-changed-options-previous-release'
+ in cus-edit.el to reference the last release from the emacs-XY-1
+ branch (last release for the previous major version).
+
+ The above modifies several files in the tree; commit the changes
+ with the appropriate log message, something like "Bump Emacs
+ version to XY.0.60", and with header saying "Cut the emacs-XY
+ release branch". Then push the changes:
+
+ git push --set-upstream origin emacs-XY
+
+ The "push" command should show the new branch just created.
+
+4. Switch back to the master branch.
+
+ git checkout master
+ git pull
+
+ Set the version on the master branch to the next major release:
+
+ M-x set-version RET XY+1.0.50 RET
+
+ This creates a new file etc/NEWS.XY. "git add" it.
+
+ Change the value of 'customize-changed-options-previous-release'
+ in cus-edit.el to reference emacs-XY.1, the next version to be
+ released from the newly-committed release branch.
+
+ Update the emacs-module sources for the new version XY+1. This
+ entails:
+
+ . adding a new file src/module-env-XY+1.h, with contents just the
+ comment taken from the beginning of src/module-env-XY.h
+ . removing the comment from the beginning of src/module-env-XY.h
+ . adding two lines to configure.ac:
+
+ AC_SUBST_FILE([module_env_snippet_XY+1])
+ module_env_snippet_XY+1="$srcdir/src/module-env-XY+1.h"
+
+ . adding a new 'struct emacs_env_XY+1' to src/emacs-module.h.in,
+ with the contents identical to'struct emacs_env_XY', with one
+ line added:
+
+ @module_env_snippet_XY+1@
+
+ (FIXME: "M-x set-version" should do this emacs-module stuff
+ automatically when the version is NN.0.60, or when there's no
+ src/module-env-NN.h file.)
+
+ "git add" the new src/module-env-XY+1.h file.
+
+ Then rebuild Emacs. Then commit the new/changed files and push.
+
+5. Announce the new release branch on emacs-devel.