jami-docs/developer/processes/release-process.md

188 lines
4.0 KiB
Markdown
Raw Normal View History

Release process
===============
Each Jami sub-project has its own repository, build process, integration
cycle and so on. More over the **Jami architecture is split into two
2018-05-18 04:39:55 +08:00
independent modules**: LibRing *(daemon)* and clients.
Having a unique revision is not a solution in this situation. The
retained idea is having a global "state" and **various updates per
module**.
For consistency, **each Jami module has to follow the same process** as
2018-05-18 04:39:55 +08:00
described in following points. But not all modules have to be modified
in same time.
------------------------------------------------------------------------
**PROCESS FLOW:**
2018-05-18 04:48:14 +08:00
1 | 2 | 3 | 4 | 5 | 6
:-----:|:-----:|:-----:|:-----:|:-----:|:-----:
Redmine Ticket |Repository Preparation |Testing |Push tags |Packaging | Advertisement
2018-05-18 04:39:55 +08:00
------------------------------------------------------------------------
Redmine Ticket
--------------
Create a new Task on redmine attached to the release story, for the
right sub-module. Set the title to "Release Major.Minor.Micro", with the
appropriate version number.
Repository Preparation
----------------------
**This section was outdated and removed**
Testing
-------
* Remove any existing Jami installations from your machine.
2018-05-18 04:48:14 +08:00
* Start with clean git tree by running `git clean -d -f -x` from the top
2018-05-18 04:39:55 +08:00
level directory of the project.
2018-05-18 04:48:14 +08:00
* Build and install the daemon and client, see How\\\_to\\\_build
* Run the test suite in daemon and client, on different distributions and
2018-05-18 04:39:55 +08:00
machines.
2018-05-18 04:48:14 +08:00
* Run manual tests
* Try registering and using different accounts.
* Try making calls between Jami and other free softphones (Ekiga,
2018-05-18 04:39:55 +08:00
Linphone), as well as hardware VoIP phones.
2018-05-18 04:48:14 +08:00
* To catch uninitialized values being used, memory leaks, invalid frees,
etc. run `valgrind --track-origins=yes --db-attach=yes ./bin/dring`
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
Push tags
--------
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
`git push --tags`
2018-05-18 04:39:55 +08:00
Packaging
---------
2018-05-18 04:48:14 +08:00
```bash
git clone ssh://tcohen@gerrit-ring.savoirfairelinux.com:29420/ring
cd ring
git checkout packaging-releases
```
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
### RPM
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
```bash
vim ring-daemon.spec
```
```bash
%define version 2.2.0
%define release 1
...
...
...
%changelog
* Tue Apr 14 2015 Thibault Cohen <thibault.cohen@savoirfairelinux.com> - 2.2.0-1
- New upstream version
```
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
### DEB
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
```bash
vim debian/changelog
```
```bash
ring-daemon (2.2.0-1) unstable; urgency=medium
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
[ Thibault Cohen]
* New upstream version
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
-- Thibault Cohen <thibault.cohen@savoirfairelinux.com> Tue, 14 Apr 2015 12:40:24 -0400
```
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
### Release
2018-05-18 04:39:55 +08:00
You just have to launch release script. This script launch build,
download and update files and repositories...
2018-05-18 04:48:14 +08:00
```
sflvault connect 525
...
...
cd /root/repos/ring/
./ring-release-daemon.sh
```
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
## Gnome
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
```bash
git clone ssh://tcohen@gerrit-sflphone.savoirfairelinux.com:29420/ring-client-gnome
cd ring-client-gnome
git checkout packaging-releases
```
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
### RPM
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
vim ring-daemon.spec
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
```bash
%define version 0.2.1
%define release 1
%define daemon_tag 2.1.0
%define lrc_tag 0.2.1
%define gnome_tag %{version}
...
...
...
%changelog
* Tue Apr 14 2015 Thibault Cohen <thibault.cohen@savoirfairelinux.com> - 0.2.1-1
- New upstream version
```
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
### DEB
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
```bash
debian/changelog
```
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
```bash
ring-gnome (0.2.1-1) unstable; urgency=medium
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
[ Thibault Cohen]
* New Upstream version
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
-- Thibault Cohen <thibault.cohen@savoirfairelinux.com> Tue, 14 Apr 2015 13:16:38 -0400
```
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
```bash
debian/rules
```
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
```bash
DAEMON_TAG = 2.1.0
LRC_TAG = 0.2.1
GNOME_TAG = $(VER)
```
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
### Release
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
You just have to launch release script. This script launch build, download and update files and repositories...
2018-05-18 04:39:55 +08:00
2018-05-18 04:48:14 +08:00
```bash
sflvault connect 525
...
...
cd /root/repos/ring/
./ring-release-gnome.sh
```
2018-05-18 04:39:55 +08:00
------------------------------------------------------------------------
Advertisement
-------------
When the packaging is finished, test that they are installable. Then
announce the release
2018-05-18 04:48:14 +08:00
* on the official website <https://ring.cx>
* on Twitter <https://twitter.com/JoinTheRing>
* by email to ring@lists.savoirfairelinux.net with the subject line: "Ring
Major.Minor.Patch released"