Add a script to install TkImg
[git/jnareb-git.git] / share / WinGit / HowToRelease.txt
blob4edc6c73933c845a959c73d893431f3402e07c15
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 A release is created from official git.git plus a number of patches
40 that are not yet in upstream.  Since 1.6.0, most of the MinGW port is
41 included in Junio's official git.git.  A few patches, however, are not
42 yet included.  Those patches are maintained as a branch 'release' that
43 is regularily rebased onto Junio's master.  A msysgit release is
44 tagged by a tag having a postfix '.msysgit.[0-9]+'.
46 Here is a step-by-step instruction for the maintainer:
48    cd /git
49    git fetch mingw
50    git fetch junio
51    git checkout devel
52    git merge mingw/master
53    git merge junio/master
54    make -k test | tee test.log
55    # check test.log
57    git checkout release
58    git rebase junio/master
59    # Check that differences between devel and release
60    # are only trivial ones, i.e. tests, that do not
61    # change the released binaries.
62    make clean
63    git tag -a v<version>.msysgit.<number>
64    make install
66    cd /doc/git/html
67    git fetch
68    git checkout origin/html
70    cd /share/WinGit
71    git checkout devel
72    start ReleaseNotes.rtf # edit and save
73    git commit -a
74    git tag -a -m "Git-<version>" Git-<version>
75    ./release.sh <version>
77    # Test installer.
79    # Upload to Google code (verify sha1).
81    cd /git
82    git push . devel:master  # should fast-forward
83    git push
84    git push <version>-msysgit<number>
85    cd /
86    git push . devel:master
87    git push
88    git push Git-<version>
89    # Don't forget to push tags.
91    # Reply to Junio's announcement.
92    # Start the subject of your email with '[ANNOUNCE]'.