summary refs log tree commit diff
path: root/Etc/creating-a-release.txt
blob: 80b0dd3387e8f304104f773fe12c28f04fe1e2d4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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
	git diff HEAD # ensure no local mods
	Util/preconfig && ./configure ...
	make
	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.
	# 
	# They must be run in an in-tree build (where the generated 'configure'
	# and the generated 'Makefile' are in the same directory), for now, since
	# Doc/help/* need to be included in the src tarball.  See workers/43373.

- [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.