On maintient une copie d'AlternC ici: https://github.com/Koumbit/AlternC

C'est surtout utilisé pour produire des packages quand on a besoin et que upstream est pas assez vite / à jour pour nous. On veut toutefois ne pas trop diverger, puis contribuer les changements upstream.

Développement

Nous avons pour le moment 3 projets dans github pour faire la gestion des patchs vers alternc.

On garde normalement la branch master en synchronisation avec upstream.

On fait des packages à partir de la branch "pu"

Environnments de dev

Créer une demande sur AlternC/AlternC

https://github.com/AlternC/AlternC/issues

Le numéro de demande va être utiliser plus tard pour identifier les branches

Gestion des branches

Branches spéciales:

Une fois que "pu" est re-merger vers stable-3.1 (ou le master en cours), on peut supprimer les branches des demandes spécifiques (git push -d origin XXX-short-description

Procèdure de créer un patch

  1. Clôner le dépôt à partir de la branch master (depuis le 22 juin)
  2. Créer une nouvelle branche de travail: git checkout -b XXX-short-description, ou X est le numéro de demande

  3. Faire le travail
  4. Tester en local
  5. Pousser vers notre dépôt: git push origin XXX-short-description

  6. Ouvrir un pull request sur AlternC/AlternC pour la demande

Merger les patches proposés ensemble

  1. Assurer d'être à jour: git fetch

  2. Se balancer sur la branche "pu": git checkout pu

  3. Mettre à jour cette branche: git merge origin/pu

  4. Merger la patch proposé: git merge origin/XXX-short-description

  5. Pousser vers GitHub: git push origin pu

Tester le package de PU

Tester

Il y a une boîte vagrant pour aider a faire les tests: https://github.com/lelutin/alternc-vagrant

sur un vps avec alternc 3.3.11

On veut installer le package qui est disponible dans les repos "unstable" de Koumbit. Par défaut, sur les vps avec puppet, on a configuré les repos de Koumbit pour aller chercher "stable".

# echo "deb http://debian.koumbit.net/debian unstable main" > /etc/apt/sources.list.d/koumbit_unstable.list

Ensuite, on peut faire la commande suivante pour voir la version du package alternc de disponible.

# apt-cache policy alternc
alternc:
  Installé : 3.3.11
  Candidat : 3.3.11
 Table de version :
 *** 3.3.11 390
        390 http://debian.alternc.org jessie/main amd64 Packages
        100 /var/lib/dpkg/status
     3.3.10+0~20180517224408.4~1.gbpcfa43a 1
          1 http://debian.koumbit.net/debian unstable/main amd64 Packages
     3.2.11 390
        390 http://debian.alternc.org wheezy/main amd64 Packages

On veut aller installer une version bien spécifique.

# apt-get install  alternc=3.3.10+0~20180517224408.4~1.gbpcfa43a
...
Les paquets suivants seront mis à une VERSION INFÉRIEURE :
  alternc
0 mis à jour, 0 nouvellement installés, 1 remis à une version inférieure, 0 à enlever et 0 non mis à jour.

On doit rouler alternc.install -f  pour compléter la mise à jour.

On veut aussi mettre le package sur "hold" pour être sur de voir l'application d'une mise à jour automatique.

# apt-mark hold alternc

Création d'un release

On ne veut pas forcément merger nos releases upstream, donc on garde une branche à part pour les releases présentement

  1. Get all branches:

    git fetch origin
  2. Checkout la branche de releases:

    git checkout -b koumbit-releases origin/koumbit-releases
  3. Merge les changements de la branche 'pu':

    git merge pu
  4. Ajouter une entrée à debian/changelog, en suivant la formulaire établi. Eg.

    @TODO
  5. Une fois que les packages sont buildés, copy vers testing et/ou stable:

AlternCDeveloppement (last edited 2020-05-07 19:11:27 by sebas)