jami-docs

Forked version of Jami documentation, see wrycode.com/jami-docs-demo
git clone git://git.wrycode.com/wrycode/jami-docs.git
Log | Files | Refs

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"