29 avr. 2022 14:39:51 seb leridon avatar

Releaser un projet Lutèce

Releaser un composant Lutèce

Prérequis

Avant la génération d'une nouvelle version stable du composant, les éléments suivants doivent être vérifiés :

  • Le nom du plugin (ou du module ou de la librairie) doit respecter les conventions de nommage de l'artifact (exemple : plugin-<nom du plugin>, module-<nom du plugin>-<nom du module>, ...)
  • La version actuelle doit être une version SNAPSHOT (version initiale : 1.0.0-SNAPSHOT)
  • Si le projet est sous Git, les branches develop et master ne doivent pas être en conflit si on applique un merge (voir Normes de gestion des branches GIT)
  • Le POM du composant doit être complet. Il faudra notamment veiller à ce que les éléments suivants soient bien présents :
    • La déclaration du POM parent lutece-global-pom dans sa dernière version
    • Les méta données du composant (version, name, groupId, artifactId...)
    • Les déclarations des repository Maven du projet Lutèce :
      • repository luteceRepository : pour accéder au global_pom
    • La déclaration sous forme de dépendances des composants nécessaires au projet (ne pas fixer les versions des autres plugins pour conserver une compatibilité maximum, ex : "[5.0.2,)" )
    • Le lien vers le répertoire des sources du projet (balises SCM)
    • Le lien vers le projet Jira associé (balises JIRA)
  • La version du composant doit avoir été mise à jour dans le fichier de configuration : webapp/WEB-INF/plugins/myplugin.xml (voir Les plugins de Lutece partie Le fichier de configuration du plugin)
  • Les sources du composant ne doivent contenir que des fichiers propres au composant (voir Les plugins de Lutece). On veillera par exemple à ne pas avoir de fichiers de configuration de git, de configuration des rapports de code ou de dumps d'une base de données existante.
  • Le code doit être correctement formater (voir Utilisation de Maven partie Formater le code)
  • La licence Lutèce doit être à jour (voir Utilisation de Maven partie Mettre la licence Lutèce dans le code source)
  • Le composant doit être documenté :
    • Vérifier qu'une documentation xdoc a été créé dans src/site/ (voir Normes de Documentation)
    • Renseigner dans les xdoc EN et FR les sections : nom du plugin / mots clés / description / configuration / usage
    • Vérifier qu'un fichier README.md a bien été créé en utilisant le plugin Maven xdoc2md)
  • Si le projet est suivi dans Jira, il ne doit plus y avoir de tickets en cours
  • Toutes les propriétés (dans /resources ) doivent exister dans au moins la version par défaut (EN) et la version FR (ex: myplugin_messages.properties & myplugin_messages_fr.properties). Ces fichiers doivent être encodés en unicode.
  • Les scripts de création des tables du plugin doivent exister, ainsi que ceux correspondant aux upgrades de version. Les scripts doivent respecter les standards SQL (voir page wiki Bonnes pratiques SQL ).
  • Le plugin doit comprendre des tests unitaires et les tests doivent pouvoir s'executer avec succès sur HSQLDB (voir page wiki Utilisation de Maven rurbrique test)
  • Les éléments du rapport sonar dans https://dev.lutece.paris.fr/sonar/dashboard doivent avoir été pris en compte.

Mode opératoire

Pour releaser la version 2.0.0 d'un composant à la version 1.2.5-SNAPSHOT, les étapes suivantes sont nécessaires :

  • Faire un commit Update plugin version to 2.0.0 for myplugin sur la branch develop avec les modifications :
    • Dans le pom.xml :
      • Modification de la version du composant de 1.2.5-SNAPSHOT à 2.0.0
      • Modification du tag au niveau de la balise scm :
        <scm>
            ...
        -   <tag>HEAD</tag>
        +   <tag>plugin-myplugin-2.0.0</tag>
        </scm>
    • Modification de la version du composant de 1.2.5-SNAPSHOT à 2.0.0 dans le fichier de configuration : webapp/WEB-INF/plugins/myplugin.xml
  • Faire un merge de la branche develop sur la branche master
  • Créer un tag plugin-myplugin-2.0.0
  • Faire un commit Update plugin version to 2.0.1-SNAPSHOT for myplugin sur la branch develop avec les modifications :
    • Dans le pom.xml :
      • Modification de la version du composant de 2.0.0 à 2.0.1-SNAPSHOT
      • Modification du tag au niveau de la balise scm :
        <scm>
            ...
        -   <tag>plugin-myplugin-2.0.0</tag>
        +   <tag>HEAD</tag>
        </scm>
    • Modification de la version du composant de 2.0.0 à 2.0.1-SNAPSHOT dans le fichier de configuration : webapp/WEB-INF/plugins/myplugin.xml
  • Si le projet est suivi dans Jira, modifier la version 1.2.5 en 2.0.0 et la publier puis créer la version 2.0.1

Releaser un site Lutèce

Prérequis

Avant la génération d'une nouvelle version stable du site, les éléments suivants doivent être vérifiés :

  • La version actuelle doit être une version SNAPSHOT (ex: 1.0.0-SNAPSHOT)
  • Si le projet est sous Git, les branches develop et master ne doivent pas être en conflit si on applique un merge (voir Normes de gestion des branches GIT)
  • Le POM du composant doit être complet. Il faudra notamment veiller à ce que les éléments suivants soient bien présents :
    • La déclaration du POM parent lutece-site-pom dans sa dernière version
    • Les méta données du composant (version, name, groupId, artifactId...)
    • Les déclarations des repository Maven du projet Lutèce :
      • repository luteceRepository : contient les versions stables des composants Lutèce
      • repository luteceSnapshot : contient les versions snapshot
    • La déclaration sous forme de dépendances des composants nécessaires au projet
      • Toutes les versions des dépendances doivent être fixées (pas de plage de version)
    • Le lien vers le répertoire des sources du projet (balises SCM)
    • Le lien vers le projet Jira associé (balises JIRA)
  • Les sources du composant ne doivent contenir que des fichiers propres au site (voir Les plugins de Lutece). On veillera par exemple à ne pas avoir de fichiers de configuration de git, de configuration des rapports de code ou de dumps d'une base de données existante.
  • Si le projet est suivi dans Jira, il ne doit plus y avoir de tickets en cours

Mode opératoire

Pour releaser la version 2.0.0 d'un site du projet Lutèce à la version 1.2.5-SNAPSHOT, les étapes suivantes sont nécessaires :

  • Faire un commit prepare release site-mysite-2.0.0 sur la branch develop avec les modifications :
    • Dans le pom.xml :
      • Modification de la version du composant de 1.2.5-SNAPSHOT à 2.0.0
      • Modification du tag au niveau de la balise scm :
        <scm>
            ...
        -   <tag>HEAD</tag>
        +   <tag>site-mysite-2.0.0</tag>
        </scm>
  • Faire un merge de la branche develop sur la branche master
  • Créer un tag site-mysite-2.0.0
  • Faire un commit prepare for next development iteration sur la branch develop avec les modifications :
    • Dans le pom.xml :
      • Modification de la version du composant de 2.0.0 à 2.0.1-SNAPSHOT
      • Modification du tag au niveau de la balise scm :
        <scm>
            ...
        -   <tag>site-mysite-2.0.0</tag>
        +   <tag>HEAD</tag>
        </scm>
  • Si le projet est suivi dans Jira, modifier la version 1.2.5 en 2.0.0 et la publier puis créer la version 2.0.1