| | 1 | = Releasing a new version of Quattor = |
| | 2 | |
| | 3 | [[TOC]] |
| | 4 | |
| | 5 | == Introduction == |
| | 6 | |
| | 7 | As discussed in the 15th Quattor workshop, I detail here the tools and means for a Quattor release. This document should be kept up to date as the release procedure gets more automated. |
| | 8 | |
| | 9 | For the client code (configuration modules, core libraries...), we do one release each 4-6 weeks. The "certification" process is manual, here is how it goes: |
| | 10 | |
| | 11 | == Release branch == |
| | 12 | |
| | 13 | When the time comes, the release manager (RM) creates a new branch in the main GitHub repository, on each repository that will be released. He ensures that the builds in the [https://jenkins1.ugent.be/view/Quattor Jenkins repository] pass. If they don't, he iterates with the authors or reverts the commits that break the tests. |
| | 14 | |
| | 15 | == Testing the release == |
| | 16 | |
| | 17 | When all tests seem to pass, the RM creates all the packages and uploads them to some Yum repository. He will then update all templates in a sandbox, and deploy the site. |
| | 18 | |
| | 19 | '''NOTE:''' We don't have the manpower to produce test profiles for each component. Only the most important ones are being stressed ATM. |
| | 20 | |
| | 21 | '''NOTE:''' We'd appreciate a number of virtual machines (or a test site in the cloud) to make even more thorough tests. |
| | 22 | |
| | 23 | == Declaring victory == |
| | 24 | |
| | 25 | When all the installations and component executions succeed, the RM executes the following command line on all the repositories: |
| | 26 | |
| | 27 | {{{ |
| | 28 | #!sh |
| | 29 | $ mvn -DautoVersionSubmodules=true -B -DreleaseVersion=$VERSION release:prepare |
| | 30 | $ mvn -DautoVersionSubmodules=true -B release:perform |
| | 31 | }}} |
| | 32 | |
| | 33 | == Uploading to the Git repositories == |
| | 34 | |
| | 35 | The [https://github.com/quattor/release.git release repository] contains a POM file with all the artifacts that should be uploaded to the Yum repositories, with their releases. Just adjust it. |
| | 36 | |
| | 37 | == Tools == |
| | 38 | |
| | 39 | The `releasing.org` file is an useful checklist to keep track of which modules we have already validated. |
| | 40 | |
| | 41 | == TODO == |
| | 42 | |
| | 43 | We need to push the templates to the QWG repositories during the release. Put the script in the release repository. |