Projet

Général

Profil

EoleDebianVersioning24 » Historique » Version 2

Daniel Dehennin, 25/07/2012 11:01
2 méthodes

1 1 Daniel Dehennin
h1. Numérotation pour EOLE 2.4
2 1 Daniel Dehennin
3 1 Daniel Dehennin
h2. Introduction
4 1 Daniel Dehennin
5 1 Daniel Dehennin
La mise en place du nouveau système de build permet de choisir la façon dont les paquets sont numérotés.
6 1 Daniel Dehennin
7 2 Daniel Dehennin
h2. Numérotation par version de distribution EOLE
8 1 Daniel Dehennin
9 2 Daniel Dehennin
Les paquets sont numérotés en fonction de la distribution EOLE, par exemple, pour EOLE 2.4 : @2.4-<version>@
10 1 Daniel Dehennin
11 2 Daniel Dehennin
<pre>
12 2 Daniel Dehennin
user:~/src/project (master)~$ git describe --abbrev=0 --match=release/*
13 2 Daniel Dehennin
release/2.4
14 2 Daniel Dehennin
# La branche 2.4 passe en mode support afin de commencer la 2.5
15 2 Daniel Dehennin
user:~/src/project (master)~$ git branch 2.4 master
16 1 Daniel Dehennin
17 2 Daniel Dehennin
# On commence la version 2.5, cela nécessite au minimum un commit qui n’est pas sur la branche 2.4
18 2 Daniel Dehennin
user:~/src/project (master)~$ <UN NOUVEAU COMMIT SUR MASTER>
19 2 Daniel Dehennin
user:~/src/project (master)~$ git tag -s -m "Naissance de EOLE 2.5" release/2.5
20 1 Daniel Dehennin
21 2 Daniel Dehennin
# On vérifie
22 2 Daniel Dehennin
user:~/src/project (master)~$ git describe --abbrev=0 --match=release/*
23 2 Daniel Dehennin
release/2.5
24 2 Daniel Dehennin
user:~/src/project (master)~$ git checkout 2.4
25 2 Daniel Dehennin
user:~/src/project (2.4)~$ git describe --abbrev=0 --match=release/*
26 2 Daniel Dehennin
release/2.4
27 1 Daniel Dehennin
</pre>
28 1 Daniel Dehennin
29 2 Daniel Dehennin
Cette numérotation est celle utilisé pour la version 2.3 (qui était imposé à tous les paquets) :
30 1 Daniel Dehennin
* On ne versionne pas la branche master, sauf une fois lors de la mise en place d’une nouvelle distribution ;
31 1 Daniel Dehennin
* Les paquets Debian doivent être au format *@3.0 (natif)@* ;
32 1 Daniel Dehennin
* Lorsque deux distributions sont maintenues en parallèle, on n’utilise que du cherry-picking entre les branches : l’utilisation de la commande @merge@, dans le mauvais sens, apporterait un nouveau tag et donc une nouvelle numérotation :
33 1 Daniel Dehennin
<pre>
34 1 Daniel Dehennin
user:~/src/project (master)~$ git describe --abbrev=0 --match=release/*
35 1 Daniel Dehennin
release/2.4
36 1 Daniel Dehennin
user:~/src/project (master)~$ git branch 2.4 master
37 2 Daniel Dehennin
user:~/src/project (master)~$ <UN NOUVEAU COMMIT SUR MASTER>
38 1 Daniel Dehennin
user:~/src/project (master)~$ git tag -s -m "Naissance de EOLE 2.5" release/2.5
39 1 Daniel Dehennin
user:~/src/project (master)~$ git describe --abbrev=0 --match=release/*
40 1 Daniel Dehennin
release/2.5
41 1 Daniel Dehennin
user:~/src/project (master)~$ git checkout 2.4
42 1 Daniel Dehennin
user:~/src/project (2.4)~$ git describe --abbrev=0 --match=release/*
43 1 Daniel Dehennin
release/2.4
44 2 Daniel Dehennin
user:~/src/project (2.4)~$ git merge master
45 2 Daniel Dehennin
user:~/src/project (2.4)~$ git describe --abbrev=0 --match=release/*
46 2 Daniel Dehennin
release/2.5
47 1 Daniel Dehennin
</pre>
48 1 Daniel Dehennin
49 1 Daniel Dehennin
Cette méthode de numérotation pourrait permettre de numéroter les paquets en fonction des "release redmine":http://dev-eole.ac-dijon.fr/projects/modules-eole/roadmap, il suffirait de créer un nouveau tag sur la branche master avec la version EOLE:
50 1 Daniel Dehennin
51 1 Daniel Dehennin
<pre>
52 1 Daniel Dehennin
user:~/src/project (master)~$ git describe --abbrev=0 --match=release/*
53 1 Daniel Dehennin
release/2.5
54 1 Daniel Dehennin
55 1 Daniel Dehennin
# On commence une nouvelle RC
56 1 Daniel Dehennin
user:~/src/project (master)~$ git checkout -b rc/2.5.1
57 1 Daniel Dehennin
58 1 Daniel Dehennin
# On corrige tous les bugs
59 1 Daniel Dehennin
user:~/src/project (rc/2.5.1)~$ $EDITOR source_file
60 1 Daniel Dehennin
user:~/src/project (rc/2.5.1)~$ git add source_file
61 1 Daniel Dehennin
user:~/src/project (rc/2.5.1)~$ git commit
62 1 Daniel Dehennin
[...]
63 1 Daniel Dehennin
64 1 Daniel Dehennin
# On tag la nouvelle version
65 1 Daniel Dehennin
user:~/src/project (rc/2.5.1)~$ git tag -s -m "Naissance de EOLE 2.5.1" release/2.5.1
66 1 Daniel Dehennin
67 1 Daniel Dehennin
# On intègre à la branche master
68 1 Daniel Dehennin
user:~/src/project (rc/2.5.1)~$ git checkout master
69 1 Daniel Dehennin
user:~/src/project (master)~$ git merge release/2.5.1
70 1 Daniel Dehennin
</pre>
71 2 Daniel Dehennin
72 2 Daniel Dehennin
h2. Numérotation indépendante des paquets
73 2 Daniel Dehennin
74 2 Daniel Dehennin
La branche @master@ contenant le code d’une application externe sera taguée avec le numéro de version de l’application.
75 2 Daniel Dehennin
76 2 Daniel Dehennin
Par exemple, pour project:tiramisu version @0.1@:
77 2 Daniel Dehennin
78 2 Daniel Dehennin
<pre>
79 2 Daniel Dehennin
user:~/src/eole/tiramisu/ (master)$ git tag -s -m "First developpement release" release/0.1
80 2 Daniel Dehennin
user:~/src/eole/tiramisu/ (master)$ git push origin release/0.1
81 2 Daniel Dehennin
</pre>
82 2 Daniel Dehennin
83 2 Daniel Dehennin
Cela produira des paquets numérotés:
84 2 Daniel Dehennin
85 2 Daniel Dehennin
* @0.1-1@: premier paquet
86 2 Daniel Dehennin
* @0.1-2@: second paquet qui ne corrige que du packaging ou intègre  des patches pour @upstream@ dans @debian/patches/@