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

Push tags

git push --tags

Packaging

cf This page