3 | | == Versioning scheme == |
4 | | |
5 | | We are using the following versioning scheme: 'master' branch has all features, bugfixes and other things. Numeration is 'a.b.c'. For example, numeration of 'master' tags are: |
6 | | |
7 | | * 4.7.0 |
8 | | * 4.7.1 |
9 | | * 4.7.2 |
10 | | * ... |
11 | | |
12 | | Period of releases: typically twice a year (spring and autumn) unless a serious issue is found. |
13 | | |
14 | | == Pre-requisites == |
15 | | |
16 | | === Fedora (fresh VM for releases) === |
17 | | |
18 | | {{{ |
19 | | yum build-dep mc |
20 | | yum install git-core fakeroot check-devel po4a libX11-devel |
21 | | }}} |
22 | | |
23 | | === macOS === |
24 | | |
25 | | {{{ |
26 | | brew install autoconf automake libtool pkg-config check clang-format |
27 | | brew install glib libssh2 openssl s-lang |
28 | | }}} |
29 | | |
30 | | === git === |
31 | | |
32 | | {{{ |
33 | | git config --global user.name "Yury V. Zaytsev" |
34 | | git config --global user.email "yury@shurup.com" |
35 | | }}} |
36 | | |
37 | | == Release process == |
38 | | |
39 | | '''All next steps described at this page should be mirrored in release tickets step-by-step''' |
40 | | |
41 | | Search previously created ticket with task about next version release (create if ticket not found) and follow by steps while preparing for the release: |
42 | | |
43 | | * prepare repository for release |
44 | | {{{ |
45 | | git fetch |
46 | | git checkout master |
47 | | git reset --hard origin/master |
48 | | git clean -dfx |
49 | | ./autogen.sh |
50 | | mkdir dist; cd dist; ../configure; cd .. |
51 | | }}} |
52 | | * download PO-translations from Transifex (see before: [wiki:TxRepoSetup how to set up local tx-repository]) |
53 | | {{{ |
54 | | ./maint/sync-transifex/po-from-transifex.py |
55 | | }}} |
56 | | * store translations in git repo |
57 | | {{{ |
58 | | make -C dist/po update-po |
59 | | git add po/*.po |
60 | | git commit -s -m 'Update translations from Transifex' |
61 | | git push origin master |
62 | | }}} |
63 | | * download the hint translations from Transifex |
64 | | {{{ |
65 | | ./maint/sync-transifex/hints-from-transifex.py |
66 | | }}} |
67 | | * store translations in git repo |
68 | | {{{ |
69 | | git add doc/hints/l10n/mc.hint.* |
70 | | git commit -s -m 'Update hints translations from Transifex' |
71 | | git push origin master |
72 | | }}} |
73 | | * create new NEWS wiki page for next version with empty template. Template may be copied from current NEWS wiki page (without list of tasks and bugreports) |
74 | | * add content of current NEWS wiki page to the doc/NEWS file in git repo |
75 | | {{{ |
76 | | git add doc/NEWS |
77 | | git commit -s -m 'Update doc/NEWS file' |
78 | | git push origin master |
79 | | }}} |
80 | | * new version in Trac |
81 | | * new milestone in Trac |
82 | | * create new tag in git (see before: [wiki:GpgSetUpForSigningReleases how to set up your gpg key for signing releases]) |
83 | | {{{ |
84 | | git tag -s <version> |
85 | | # keep 'Release' comment |
86 | | git push origin <version> |
87 | | }}} |
88 | | * create tar.(bz2|xz) package files |
89 | | {{{ |
90 | | cd dist; fakeroot make dist-bzip2 && fakeroot make dist-xz |
91 | | # https://bugzilla.redhat.com/show_bug.cgi?id=2338285 |
92 | | cat mc-4.8.33.tar | XZ_OPT=${XZ_OPT--e} xz -c >mc-4.8.33.tar.xz |
93 | | }}} |
94 | | * make checksums for archives |
95 | | {{{ |
96 | | sha256sum mc-*tar.* > mc-{version}.sha256 |
97 | | }}} |
98 | | * upload source packages and checksums to the special upload area |
99 | | * developers should download tarballs, verify checksums, compile and install locally; if everything is ok, then developers vote for the ticket |
100 | | {{{ |
101 | | ./configure --prefix=$(pwd)/install |
102 | | make install |
103 | | make check |
104 | | }}} |
105 | | * upload source packages and checksums to {{{scp mc-X.X.XX.* midnightcommander@ftp-osl.osuosl.org:/home/midnightcommander/data}}} (all maintainers have access via pubkeys) |
106 | | * check permissions! |
107 | | * run {{{ssh midnightcommander@ftp-osl.osuosl.org '/home/midnightcommander/trigger-midnightcommander'}}} |
108 | | * check that files can be dowloaded, if not, adjust permissions to 644 |
109 | | * update Wiki start page with latest release number |
110 | | * write an announcement: list user visible changes (bugs and features) |
111 | | * create new ticket (type=task, component=adm) for the next release |
112 | | * close ticket for release |
113 | | * close current milestone |
| 3 | Moved to https://new.midnight-commander.org/release-process/ |