Faire une release de mavenpom

Version 3 (Tony Chemit, 09/26/2009 01:42 am)

1 1 Tony Chemit
h1. Faire une release de mavenpom
2 1 Tony Chemit
3 1 Tony Chemit
h2. Pourquoi mavenpom ne peut pas être releasé comme les autres projets
4 1 Tony Chemit
5 1 Tony Chemit
*mavenpom* ne peut pas être releasé comme les autres projets de *nuiton* et *chorem* pour des raisons d'héritage sur l'adresse du site à déployer.
6 1 Tony Chemit
7 2 Tony Chemit
De plus, le site de *mavenpom* est multi-langue et on ne veut pas forcement que tous nos projets le soit.
8 1 Tony Chemit
9 3 Tony Chemit
On a donc un profile réservé aux releases de mavenpom, il se nomme *internal*
10 1 Tony Chemit
11 1 Tony Chemit
h2. Procédure de release
12 1 Tony Chemit
13 1 Tony Chemit
<pre>
14 1 Tony Chemit
mvn release:prepare
15 1 Tony Chemit
</pre>
16 1 Tony Chemit
17 1 Tony Chemit
puis
18 1 Tony Chemit
19 1 Tony Chemit
<pre>
20 1 Tony Chemit
mvn release:perform -DreleaseProfiles=internal
21 1 Tony Chemit
</pre>
22 2 Tony Chemit
23 2 Tony Chemit
h2. Finaliser la release avec maven-jredmine-plugin
24 2 Tony Chemit
25 2 Tony Chemit
Enfin, on peut désormais interagir avec redmine pour finaliser la release, pour ce faire :
26 2 Tony Chemit
27 2 Tony Chemit
<pre>
28 2 Tony Chemit
cd  target/checkout
29 2 Tony Chemit
mvn validate -PperformRedmineRelease
30 2 Tony Chemit
</pre>
31 2 Tony Chemit
32 2 Tony Chemit
Le profile va exécuter les tâches suivantes : 
33 2 Tony Chemit
34 2 Tony Chemit
* ferme la version sur redmine (en la créant si nécessaire)
35 2 Tony Chemit
* copie les fichiers de la release sur la version de redmine
36 2 Tony Chemit
* créée l'annonce de release sur redmine
37 2 Tony Chemit
* envoie le courriel de release sur la liste dev, lutins et mavenpom-users
38 2 Tony Chemit
39 2 Tony Chemit
*Note:* Cette procédure peut s'appliquer sur tous les projets si tout est bien configuré :)
40 2 Tony Chemit
41 2 Tony Chemit
On peut vérifier que la configuration est ok en faisant : 
42 2 Tony Chemit
43 2 Tony Chemit
<pre>
44 2 Tony Chemit
cd  target/checkout
45 3 Tony Chemit
mvn validate -PperformRedmineRelease -DdryRun
46 2 Tony Chemit
</pre>
47 2 Tony Chemit
48 2 Tony Chemit
h2. Préparation de la version suivante 
49 2 Tony Chemit
50 2 Tony Chemit
Il est possible de préparer la version suivante sur redmine via le goal *next-version* de *maven-jredmine-plugin*.
51 2 Tony Chemit
52 2 Tony Chemit
A executer sur le trunk
53 2 Tony Chemit
<pre>
54 2 Tony Chemit
mvn redmine:next-version -Dredmine.previousVersion=XXX
55 2 Tony Chemit
</pre>
56 2 Tony Chemit
57 2 Tony Chemit
La commande va créer la nouvelle version sur redmine et déplacer toutes les demandes non fermées ou résolues vers la nouvelle version.