From c5c3249995887c54e1b6b5f95cd5e102b8b39ed6 Mon Sep 17 00:00:00 2001 From: Theo Satabin Date: Fri, 7 Jul 2023 15:51:00 +0200 Subject: [PATCH 1/5] Correction du cas mergeNtiff + image de fond + style MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit L'image de fond provient d'une pyramide, donc est déjà au format cible. Il ne faut pas lui appliquer de style. --- .github/workflows/build-and-release.yaml | 2 +- CMakeLists.txt | 2 +- README.md | 3 ++- src/mergeNtiff.cpp | 11 +++++++++-- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-and-release.yaml b/.github/workflows/build-and-release.yaml index 92cc92b..cc71e2b 100644 --- a/.github/workflows/build-and-release.yaml +++ b/.github/workflows/build-and-release.yaml @@ -126,7 +126,7 @@ jobs: sed "s#__version__#${{ github.ref_name }}#" templates/index.template.md >docs/index.md echo "# Versions" >docs/versions.md echo "" >>docs/versions.md - for v in `ls -t docs/versions`; do sed "s#__version__#$v#" templates/versions.template.md >>docs/versions.md; done + for v in `ls -t docs/versions | grep -v latest`; do sed "s#__version__#$v#" templates/versions.template.md >>docs/versions.md; done sed "s#__version__#${{ github.ref_name }}#" templates/latest.template.html >docs/versions/latest/index.html rm -r artifact diff --git a/CMakeLists.txt b/CMakeLists.txt index 56d8dbf..8549af8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,7 @@ set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation location") set(BUILD_VERSION "0.0.0" CACHE STRING "Build version") set(DEBUG_BUILD 0 CACHE BOOL "Debug mode compilation") set(DOC_ENABLED 1 CACHE BOOL "Documentation compilation") -set(CPACK_SYSTEM_NAME "ubuntu20.04" CACHE STRING "Building OS, to deduce package format to generate") +set(CPACK_SYSTEM_NAME "ubuntu-20.04" CACHE STRING "Building OS, to deduce package format to generate") set(CPACK_PACKAGE_NAME "rok4-generation" CACHE STRING "Package's name") set(VERSION ${BUILD_VERSION}) diff --git a/README.md b/README.md index 0eca5c4..f838df8 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ apt install ./rok4-generation.deb ### installation des styles (si besoin dans les usages) curl -o styles.deb https://github.com/rok4/styles/releases/download/x.y.z/rok4-styles-x.y.z-linux-all.deb -apt install ./rok4-generation.deb +apt install ./styles.deb ``` @@ -276,6 +276,7 @@ Les informations sur les canaux (nombre, taille en bits et format) peuvent : `mergeNtiff -f [-r ] -c -i -n [-a -s -b ]` * `-f ` : fichier de configuration contenant l'image en sortie et la liste des images en entrée, avec leur géoréférencement et les masques éventuels +* `-g` : la première image en entrée dans le fichier est une image de fond. Il ne faudra pas lui appliquer l'éventuel style fourni. * `-r ` : dossier racine à utiliser pour les images dont le chemin commence par un `?` dans le fichier de configuration. Le chemin du dossier doit finir par un `/` * `-p ` : fichier de style à appliquer aux images avant reprojection ou réechantillonnage * `-i ` : interpolation à utiliser pour les reprojections et le réechantillonnage : nn (plus proche voisin), linear, bicubic, lanzos diff --git a/src/mergeNtiff.cpp b/src/mergeNtiff.cpp index 05a1ee9..88fd5be 100644 --- a/src/mergeNtiff.cpp +++ b/src/mergeNtiff.cpp @@ -116,6 +116,8 @@ Compression::eCompression compression = Compression::NONE; /** \~french Interpolation utilisée pour le réechantillonnage ou la reprojection */ Interpolation::KernelType interpolation = Interpolation::CUBIC; +/** \~french A-t-on précisé une image de fond */ +bool backgroundProvided = false; /** \~french A-t-on précisé un style */ bool styleProvided = false; /** \~french Chemin du fichier de style à appliquer */ @@ -138,6 +140,7 @@ std::string help = std::string("\nmergeNtiff version ") + std::string(VERSION) + "Parameters:\n" " -f configuration file : list of output and source images and masks\n" + " -g : first input is a background image\n" " -r output root : root directory for output files, have to end with a '/'\n" " -c output compression :\n" " raw no compression\n" @@ -208,6 +211,9 @@ int parseCommandLine(int argc, char** argv) { case 'd': // debug logs debugLogger = true; break; + case 'g': // background + backgroundProvided = true; + break; case 'f': // fichier de liste des images source if (i++ >= argc) { BOOST_LOG_TRIVIAL(error) << "Error in option -f"; @@ -591,7 +597,7 @@ int loadImages(FileImage** ppImageOut, FileImage** ppMaskOut, std::vectorgetBitsPerSample(bitspersample); samplesperpixel = style->getChannels(samplesperpixel); sampleformat = style->getSampleFormat(sampleformat); @@ -1030,7 +1036,8 @@ int mergeTabImages(FileImage *pImageOut, // Sortie BOOST_LOG_TRIVIAL(debug) << "\t is compatible"; /* les images sources et finale ont la meme resolution et la meme phase * on aura donc pas besoin de reechantillonnage.*/ - if (styleProvided) { + if (styleProvided && ! (i == 0 && backgroundProvided)) { + // Un style est fourni et nous ne sommes pas dans le cas de la première entrée qui est une image de fond Image* pStyled = NULL; if (style->isEstompage()) { From b91f4d98cebc0110328a711dc182c5218197cf96 Mon Sep 17 00:00:00 2001 From: Theo Satabin Date: Tue, 11 Jul 2023 11:33:04 +0200 Subject: [PATCH 2/5] =?UTF-8?q?Homog=C3=A9n=C3=A9isation=20de=20l'int?= =?UTF-8?q?=C3=A9gration=20dans=20les=20d=C3=A9p=C3=B4ts=20du=20projet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/labeler.yml | 19 ++++++++++++ .github/release.yml | 24 +++++++++++++++ .github/workflows/build-and-release.yaml | 11 ++++--- .github/workflows/pr-auto-labeler.yml | 15 ++++++++++ CHANGELOG.md | 23 +++++++-------- CONTRIBUTING.md | 37 ++++++++++++++++++++++++ README.md | 23 +++------------ 7 files changed, 114 insertions(+), 38 deletions(-) create mode 100644 .github/labeler.yml create mode 100644 .github/release.yml create mode 100644 .github/workflows/pr-auto-labeler.yml create mode 100644 CONTRIBUTING.md diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 0000000..dd91ab3 --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,19 @@ +ci-cd: + - .github/**/* + +dependencies: + - cmake/**/* + +documentation: + - docs/**/* + +enhancement: + - src/**/* + +quality: + - tests/**/* + +tooling: + - CMakeLists.txt + - config.h.in + - '**/CMakeLists.txt' diff --git a/.github/release.yml b/.github/release.yml new file mode 100644 index 0000000..c879bf9 --- /dev/null +++ b/.github/release.yml @@ -0,0 +1,24 @@ +changelog: + exclude: + authors: + - dependabot + - pre-commit-ci + categories: + - title: Correction de bugs 🐛 + labels: + - bug + - title: Améliorations et nouvelles fonctionnalités 🎉 + labels: + - enhancement + - quality + - title: Outillage 🔧 + labels: + - ci-cd + - dependencies + - tooling + - title: Documentation 📖 + labels: + - documentation + - title: Divers + labels: + - "*" diff --git a/.github/workflows/build-and-release.yaml b/.github/workflows/build-and-release.yaml index cc71e2b..f5a36bd 100644 --- a/.github/workflows/build-and-release.yaml +++ b/.github/workflows/build-and-release.yaml @@ -19,13 +19,12 @@ jobs: - name: Create Release id: create_release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + uses: ncipollo/release-action@v1 with: - tag_name: ${{ github.ref_name }} - release_name: Release ${{ github.ref_name }} - body_path: CHANGELOG.md + token: ${{ secrets.GITHUB_TOKEN }} + tag: ${{ github.ref_name }} + name: Release ${{ github.ref_name }} + generateReleaseNotes: true draft: false prerelease: false diff --git a/.github/workflows/pr-auto-labeler.yml b/.github/workflows/pr-auto-labeler.yml new file mode 100644 index 0000000..42ec571 --- /dev/null +++ b/.github/workflows/pr-auto-labeler.yml @@ -0,0 +1,15 @@ +name: "🏷 PR Labeler" +on: + - pull_request_target + +permissions: + contents: read + pull-requests: write + +jobs: + triage: + runs-on: ubuntu-latest + steps: + - uses: actions/labeler@v4 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f09780..ca234b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,4 @@ -## Summary - -Corrections de la gestion du style dans mergeNtiff et ajout d'includes manquants - -## Changelog +## 4.1.4 ### [Fixed] @@ -15,16 +11,17 @@ Corrections de la gestion du style dans mergeNtiff et ajout d'includes manquants * Prise en compte du nouveau nommage dans l'utilisation de l'annuaire de contexte de stockage * Compilation avec core-cpp en librairie dynamique - \ No newline at end of file +* Les chemins des dalles finales sont fournis dans un format précisant le type de stockage : `(file|ceph|s3|swift)://`. Dans le cas du stockage objet, le chemin est de la forme `/` +* Passage de la librairie PROJ à la version 6 \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..4c3895d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,37 @@ +# Directives de contribution + +Merci d'envisager de contribuer à ce projet ! + +## Pull request + +Le titre de la PR est utilisé pour constituer automatiquement les notes de release. Vous pouvez préciser en commentaire de votre PR des détails qui seront ajoutés dans le fichier `CHANGELOG.md` par les mainteneurs du projet. + +Le formalisme du changelog est le suivant, en markdown : + +```md +### [Added] + +Liste de nouvelles fonctionnalités. + +### [Changed] + +Liste de fonctionnalités existantes modifiées. + +### [Deprecated] + +Liste de fonctionnalités dépréciées. + +### [Removed] + +Liste de foncitonnalités retirées. + +### [Fixed] + +Liste de corrections fonctionnelles. + +### [Security] + +Liste de corrections de sécurité. +``` + +Les parties vides, sans élément à lister, peuvent être ignorées. diff --git a/README.md b/README.md index f838df8..b0e3e0d 100644 --- a/README.md +++ b/README.md @@ -6,25 +6,6 @@ Ces outils permettent le calcul des dalles de données composant les pyramides e Ces outils sont principalement appelés dans les scripts générés par les outils de [prégénération](https://github.com/rok4/pregeneration). -- [Installer les outils (Debian)](#installer-les-outils-debian) -- [Utiliser les outils](#utiliser-les-outils) - - [Variables d'environnement utilisées](#variables-denvironnement-utilisées) - - [CACHE2WORK](#cache2work) - - [CHECKWORK](#checkwork) - - [COMPOSENTIFF](#composentiff) - - [DECIMATENTIFF](#decimatentiff) - - [MANAGENODATA](#managenodata) - - [MERGE4TIFF](#merge4tiff) - - [MERGENTIFF](#mergentiff) - - [OVERLAYNTIFF](#overlayntiff) - - [PBF2CACHE](#pbf2cache) - - [WORK2CACHE](#work2cache) -- [Compiler les outils (Debian)](#compiler-les-outils-debian) - - [Dépendances supplémentaires](#dépendances-supplémentaires) - - [Variables CMake](#variables-cmake) - - [Compilation, documentation et installation](#compilation-documentation-et-installation) - - ## Installer les outils (Debian) Installations système requises (listées dans le paquet debian, installées avec l'applicatif lors du `apt install`) : @@ -448,3 +429,7 @@ make make doc make install ``` + +## Contribuer + +Consulter les [directives de contribution](./CONTRIBUTING.md) \ No newline at end of file From 6724d918f56e8676025dc8d871cdc65ed28fc3ba Mon Sep 17 00:00:00 2001 From: Theo Satabin Date: Tue, 29 Aug 2023 14:22:28 +0200 Subject: [PATCH 3/5] Adaptation de la CI pour la publication de la documentation --- .github/workflows/build-and-release.yaml | 27 +++++++++++++----------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build-and-release.yaml b/.github/workflows/build-and-release.yaml index f5a36bd..d59d98c 100644 --- a/.github/workflows/build-and-release.yaml +++ b/.github/workflows/build-and-release.yaml @@ -79,7 +79,7 @@ jobs: cd build make doc cd .. - cp README.md CHANGELOG.md dist/ + cp -r README.md CHANGELOG.md docs/images dist/ - name: Upload documentation if: "matrix.os == 'ubuntu-20.04'" @@ -111,21 +111,24 @@ jobs: - name: Copy version elements to final location run: | - mkdir -p docs/versions/${{ github.ref_name }} + mkdir -p docs/versions/${{ github.ref_name }}/docs docs/versions/${{ github.ref_name }}/config cp -r artifact/html docs/versions/${{ github.ref_name }}/ + cp -r artifact/images docs/versions/${{ github.ref_name }}/docs/ + - name: Add pages from templates run: | - sed "s#__version__#${{ github.ref_name }}#" templates/DOCUMENTATION.template.md >docs/versions/${{ github.ref_name }}/DOCUMENTATION.md - sed "s#__version__#${{ github.ref_name }}#" templates/CHANGELOG.template.md >docs/versions/${{ github.ref_name }}/CHANGELOG.md - cat artifact/CHANGELOG.md >>docs/versions/${{ github.ref_name }}/CHANGELOG.md - sed "s#__version__#${{ github.ref_name }}#" templates/README.template.md >docs/versions/${{ github.ref_name }}/README.md - cat artifact/README.md >>docs/versions/${{ github.ref_name }}/README.md - sed -i "s#x.y.z#${{ github.ref_name }}#g" docs/versions/${{ github.ref_name }}/README.md - sed "s#__version__#${{ github.ref_name }}#" templates/index.template.md >docs/index.md - echo "# Versions" >docs/versions.md - echo "" >>docs/versions.md - for v in `ls -t docs/versions | grep -v latest`; do sed "s#__version__#$v#" templates/versions.template.md >>docs/versions.md; done + sed "s#__version__#${{ github.ref_name }}#" templates/mkdocs.template.yml >mkdocs.yml + + sed "s#__version__#${{ github.ref_name }}#" templates/documentation.template.md >docs/versions/${{ github.ref_name }}/documentation.md + + sed "s#__version__#${{ github.ref_name }}#" templates/index-version.template.md >docs/version s/${{ github.ref_name }}/index.md + cat artifact/README.md >>docs/versions/${{ github.ref_name }}/index.md + sed -i "s#x.y.z#${{ github.ref_name }}#g" docs/versions/${{ github.ref_name }}/index.md + + cp templates/index-versions.template.md docs/versions/index.md + sed "s/^## \(.*\)$/## \1 \n\n[➔ Lien vers la documentation](\1\/index.md) /" artifact/CHANGELOG.md >>docs/versions/index.md + sed "s#__version__#${{ github.ref_name }}#" templates/latest.template.html >docs/versions/latest/index.html rm -r artifact From 009c3b1c519cefce53555677238a492e3fc9cb64 Mon Sep 17 00:00:00 2001 From: Theo Satabin Date: Tue, 29 Aug 2023 16:37:57 +0200 Subject: [PATCH 4/5] Correction de l'aborescence de documentation --- .github/workflows/build-and-release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-release.yaml b/.github/workflows/build-and-release.yaml index d59d98c..f16a2fd 100644 --- a/.github/workflows/build-and-release.yaml +++ b/.github/workflows/build-and-release.yaml @@ -111,7 +111,7 @@ jobs: - name: Copy version elements to final location run: | - mkdir -p docs/versions/${{ github.ref_name }}/docs docs/versions/${{ github.ref_name }}/config + mkdir -p docs/versions/${{ github.ref_name }}/docs cp -r artifact/html docs/versions/${{ github.ref_name }}/ cp -r artifact/images docs/versions/${{ github.ref_name }}/docs/ From 5d22f14d32428b2283d2e4967eb04e18b4084ff0 Mon Sep 17 00:00:00 2001 From: Theo Satabin Date: Wed, 30 Aug 2023 17:22:55 +0200 Subject: [PATCH 5/5] Ajout de la version 4.1.5 dans le changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ca234b7..6fb500b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 4.1.5 + +### [Fixed] + +* Outil `mergeNtiff` : correction du cas mergeNtiff + image de fond + style. L'image de fond provient d'une pyramide, donc est déjà au format cible. Il ne faut pas lui appliquer de style. + ## 4.1.4 ### [Fixed]