Be more careful when cleaning up the PATH during an uninstall
[git/jnareb-git.git] / share / WinGit / HowToRelease.txt
blobe124a9993e9cd3892faf05d0a00423850625f18f
1 How to create a Windows Release
2 ===============================
4 A setup executable is named as follows
6  - it starts with Git;
7  - followed by the official git version if the release is closely
8    related to a specific version of official git;
9  - followed by
10     * preview<date>, for snapshot builds.
11     * winrc#, if we reach a certain quality level and plan to release
12       a stable version.  If no bugs are found, this can be upgraded
13       to a stable release.  We use winrc instead of simply rc to avoid
14       confusion with official release candidates.  The prefix "win"
15       clearly indicates that the tag is about the Windows release.
17 Examples:
19 Git-preview20080313.exe
20 Git-1.5.4-preview20071014.exe
21 Git-1.5.4-winrc3.exe
22 Git-1.5.4.exe
24 We'll not necessary release a stable version for each official
25 version. If we merge changes from git.git we will adjust the number.
26 We will continue releasing previews until we have reached sufficient
27 stability.
29 The following is missing before we release a stable installer.
31     * features equivalent to official git-#-#-# available in Git Bash.
32     * good support for case insensitive filesystems.
34 We will *not* wait for
36     * server functionality (git-daemon, git-shell, ...).
37     * git-cheetah.
39 An msysgit release is tagged by a tag having a postfix '.msysgit.[0-9]+'.
41 Here is a step-by-step instruction for the maintainer:
43    cd /git
44    git fetch mingw
45    git fetch junio
46    git checkout devel
47    git merge mingw/master
48    git merge junio/master
49    make -k test | tee test.log
50    # check test.log
52    make clean
53    git tag -a v<version>.msysgit.<number>
54    make install
56    cd /doc/git/html
57    git fetch
58    git checkout origin/html
60    cd /share/WinGit
61    git checkout devel
62    start ReleaseNotes.rtf # edit and save
63    git commit -a
64    git tag -a -m "Git-<version>" Git-<version>
65    ./release.sh <version>
67    # Test installer.
69    # Upload to Google code (verify sha1).
71    cd /git
72    git push . devel:master  # should fast-forward
73    git push
74    git push <version>-msysgit<number>
75    cd /
76    git push . devel:master
77    git push
78    git push Git-<version>
79    # Don't forget to push tags.
81    # Reply to Junio's announcement.
82    # Start the subject of your email with '[ANNOUNCE]'.