release-process.md (4040B)
1 # Release Process 2 3 Each Ring sub-project has its own repository, build process, integration 4 cycle and so on. More over the **Ring architecture is split into two 5 independent modules**: LibRing *(daemon)* and clients. 6 7 Having a unique revision is not a solution in this situation. The 8 retained idea is having a global "state" and **various updates per 9 module**. 10 11 For consistency, **each Ring module has to follow the same process** as 12 described in following points. But not all modules have to be modified 13 in same time. 14 15 ------------------------------------------------------------------------ 16 17 **PROCESS FLOW:** 18 19 1 | 2 | 3 | 4 | 5 | 6 20 :-----:|:-----:|:-----:|:-----:|:-----:|:-----: 21 Redmine Ticket |Repository Preparation |Testing |Push tags |Packaging | Advertisement 22 23 ------------------------------------------------------------------------ 24 25 Redmine Ticket 26 -------------- 27 28 Create a new Task on redmine attached to the release story, for the 29 right sub-module. Set the title to "Release Major.Minor.Micro", with the 30 appropriate version number. 31 32 Repository Preparation 33 ---------------------- 34 35 **This section was outdated and removed** 36 37 Testing 38 ------- 39 40 * Remove any existing Ring installations from your machine. 41 * Start with clean git tree by running `git clean -d -f -x` from the top 42 level directory of the project. 43 * Build and install the daemon and client, see How\\\_to\\\_build 44 * Run the test suite in daemon and client, on different distributions and 45 machines. 46 * Run manual tests 47 * Try registering and using different accounts. 48 * Try making calls between Ring and other free softphones (Ekiga, 49 Linphone), as well as hardware VoIP phones. 50 * To catch uninitialized values being used, memory leaks, invalid frees, 51 etc. run `valgrind --track-origins=yes --db-attach=yes ./bin/dring` 52 53 Push tags 54 -------- 55 56 `git push --tags` 57 58 Packaging 59 --------- 60 61 ```bash 62 git clone ssh://tcohen@gerrit-ring.savoirfairelinux.com:29420/ring 63 cd ring 64 git checkout packaging-releases 65 ``` 66 67 ### RPM 68 69 ```bash 70 vim ring-daemon.spec 71 ``` 72 ```bash 73 %define version 2.2.0 74 %define release 1 75 ... 76 ... 77 ... 78 %changelog 79 * Tue Apr 14 2015 Thibault Cohen <thibault.cohen@savoirfairelinux.com> - 2.2.0-1 80 - New upstream version 81 ``` 82 83 ### DEB 84 85 ```bash 86 vim debian/changelog 87 ``` 88 ```bash 89 ring-daemon (2.2.0-1) unstable; urgency=medium 90 91 [ Thibault Cohen] 92 * New upstream version 93 94 -- Thibault Cohen <thibault.cohen@savoirfairelinux.com> Tue, 14 Apr 2015 12:40:24 -0400 95 ``` 96 97 ### Release 98 99 You just have to launch release script. This script launch build, 100 download and update files and repositories... 101 102 ``` 103 sflvault connect 525 104 ... 105 ... 106 cd /root/repos/ring/ 107 ./ring-release-daemon.sh 108 ``` 109 110 ## Gnome 111 112 ```bash 113 git clone ssh://tcohen@gerrit-sflphone.savoirfairelinux.com:29420/ring-client-gnome 114 cd ring-client-gnome 115 git checkout packaging-releases 116 ``` 117 118 ### RPM 119 120 vim ring-daemon.spec 121 122 ```bash 123 %define version 0.2.1 124 %define release 1 125 %define daemon_tag 2.1.0 126 %define lrc_tag 0.2.1 127 %define gnome_tag %{version} 128 ... 129 ... 130 ... 131 %changelog 132 * Tue Apr 14 2015 Thibault Cohen <thibault.cohen@savoirfairelinux.com> - 0.2.1-1 133 - New upstream version 134 ``` 135 136 ### DEB 137 138 ```bash 139 debian/changelog 140 ``` 141 142 ```bash 143 ring-gnome (0.2.1-1) unstable; urgency=medium 144 145 [ Thibault Cohen] 146 * New Upstream version 147 148 -- Thibault Cohen <thibault.cohen@savoirfairelinux.com> Tue, 14 Apr 2015 13:16:38 -0400 149 ``` 150 151 ```bash 152 debian/rules 153 ``` 154 155 ```bash 156 DAEMON_TAG = 2.1.0 157 LRC_TAG = 0.2.1 158 GNOME_TAG = $(VER) 159 ``` 160 161 ### Release 162 163 164 You just have to launch release script. This script launch build, download and update files and repositories... 165 166 ```bash 167 sflvault connect 525 168 ... 169 ... 170 cd /root/repos/ring/ 171 ./ring-release-gnome.sh 172 ``` 173 174 175 ------------------------------------------------------------------------ 176 177 Advertisement 178 ------------- 179 180 When the packaging is finished, test that they are installable. Then 181 announce the release 182 183 * on the official website <https://ring.cx> 184 * on Twitter <https://twitter.com/JoinTheRing> 185 * by email to ring@lists.savoirfairelinux.net with the subject line: "Ring 186 Major.Minor.Patch released"