1 How to create a Windows Release
2 ===============================
4 A setup executable is named as follows
6 - followed by the official git version if the release is closely
7 related to a specific version of official git;
9 * preview<date>, for snapshot builds.
10 * winrc#, if we reach a certain quality level and plan to release
11 a stable version. If no bugs are found, this can be upgraded
12 to a stable release. We use winrc instead of simply rc to avoid
13 confusion with official release candidates. The prefix "win"
14 clearly indicates that the tag is about the Windows release.
18 Git-preview20080313.exe
19 Git-1.5.4-preview20071014.exe
23 We'll not necessary release a stable version for each official version
24 number. If we merge changes from git.git we will adjust the number.
25 We will continue releasing previews until we have reached sufficient
28 The following criteria should be met before we go stable.
29 * features equivalent to official git-#-#-# are available in Git Bash.
30 * [DONE] safe crlf handling.
31 * good support for case insensitive filesystems.
32 * [DONE] git-gui works if run from Git Bash.
33 * [DONE] git-gui works if run from Start Menu.
34 * [DONE] git and git-gui available from Windows Command Prompt (cmd shell).
35 * server functionality (git-daemon, git-shell, ...) _not_ necessarily
37 * git-cheetah _not_ needed.
39 For now we should only release previews.
41 A release is created from official git.git plus a number of patches
42 that are not yet in upstream. Since 1.6.0, most of the MinGW port is
43 included in Junio's official git.git. A few patches, however, are not
44 yet included. Those patches are maintained as a branch 'release' that
45 is regularily rebased onto Junio's master. A msysgit release is
46 tagged by a tag having a postfix '-msysgit<number>'.
48 He are the step by step instructions for the maintainer:
54 git merge mingw/master
55 git merge junio/master
56 make -k test | tee test.log
59 git rebase junio/master
60 # check that differences between devel and release
61 # are only trivial ones, i.e. tests, that do not
62 # change the released binaries.
65 git push . devel:master # should fast-forward
66 git tag -a <version>-msysgit1
70 git checkout origin/html
74 start ReleaseNotes.rtf # edit and save
76 git push . devel:master
77 git tag -a -m "Git-<version>" Git-<version>
78 ./release.sh <version>
81 # upload to Google code (verify sha1)
86 git push Git-<version> # don't forget to push tag
88 # reply to Junio's announcement.
89 # The subject of your email should start with [ANNOUNCE].