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 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 described in following points. But not all modules have to be modified in same time.
PROCESS FLOW:
1 |
2 |
3 |
4 |
5 |
6 |
---|---|---|---|---|---|
Redmine Ticket |
Repository Preparation |
Testing |
Push tags |
Packaging |
Advertisement |
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.
Start with clean git tree by running
git clean -d -f -x
from the top level directory of the project.Build and install the daemon and client, see How\_to\_build
Run the test suite in daemon and client, on different distributions and machines.
Run manual tests
Try registering and using different accounts.
Try making calls between Jami and other free softphones (Ekiga, Linphone), as well as hardware VoIP phones.
To catch uninitialized values being used, memory leaks, invalid frees, etc. run
valgrind --track-origins=yes --db-attach=yes ./bin/dring
Packaging
cf This page