|
| 1 | +How to create a Windows Release |
| 2 | +=============================== |
| 3 | + |
| 4 | +A setup executable is named as follows |
| 5 | + |
| 6 | + - it starts with Git; |
| 7 | + - followed by the Git for Windows version of the form A.B.C.D where |
| 8 | + A.B.C is the Git version on which the release is based, and |
| 9 | + A.B.C.windows.D is the tag in Git for Windows' repository |
| 10 | + - followed by the "bitness", i.e. "-32-bit" or "-64-bit" |
| 11 | + |
| 12 | +Examples: |
| 13 | + |
| 14 | +Git-2.3.5.3-64-bit.exe |
| 15 | + |
| 16 | +There are not necessary Git for Windows releases for each official Git |
| 17 | +version. A Git for Windows release is tagged by a tag having a postfix |
| 18 | +'.windows.[0-9]+'. |
| 19 | + |
| 20 | +Here is a step-by-step instruction for the maintainer: |
| 21 | + |
| 22 | + # perform a merging rebase |
| 23 | + cd /usr/src/git |
| 24 | + git remote add git https://github.com/git/git |
| 25 | + git fetch git |
| 26 | + git checkout master |
| 27 | + BASE="$(git rev-parse ":/Start the merging-rebase")" |
| 28 | + ../build-extra/./shears.sh --merging --onto <git-tag> $BASE |
| 29 | + |
| 30 | + # check diff of diff (before vs after merging rebase) |
| 31 | + git diff <gittag>..origin/master > prev.diff |
| 32 | + git diff <gittag>..master > curr.diff |
| 33 | + git diff --no-index prev.diff curr.diff |
| 34 | + |
| 35 | + # verify that the test suite passes |
| 36 | + make -j5 all |
| 37 | + cd t |
| 38 | + /usr/bin/time prove -j 5 --state=failed,save ./t[0-9]*.sh |
| 39 | + |
| 40 | + # tag the new version |
| 41 | + git tag -a <git-tag>.windows.<number> |
| 42 | + git push origin <git-tag>.windows.<number> |
| 43 | + |
| 44 | + # package the new version |
| 45 | + cd /usr/src/MINGW-packages/mingw-w64-git |
| 46 | + makepkg-mingw -s |
| 47 | + |
| 48 | + # publish the new packages |
| 49 | + /usr/src/build-extra/pacman-mirror.sh fetch |
| 50 | + /usr/src/build-extra/pacman-mirror.sh add mingw-w64-*<version>* |
| 51 | + /usr/src/build-extra/pacman-mirror.sh push |
| 52 | + |
| 53 | + # ensure current setup is up-to-date (including the Git packages) |
| 54 | + pacman -Syu |
| 55 | + # on 32-bit, quit all MSys shells and run \autorebase.bat now |
| 56 | + |
| 57 | + # make installer (after updating the release notes) |
| 58 | + /usr/src/build-extra/installer/release.sh <git-for-windows-version> |
| 59 | + |
| 60 | + # upload to GitHub |
| 61 | + /usr/src/build-extra/upload-to-github.sh <git-tag>.windows.<number> \ |
| 62 | + ~/Git-<version>*.exe |
| 63 | + |
| 64 | + # Reply to Junio's announcement. |
| 65 | + # Start the subject of your email with '[ANNOUNCE]'. |
0 commit comments