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