Mise à jour res_data

Ce chapitre décrit la procédure pour mettre à jour un jeu de données res_data.

Introduction

Les projets res_data contiennent des exports de données qui sont packagées pour les tests d’intégration. Ils permettent d’initialiser un serveur de test avec un ensemble de données

Pour écrire de nouveaux tests ou dans le cas du développement d’une nouvelle fonctionnalité, il peut être nécéssaire de modifier ce jeu de données.

Les modifications devront être effectuées à la fois dans un des projets res_data et dans le projet sainet

Procédure

  1. Récupérer les données de test.
  2. Modifier les données nécessaires.
  3. Lancer les tests d’intégration localement avec le nouveau jeu de données.
  4. Adapter les tests d’intégration.
  5. Publier les modifications sur le Nexus de SAI ERP.
  6. Utiliser la nouvelle version du jeu de test dans sainet.

Récupérer les données de test.

La première étape consiste à récupérer les données de test sur res_data.

Attention:

Si le fichier des données est déjà existant, la mise à jour de données doit être effectuée (git pull).

Il faut ensuite créer une nouvelle branche:

git checkout -b feature/nouvelles-donnees-test

Modifier les données de test.

Pour modifier le jeu de données de test, il est possible d’effectuer les modifications des manières suivantes:

  • directement dans le fichier SQL root/h2dump.sql.
  • en lançant un serveur local, en effectuant les modifications, puis un export du jeu de données.

Modification directe (SQL)

Le fichier root/h2dump.sql contient l’ensemble des données qui vont être insérées au lancement du serveur SAINet.

Dans le cas d’une modification directement dans ce fichier, il faut faire attention à la cohérence des données. En cas de modification complexe (par exemple l’ajout de fichiers dans l’edms), il est préférable d’effectuer les modifications sur un serveur lancé (voir ci-après).

Modification en lancant un serveur local

Cette méthode consiste à lancer un serveur local sur le jeu de données initiale:

./run-server.sh --runtime <runtime> --import <path/to/res_data/<test_id> --start

Puis à effectuer les modifications via le client riche (ou l’AdminClient), pour ensuite effectuer un export du jeu de données via la commande export light path/to/res_data/<test_id> dans la console du serveur.

Lancer les tests localement avec le nouveau jeu de données

Suite à la modification du jeu de données d’intégration, il est parfois nécéssaire d’adapter/corriger les tests dans dev/sainet.

Afin de valider/corriger les tests d’intégration avec le nouveau jeu de donnée res_data, il est possible de lancer les tests:

  • en installant localement la version SNAPSHOT de l’artefact res_data.
    • installer localement la version SNAPSHOT (mvn clean install) du projet res_data.
    • mettre à jour le fichier pom.xml concerné dans dev/sainet avec la version SNAPSHOT.
    • lancer les tests (./run-tests.sh <test-id>).
  • en démarrant un serveur embarqué qui utilise le nouveau jeu de donnée.

Lancement des tests en installant localement la version SNAPSHOT de l’artefact res_data

Dans res_data/<test_id>, la commande mvn clean install permet de générer et installer localement la version SNAPSHOT.

<?xml version="1.0" encoding="UTF-8"?>
  <groupId>ch.saierp.sainet.testing.data</groupId>
  <artifactId>`test_id`</artifactId>
  <version>1.40-SNAPSHOT</version>
  ...

Dans cet exemple, c’est la version 1.40-SNAPSHOT qui va être installée localement.

Une fois la commande effectuée, il faut modifier les tests dans dev/sainet pour qu’ils utilisent cette nouvelle version. Pour cela, il faut modifier la version de l’artifact dans sainet/testing/data/<test_id>/pom.xml.

sainet/testing/data/<test_id>/pom.xml

    ...
    <dependency>
      <groupId>ch.saierp.sainet.testing.data</groupId>
      <artifactId>`test_id`</artifactId>
      <version>1.40-SNAPSHOT</version> <!-- à modifier -->
      <scope>test</scope>
    </dependency>
    ...

Le lancement des tests via la commande ./run-test.sh <test_id> va alors utiliser la version SNAPSHOT qui vient d’être installée localement. Cette commande permet de lancer un serveur embarqué sur lequel les tests seront appliqués.

Lancement des tests en démarrant un serveur embarqué

Il est aussi possible de lancer les tests en utilisant un serveur local lancé sur le jeu de données modifié.

./run-server.sh --runtime <runtime> --import <path/to/res_data/<test_id> --start

Puis en lancant les tests sur ce serveur.

./run-test.sh reg --runtime <runtime>

Publier les modifications sur le Nexus de SAI ERP.

Note:

Il faut être dans une branche (créée précédemment).

Ajouter les modifications dans la branche:

git add root/h2dump.sql
git add root/schema.sql
git add root/edms/ged

Faire un commit avec les fichiers ajoutés:

git commit -m "Ajout des nouvelles données de test"

Faire un push de la branch

git push --set-upstream <remote> <branch>

Assigner la merge request à une personne qui a le rôle Maintainer du projet res_data concerné.

Note:

Le Maintainer doit lancer un job sur le master lui permettant de faire une release.

La release contiendra la prochaine version à publier et la nouvelle version snapshot pour le projet res_data.

Utiliser la nouvelle version du jeu de test dans dev/sainet.

Une fois la merge request intégrée au master, la version du package de test peut être mise à jour dans le pom du projet testing/data/ concerné dans dev/sainet.

Pour cela, il faut adapter la version de l’artifact dans sainet/testing/data/<test_id>/pom.xml (afin qu’elle corresponde à la version publiée juste avant) soit:

  • en supprimant le -SNAPHOT de la version de l’artefact des données de test (si elle a été modifiée précédemment).
  • en incrémentant la version de l’artefact des données de test.
Note:

Il ne dois jamais y avoir de version SNAPSHOT dans les fichiers pom.xml de dev/sainet.

sainet/testing/data/<test_id>/pom.xml

    <dependency>
      <groupId>ch.saierp.sainet.testing.data</groupId>
      <artifactId>`test_id`</artifactId>
      <version>1.40</version> <!-- -à adapter -->
      <scope>test</scope>
    </dependency>