4 nov. 2021 15:03:15 Thomas Dumont avatar

Gestion des projets avec GitHub

GitHub

Depuis décembre 2014, le code source des plugins génériques (ancienne branche /portal/trunk du SVN) est migré sur la plateforme GitHub : https://github.com/lutece-platform

Chaque plugin ou module dispose de son propre repository dans GitHub. Le nom du repository est construit de la manière suivante :

lutece-[catégorie]-[ plugin | module | library ]-[nom plugin]

Il n'y a donc plus d'arborescence comme dans SVN.

Organisation en local et outillage

Il est suggéré de se créer un répertoire local : ~/java/github/lutece ou c:\java\github\lutece que nous désignerons par la variable LUTECE_GITHUB_HOME.

Des scripts utilitaires sont disponibles à l'adresse suivante : https://github.com/lutece-platform/git-scripts Télécharger-les à l'aide du bouton Download Zip et installer-les dans le répertoire LUTECE_GITHUB_HOME

  • Pour une première installation des repositories : lancer le script init_projects.sh. Ce script créera un répertoire pour chaque repository et fera une copy locale de celui-ci (git clone)
  • Pour une mise à jour de l'ensemble des projets : lancer le script update_projects.sh. Ce script fera une mise à jour du repository local de tous les projets (git pull).

Pour plus d'informations sur l'utilisation de ces scripts veuillez vous référer à la page Synchronisation des dépôts GitHub

Travail en multi-projets

Pour travailler en multi-projets, copier le pom.xml principal dans le répertoire LUTECE_GITHUB_HOME et dans la définition du profil multi-project modifier la liste des projets

<profile>
        <id>multi-project</id>
        <modules>
	    <module>lutece-core</module>
            <module>lutece-search-library-lucene</module>
            <module>lutece-cms-plugin-document</module>
            ...
        </modules>
  </profile>

Migration des composants de SVN vers GIT

  • Pour migrer les composants génériques de l'ancien SVN (/portal/trunk/) : Lancer le script import_svn_project.sh avec comme paramètres :
    • le nom de la catégorie dans SVN
    • le nom du composant
    • le nom de la catégorie dans GiHub

Ex : import_project.sh cms plugin-document cms