Doc-dev
Un article de Milimail.
Sommaire |
Versioning convention
This chapter describes best practices for managing versions of universal messaging client Milimail and extensions developed.
Version identifies the state of a program in its development. It is often associated with a numbering system which allows identification, and in some cases a symbolic name. The symbolic names are not used in this project.
Life cycle of a software
|
| |
|
phase alpha:
| |
|
phase beta:
| |
|
release candidate:
| |
|
GA version (for General Availability):
|
Versioning usage
The version number will be as follows:
Note: the number associated with the revision, can be called maintenance.
Here is how to increment the values of the version number.
|
Values |
Why to increment |
When |
|
major |
|
As soon as developments start. |
|
minor |
|
As soon as developments start. |
|
revision |
|
Depends on the delivery of the final version:
|
|
build |
|
Each time the distribution is published. For the service integration, service quality or final customer. |
Extensions
The following chapters present informations for each extension about functionalities and architecture.
- XSMTP
- Display certificate for contact card
- Autocompletion of recipient with multi-directory
- Handling emails formats supported by contacts
- MDN
- DSN
- Signed receipt
- Triple wrapping
- Security labels
- Handling priority at the enveloppe level
- CRL over LDAP
Manage tags and 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_14_RELEASE \
| \
| \
mozilla.org----------------\-------------trunk/milimail-------------->
SVN structure
+ milimail // Root
|
+ branches // Branches
| + milimail
| + MILIMAIL_THUNDERBIRD_2_0_0_0_BRANCH // Old milimail branch based on Thunderbird 2.0.0.0
| + MILIMAIL_V0_BRANCH // Milimail V0 branch based on Thunderbird 2.0.0.0
|
+ Docs // Documentation
|
+ tags // Tags: 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 Milimail, extensions 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
+ milimail // Current Milimail branch based on Thunderbird 2.0.0.14
+ multi-ldap
+ notifications_viewer
+ out_of_office
+ packager // Ant script to fetch, build and package Milimail and extensions
+ send_format_ldap
+ xsmtp
Build Documentation
Dependencies
Linux (Debian)
- build-essential
- ant
- subversion
- libgtk2.0-dev
- libglib1.2-dev
- libidl-dev
- libxt-dev
- gcc-3.4
- g++-3.4
- zip
- unzip
- 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
Building
// Get packager from SVN $ svn co https://admisource.gouv.fr/svn/milimail/trunk/packager milimail (permanently accept SSL certificate if asked) $ cd milimail // Build and package milimail and extensions $ ant build-all // OR: build and package milimail $ ant extract-milimail update-milimail build-milimail package-milimail // OR: build and package extensions $ ant package-extensions
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)
Other technical documentation
Functional and technical specifications (French version)
Standards of development (French version)
XSMTP Recommandations (French version)



