Personal tools
fr.gif, 1 kB    en.gif, 1 kB

Doc-dev/fr

This page was last modified 10:22, 5 November 2008.

From Milimail

Jump to: navigation, search

Contents

Convention de Gestion des Numéros de Version

Ce chapitre décrit les bonnes pratiques pour gérer les versions du client de messagerie universel Milimail et les extensions développées pour ce client.
La version d'un logiciel correspond à un état donné de son évolution. Elle est souvent associée à une numérotation qui permet de l'identifier, voire dans certains cas à un nom symbolique. Les noms symboliques ne sont pas utilisés sur ce projet.


Cycle de vie d'un produit informatique





Cycle de vie d'un logiciel

Phase alpha :

  • disponible pour avoir un aperçu de l'avancement du produit, tester les fonctions déjà implémentées.

Phase beta :

  • le set de fonctionnalités est généralement figé, version de test destinée à trouver un maximum de bugs.

Release candidate :

  • version candidate à être la version finale.

Version ou version GA (pour General Availability) :

  • version finale du produit. Une mise à jour peut également être une nouvelle version du produit.


Mode de numérotation retenue

Le numéro de version se présentera de la manière suivante :

major.minor.revision.build

Note: le numéro associé à la révision, peut-être aussi appelé maintenance.
Voici comment incrémenter les différentes valeurs du numéro de version.

Valeurs

Raison d’incrémentation

Quand

major

  • Ajout d’une fonctionnalité importante.
  • Changement significatif du comportement de l’application.
  • Changement significatif de l’apparence de l’application.

Dès que les développements commencent.

minor

  • Ajout de fonctionnalités non critique vis-à-vis du cœur de l’application.
  • Evolution de fonctionnalités existantes sans affecter l’existant.

Dès que les développements commencent.

revision

  • A chaque livraison de correction d’anomalies (Même si y’a 1 seule correction).

Dépend de la livraison de la version finale :

  • AVANT : 0 plus un tag indiquant dans quel cycle de vie on se trouve (*).
  • APRES : chaque fois que des corrections sont livrées.

build

  • Livraison interne ou externe d’une distribution du produit.

Chaque fois que la distribution est publiée. Que ce soit pour le service intégration, qualité ou le client final.

(*) Cycle de vie : alpha, beta ou rc (release candidate).

Gestion des tags et des branches

 Tag THUNDERBIRD_2_0_0_0_RELEASE
   |
   |
mozilla.org---\-------------------------------\----MILIMAIL_THUNDERBIRD_2_0_0_0_BRANCH------>
               \                               \
                \                               \
                 \----MILIMAIL_V0_BRANCH--->     \
                                                  \
                                                   \
                                                    \
             Tag THUNDERBIRD_2_0_0_17_RELEASE        \
                                |                     \
                                |                      \
                             mozilla.org----------------\-------------trunk/trustedbird-------------->


SVN structure

+ milimail                                  // Root
   |
   + branches                               // Branches
   |  + milimail
   |     + MILIMAIL_THUNDERBIRD_2_0_0_0_BRANCH  // Old Milimail/Trustedbird branch based on Thunderbird 2.0.0.0
   |     + MILIMAIL_THUNDERBIRD_2_0_0_14_BRANCH // Old Milimail/Trustedbird branch based on Thunderbird 2.0.0.14
   |     + MILIMAIL_V0_BRANCH                   // Milimail/Trustedbird V0 branch based on Thunderbird 2.0.0.0
   |
   + Docs                                   // Documentation
   |
   + tags                                   // Tags: old released versions
   |  + card_viewer_extended
   |  + crl_over_ldap
   |  + dsn
   |  + LanguagePackages
   |  + mdn_extended
   |  + milimail                            // Milimail releases
   |  + mozilla
   |     + THUNDERBIRD_2_0_0_0_RELEASE      // Thunderbird 2.0.0.0 from mozilla.org
   |     + THUNDERBIRD_2_0_0_14_RELEASE     // Thunderbird 2.0.0.14 from mozilla.org
   |  + multi-ldap
   |  + priority
   |  + send_format_ldap
   |  + signed_receipt
   |  + triple_wrapping
   |  + xsmtp
   |
   + trunk                                  // Trunk: current development of Trustedbird, add-ons and packager
      + all-milimail-xpi
      + card-viewer-extended
      + check-recipients
      + crl-over-ldap
      + l10n
         + fr                               // French translations of Milimail branch
      + mdn-extended
      + messages-remote-services
      + trustedbird                         // Current Trustedbird branch based on Thunderbird 2.0.0.17
      + multi-ldap
      + notifications-viewer
      + out-of-office
      + packager                            // Ant script to fetch, build and package Trustedbird and add-ons
      + send-format-ldap
      + xsmtp

Build Documentation

Dependencies

Linux (Debian)

  • build-essential
  • ant
  • subversion
  • libgtk2.0-dev
  • libglib1.2-dev
  • libidl-dev
  • libxt-dev
  • zip
  • unzip
  • flex
  • bison
  • fakeroot
  • dpkg-deb
  • a Java JDK for ant (java-gcj-compat-dev, sun-java6-jdk, openjdk-6-jdk,...)

Windows

See http://developer.mozilla.org/en/docs/Windows_Build_Prerequisites

Get build scripts/packager

Read only / through SVN protocol (TCP port 3690)

$ svn co svn://svn.adullact.net/svnroot/milimail/trunk/packager trustedbird

Read-write / through SSH (TCP port 22)

$ svn co svn+ssh://my_username@svn.adullact.net/svnroot/milimail/trunk/packager trustedbird
  (replace my_username by your Adullact SSH username)
 // Copy the file server.properties.template to server.properties
$ cp trustedbird/server.properties.template trustedbird/server.properties
 // Set your SSH username in server.properties
$ sed -i s/SSH_USERNAME/my_username/ trustedbird/server.properties
  (replace my_username by your Adullact SSH username)

Building

$ cd trustedbird
 // Build and package trustedbird and add-ons
$ ant build-all
 // OR: build and package trustedbird
$ ant extract-tb update-tb build-tb package-tb
 // OR: build and package add-ons
$ ant package-addons

SSL certificates generation

In order to test signing and encryption, you need to have certificates.

Certificates can be generated with a Perl script CA.pl supplied with openssl.

  • 1) Create a certificate hierarchy in new directory demoCA/
/usr/lib/ssl/misc/CA.pl -newca

(type enter when prompted to create a new certificate)

=> demoCA/cacert.pem: root certificate (CA)

Import cacert.pem in "Authorities" tab in Thunderbird certificate manager and choose to trust this CA to identify email users.

  • 2) Create a new certificate request for a user
/usr/lib/ssl/misc/CA.pl -newreq

=> newkey.pem: user's private key

=> newreq.pem: certificate request for the user

  • 3) Sign the certificate request with certificate authority key
/usr/lib/ssl/misc/CA.pl -signreq

=> newcert.pem: user's signed certificate

  • 4) Convert certificate to DER format (for LDAP)
openssl x509 -outform DER -in newcert.pem -out newcert.der

=> newcert.der: user's signed certificate in DER format

  • 5) Create PKCS#12
/usr/lib/ssl/misc/CA.pl -pkcs12 "Name of the certificate"

=> newcert.p12: root certificate, user's signed certificate and user's private key

Import newcert.p12 in "Your certificates" tab in Thunderbird certificate manager.

(do again step #2 to #5 to create a new certificate for another user issued by the same authority)

Autre documentation technique

Spécifications fonctionnelles et techniques détaillées

Normes de développement

Recommandations XSMTP


Reference: English – Translations:  Français  • 


Files

Third Party Projects