source: calamares/trunk/fuentes/ci/RELEASE.md @ 7538

Last change on this file since 7538 was 7538, checked in by kbut, 13 months ago

sync with github

File size: 2.8 KB
Line 
1The Calamares release process
2=============================
3
4#### (0) A week in advance
5
6* (Only releases from master)
7  Run [Coverity scan][coverity], fix what's relevant. The Coverity scan runs
8  automatically once a week on master.
9* Build with clang -Weverything, fix what's relevant.
10  ```
11    rm -rf build ; mkdir build ; cd build
12    CC=clang CXX=clang++ cmake .. && make
13  ```
14* Make sure all tests pass.
15  ```
16    make
17    make test
18  ```
19  Note that *all* means all-that-make-sense. The partition-manager tests need
20  an additional environment variable to be set for some tests, which will
21  destroy an attached disk. This is not always desirable. There are some
22  sample config-files that are empty and which fail the config-tests.
23* (Only releases from master)
24  Notify [translators][transifex]. In the dashboard there is an *Announcements*
25  link that you can use to send a translation announcement.
26
27[coverity]: https://scan.coverity.com/projects/calamares-calamares?tab=overview
28[transifex]: https://www.transifex.com/calamares/calamares/dashboard/
29
30#### (1) Preparation
31
32* Bump version in `CMakeLists.txt`, *CALAMARES_VERSION* variables, and set
33  RC to a non-zero value (e.g. doing -rc1, -rc2, ...). Push that.
34* Check `README.md` and everything `ci/HACKING.md`, make sure it's all still
35  relevant. Run `ci/calamaresstyle` to check the C++ code style.
36  Run pycodestyle on recently-modified Python modules, fix what makes sense.
37* Check defaults in `settings.conf` and other configuration files.
38* (Only releases from master)
39  Pull latest translations from Transifex. We only push / pull translations
40  from master, so longer-lived branches (e.g. 3.1.x) don't get translation
41  updates. This is to keep the translation workflow simple.
42  ```
43    sh ci/txpull.sh
44  ```
45* (Only releases from master)
46  Update the list of enabled translation languages in `CMakeLists.txt`.
47  Check the [translation site][transifex] for the list of languages with
48  fairly complete translations.
49
50#### (2) Tarball
51
52* Create tarball: `git-archive-all -v calamares-1.1-rc1.tar.gz` or without
53  the helper script,
54  ```
55    V=calamares-3.1.5
56    git archive -o $V.tar.gz --prefix $V/ master
57  ```
58  Double check that the tarball matches the version number.
59* Test tarball (e.g. unpack somewhere else and run the tests from step 0).
60
61#### (3) Tag
62
63* Set RC to zero in `CMakeLists.txt` if this is the actual release.
64* `git tag -s v1.1.0` Make sure the signing key is known in GitHub, so that the
65  tag is shown as a verified tag. Do not sign -rc tags.
66* Generate MD5 and SHA256 checksums.
67* Upload tarball.
68* Announce on mailing list, notify packagers.
69* Write release article.
70
71#### (4) Release day
72
73* Publish tarball.
74* Update download page.
75* Publish release article on `calamares.io`.
76* Publicize on social networks.
77* Close associated milestone on GitHub if this is the actual release.
78* Publish blog post.
Note: See TracBrowser for help on using the repository browser.