Projet

Général

Profil

EoleDebianVersioning24 » Historique » Version 3

« Précédent - Version 3/4 (diff) - Suivant » - Version actuelle
Daniel Dehennin, 25/07/2012 12:08
Ajout de plus de description pour une numérotation indépendante


Numérotation pour EOLE 2.4

Introduction

La mise en place du nouveau système de build permet de choisir la façon dont les paquets sont numérotés.

Numérotation par version de distribution EOLE

Les paquets sont numérotés en fonction de la distribution EOLE, par exemple, pour EOLE 2.4 : 2.4-<version>

user:~/src/project (master)~$ git describe --abbrev=0 --match=release/*
release/2.4
# La branche 2.4 passe en mode support afin de commencer la 2.5
user:~/src/project (master)~$ git branch 2.4 master

# On commence la version 2.5, cela nécessite au minimum un commit qui n’est pas sur la branche 2.4
user:~/src/project (master)~$ <UN NOUVEAU COMMIT SUR MASTER>
user:~/src/project (master)~$ git tag -s -m "Naissance de EOLE 2.5" release/2.5

# On vérifie
user:~/src/project (master)~$ git describe --abbrev=0 --match=release/*
release/2.5
user:~/src/project (master)~$ git checkout 2.4
user:~/src/project (2.4)~$ git describe --abbrev=0 --match=release/*
release/2.4
Cette numérotation est celle utilisé pour la version 2.3 (qui était imposé à tous les paquets) :
  • On ne versionne pas la branche master, sauf une fois lors de la mise en place d’une nouvelle distribution ;
  • Les paquets Debian doivent être au format *3.0 (natif)* ;
  • 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 :
    user:~/src/project (master)~$ git describe --abbrev=0 --match=release/*
    release/2.4
    user:~/src/project (master)~$ git branch 2.4 master
    user:~/src/project (master)~$ <UN NOUVEAU COMMIT SUR MASTER>
    user:~/src/project (master)~$ git tag -s -m "Naissance de EOLE 2.5" release/2.5
    user:~/src/project (master)~$ git describe --abbrev=0 --match=release/*
    release/2.5
    user:~/src/project (master)~$ git checkout 2.4
    user:~/src/project (2.4)~$ git describe --abbrev=0 --match=release/*
    release/2.4
    user:~/src/project (2.4)~$ git merge master
    user:~/src/project (2.4)~$ git describe --abbrev=0 --match=release/*
    release/2.5
    

Cette méthode de numérotation pourrait permettre de numéroter les paquets en fonction des release redmine, il suffirait de créer un nouveau tag sur la branche master avec la version EOLE:

user:~/src/project (master)~$ git describe --abbrev=0 --match=release/*
release/2.5

# On commence une nouvelle RC
user:~/src/project (master)~$ git checkout -b rc/2.5.1

# On corrige tous les bugs
user:~/src/project (rc/2.5.1)~$ $EDITOR source_file
user:~/src/project (rc/2.5.1)~$ git add source_file
user:~/src/project (rc/2.5.1)~$ git commit
[...]

# On tag la nouvelle version
user:~/src/project (rc/2.5.1)~$ git tag -s -m "Naissance de EOLE 2.5.1" release/2.5.1

# On intègre à la branche master
user:~/src/project (rc/2.5.1)~$ git checkout master
user:~/src/project (master)~$ git merge release/2.5.1

Numérotation indépendante des paquets

La branche master contenant le code d’une application externe sera taguée avec le numéro de version de l’application.

Par exemple, pour Tiramisu version 0.1:

# First upstream
user:~/src/eole/tiramisu/ (master)$ git tag -s -m "First development release" release/0.1
user:~/src/eole/tiramisu/ (master)$ git push origin release/0.1

# First Package
user:~/src/eole/tiramisu/ (master)$ git checkout -b dist/ubuntu/precise/master
user:~/src/eole/tiramisu/ (dist/ubuntu/precise/master)$ <ADD PACKAGING UNDER debian/>
user:~/src/eole/tiramisu/ (dist/ubuntu/precise/master)$ git commit -m "Fist package" 

# New upstream
user:~/src/eole/tiramisu/ (dist/ubuntu/precise/master)$ git checkout master
user:~/src/eole/tiramisu/ (master)$ $EDITOR <some file>
user:~/src/eole/tiramisu/ (master)$ git add <some file>
user:~/src/eole/tiramisu/ (master)$ git commit -m "Update some file" 
user:~/src/eole/tiramisu/ (master)$ git tag -s -m "New development version" release/0.2
user:~/src/eole/tiramisu/ (master)$ git push origin release/0.2

# New package
user:~/src/eole/tiramisu/ (master)$ git checkout -b dist/ubuntu/precise/master
user:~/src/eole/tiramisu/ (dist/ubuntu/precise/master)$ git merge -m "New upstream release" release/0.2

Cela produira des paquets numérotés:

  • 0.1-1: premier paquet de la première version
  • 0.1-2: second paquet de la première version qui ne corrige que du packaging ou intègre des patches pour upstream dans debian/patches/
  • 0.2-1: premier paquet de la seconde version
  • 0.2-2: second paquet de la seconde version qui ne corrige que du packaging ou intègre des patches pour upstream dans debian/patches/