summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--Etc/creating-a-release.txt60
2 files changed, 63 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 64c7d77c9..cc65be8f7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2018-09-03  Daniel Shahaf  <d.s@daniel.shahaf.name>
 
+	* 43370: Etc/creating-a-release.txt: New maintainer-facing
+	documentation.
+
 	* unposted: Config/version.mk: Post-release version bump.
 
 	* unposted: Config/version.mk: Release 5.6.
diff --git a/Etc/creating-a-release.txt b/Etc/creating-a-release.txt
new file mode 100644
index 000000000..5d4e1e8b2
--- /dev/null
+++ b/Etc/creating-a-release.txt
@@ -0,0 +1,60 @@
+To create a zsh release:
+
+- Be satisfied that 'master' is releaseable.
+  (No recent destabilizing changes, `make check` passes, etc)
+
+- Bump or update:
+
+	Config/version.mk to today's date
+	Config/version.mk version number (sequence: 5.4.2, 5.4.2-dev-$((i++)), 5.4.2-test-$((++j)), 5.5)
+	Etc/FAQ.yo
+	README
+	NEWS
+
+- Commit those changes with an "unposted" ChangeLog entry.
+
+	git commit -am "Test release: 5.5.1-test-1." && 
+		zshdev-add-nnnnn-and-changelog unposted
+	# (Everyone has a different way of getting the "unposted" magic string
+	# into ChangeLog and the log message.  This script is how I do it; YMMV;
+	# see Etc/zsh-development-guide for alternative scripts.)
+
+- Create signed git tag named "zsh-5.5.1-..." (not "5.5.1-...")
+
+	git tag --sign -m "Tag version zsh-5.5.1-test-1." zsh-5.5.1-test-1
+
+- If the tagged release is a stable release (as opposed to a test release):
+
+	vi Config/version.mk # bump to 5.6-dev-0 and tomorrow's date
+	git commit -am "Post-release version bump." &&
+		zshdev-add-nnnnn-and-changelog unposted
+		# or local equivalent (see above)
+
+- Create tarball:
+
+	git checkout zsh-5.5.1-test-1
+	make -C Etc
+	make -C Doc everything
+	make tarxz-doc tarxz-src
+	for i in zsh*.tar.?z ; do gpg -ab -- $i ; done
+
+	# The tarxz-* targets create both *.tar.gz and *.tar.xz.
+
+- [one time step] Add your key to http://zsh.sf.net/Arc/source.html; see README in the 'web' repository for how to do this.  Its URL is:
+
+	git clone git://git.code.sf.net/p/zsh/web
+	git clone ssh://git.code.sf.net/p/zsh/web
+
+- Upload to sf.net
+
+	Test releases go to the "zsh-test" directory.
+	Stable releases to zsh/ and zsh-doc/.
+
+- Upload to zsh.org
+
+- Post to -workers@
+
+- After a day or so post to:
+
+	-users@, if test release;
+	-announce@, if stable release.