Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
*.filecheck
.env

Release_procedure.md
32 changes: 18 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,17 @@ Vocabularies and format changes are managed on [Argo Vocabs Task Team - AVTT Git
- file_checker_spec folder containing all specifications and reference tables.
- source code

## Run Argo NetCDF file format checker
## I - Run Argo NetCDF file format checker

### Using file_checker_exec-{version}.jar :
### I.1 - Using file_checker_exec-{version}.jar :

```bash
java -jar file_checker_exec-{version}.jar $OPTION $DAC_NAME $SPEC $OUTPUT_DIR $INPUT_DIR [$FILES_NAMES]
```

$FILES_NAMES is a list of file's name from the INPUT_DIR. It is optional : without it, all files from INPUT_DIR will be checked.

### Run the application using Docker
### I.2 - Run the application using Docker

```bash
docker run --rm -v [ABSOLUTE_PATH_TO_DATA_FOLDER]:/app/data -v [ABSOLUTE_PATH_TO_OUTPUT_DIR]:/app/results ghcr.io/oneargo/argoformatchecker/app:{TAG} [$OPTIONS] $DAC_NAME ./file_checker_spec ./results ./data [$FILES_NAMES]
Expand All @@ -53,7 +53,7 @@ Example :
docker run --rm -v D:\test_file_checker\datatest:/app/data -v D:\test_file_checker\results:/app/results ghcr.io/oneargo/argoformatchecker/app:develop -no-name-check coriolis ./file_checker_spec ./results ./data
```

### Run the application using Docker Compose
### I.3 - Run the application using Docker Compose

To facilitate the use of Argo file checker a compose.yaml and .env files are provided :

Expand Down Expand Up @@ -89,7 +89,7 @@ FILECHECKER_OPTIONS=
FILES_NAMES=
```

### Run the application on demonstration files
### I.4 - Run the application on demonstration files

Demonstration data are availables to run the application locally easily.

Expand All @@ -113,35 +113,35 @@ or for Windows :

output files will be generated in `./demo/outputs`.

### Run File checker using Python and an API
### I.5 - Run File checker using Python and an API

In folder /file-checker-python you will find a python wrapper and an API to facilitate the use of Argo FileChecker. See [python.README](./python.README.md) for more informations.

### Test data
### I.6 - Test data

To further test the Argo File Checker, you will find argo data here : https://www.argodatamgt.org/DataAccess.html

The Argo File Checker is not yet designed to checking *prof.nc and *Sprof.nc. It checks only TRAJ, META, TECH and PROFILES files.

## Run File checker using Python and an API
## II - Run File checker using Python and an API

In folder /argo-file-checker-python you will find a python wrapper and an API to facilitate the use of Argo FileChecker.

## TOOLS
## III - TOOLS

### Maven Wrapper
### III.1 - Maven Wrapper

Thanks to the wrapper, Maven is embedded in the project (in a defined version). No need to install Maven on your development workstation, just use the wrapper script included in the project.

## Getting Started
## IV - Getting Started

- Clone the repository :

```bash
git clone https://github.com/OneArgo/ArgoFormatChecker.git
```

### building jar
### IV.1 - building jar

- Build the application with maven (will requiert Java jdk installed), in file_checker_exec folder :

Expand All @@ -152,18 +152,22 @@ cd file_checker_exec

In target folder you will find both original-file_checker_exec and file_checker_exec-[version]. It is this last one to use.

### build docker image
### IV.2 - build docker image

- Build the application with Docker :

```bash
docker build -t filechecker_2.8.14 .
```

### Run integration tests
### IV.3 - Run integration tests

The source code comes with some netcdf test files. You can run the integration tests with this following command :

```bash
./mvnw verify
```

## V - Making a new release

The new release procedure is kept internal to Ifremer within Release_procedure.md (not pushed to GitHub)
53 changes: 53 additions & 0 deletions Release_procedure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Procédure nouvelle release

Cette procédure explicite quelles étapes réaliser pour diffuser une nouvelle versiion du File Format Checker en opérationel.
Elle n'a pas vocation à se trouver dans le GitHub (ce fichier fait parti du gitIgnore).

pré-requis:
- code, les fichiers de configuration et/ou les tables NVS mis-à-jour
- JDK installée

1. Contrôle des tables NVS avec le [script nvs-tables-download](https://gitlab.ifremer.fr/amrit/development/nvs-tables-download).

2. Création d'une branche sur le Gitlab avec les modifications de la version et réaliser un Pull Request.
- modifier le fichier file_checker_exec/pom.xml avec la nouvelle version du FileChecker en ligne 7:
```
<version>x.y.z</version>
```

3. Créer un dépôt local de cette branche gitlab puis
- Depuis /file_checker_exec : execution des test "end-to-end" internes `mvn verify`.
- Depuis /file_checker_exec : Génerer l'executable *.jar `mvn clean package`

4. Comparaison ancienne version et nouvelle version sur un ensemble de fichiers (typiquement les fichiers mis-à-jour au GDAC sur les 20 derniers jours) en utilisant le script [compare_version.py](https://gitlab.ifremer.fr/amrit/development/format-checker-gdac-audit). Le Readme indique un exemple pour sélectionner l'ensemble de fichier. Cette non-régression exhaustive peut être assez longue (1 journée en faisant tourner en local). On peut raccourcir bien évidemment la période visée au besoin.

5. Valider les nouveautés de la version (nouvelle entrée table importante, nouvelle fonction)

6. Tester sur coriolis_dev (/home/coriolis_dev/val/binlx/co03/co0308/co030801/co03080102/) :
- Copier le nouveau .jar et remplacer le file_checker_spec dans /exe
- Modifier le ArgoFileChecker.csh pour faire référence au nouvel executable.
- Modifier le /tst/TU_YL_20241114.csh pour le nom des fichiers logs
- lancer le script /tst/TU_YL_20241114.csh
- Répéter les deux étapes précédentes pour changer le nom du DAC (aoml, coriolis et incois sont disponibles en test)
- Controler la bonne execution du File Checker dans le fichier execution_summary_3.0.4.log et éventuellement dans les erreurs dans les fichiers présents sous /home/coriolis_dev/val/spool/co03/co0308/co030801/co03080102/{DAC_NAME}/output. Pour le DAC Coriolis, 18 fichiers sont acceptés sur les 64.

7. Accepter et merger la Pull Request sur le Gitlab.

8. Créer le tag de version sur le gitlab ifremer.

9. Copie de l'executable et de file_checker_spec sur coriolis_exp /home/coriolis_exp/binlx/co03/co0308/co030801/co03080102/
- modification du fichier ArgoFileChecker.csh sur coriolis_exp pour faire référence à la nouvelle version.

10. Modifier le document de suivi coriolis sur le google drive coriolis-doc/modifications -> indiquer les modifications, évolutions, heure locale.

11. Sur le [repo github](https://github.com/OneArgo/ArgoFormatChecker) public: Créer une branche, faire une PR bien documentée, et fusionner la PR.

12. Faire une release en ajoutant le .jar en pièce jointe.

13. Envoyer un message à [Michael Frost](Michael.Frost@nrlmry.navy.mil) en donnant le lien de la nouvelle release et en decrivant en quelques mots ce qu'apporte la nouvelle version, et mettre en copie l'AVTT chair (https://github.com/OneArgo/ArgoVocabs/blob/master/README.md#i-the-argo-vocabulary-task-team).

14. Faire une news ou amender une news (pour les versions mineures) sur https://www.argodatamgt.org/news/. Par exemple https://www.argodatamgt.org/news/20260421-ArgoFileFormatCheckerV3.html

15. Faire un message à Argo-dm pour informer tous les DACs de cette nouvelle version.


2 changes: 1 addition & 1 deletion file_checker_exec/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>fr.ifremer</groupId>
<artifactId>file_checker_exec</artifactId>
<version>3.0.4</version>
<version>3.0.5</version>

<name>Argo NetCDF file format checker</name>

Expand Down
Loading
Loading