Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
549c738
Configuration d'un timeout pour les lecture S3 et SWIFT
Dolite Sep 4, 2025
3b603e4
Merge pull request #53 from rok4/feature/network-timeout
Dolite Sep 4, 2025
2efa594
Correction du changelog
Dolite Sep 11, 2025
3bee0cd
Export de CurlPool de Cache vers son propre fichier et changement des…
VincentMiras Oct 3, 2025
515aebb
ajout documentation manquante
VincentMiras Oct 3, 2025
bfaae02
Export de ProjPool en dehors de Cache
VincentMiras Oct 3, 2025
bad30bc
Export de StoragePool en dehors de la classe Cache
VincentMiras Oct 6, 2025
1e53d5d
Export de la classe IndexCache
VincentMiras Oct 7, 2025
c4a186a
Export de la classe IndexElement en dehors de Cache et adaptation au …
VincentMiras Oct 7, 2025
a5e6364
Export de TmsBook hors de Cache et changement du à l'impact de ce cha…
VincentMiras Oct 7, 2025
d72a4a3
Export de StyleBook hors de Cache
VincentMiras Oct 7, 2025
37007f6
Export de CrsBook hors de Cache
VincentMiras Oct 7, 2025
f526524
Exporting Cache.cpp on each file.
VincentMiras Oct 9, 2025
bfc5e93
Mise à jour des imports pour la compilation de génération
VincentMiras Oct 9, 2025
22ff93f
Mise à jour changelog
VincentMiras Oct 17, 2025
cb2ad2c
Ajout précision changelog
VincentMiras Oct 20, 2025
5d9be63
retraits des relicats de Cache
VincentMiras Oct 20, 2025
336c84f
Simplification d'une dépendance inutile
VincentMiras Oct 20, 2025
7042196
Merge pull request #56 from rok4/feature/split-cache-classes
Dolite Nov 4, 2025
adaf715
Correction de la lecture de TIFF tuilé ou stripé
Dolite Dec 12, 2025
cfeb35a
Ajout du moteur de calcul d'image SubsampledImage
Dolite Jan 13, 2026
2620c8c
Merge pull request #58 from rok4/feature/subsampled-image
Dolite Jan 13, 2026
4e1ee67
Implémentation du style TerrainRGB et refonte de la gestion des styles
VincentMiras Sep 22, 2025
bcb64c6
Merge pull request #55 from rok4/feature/terrainrgb
Dolite Mar 12, 2026
5705035
Mise à jour de la CI pour gérer automatiquement le changelog
Dolite Mar 12, 2026
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
24 changes: 0 additions & 24 deletions .github/release.yml

This file was deleted.

28 changes: 26 additions & 2 deletions .github/workflows/build-and-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
tags:
- '**'

jobs:
jobs:

create_release:
name: Create Release
Expand All @@ -17,14 +17,38 @@ jobs:
- name: Checkout project
uses: actions/checkout@v3

- name: Update changelog
uses: thomaseizinger/keep-a-changelog-new-release@v2
with:
tag: ${{ github.ref_name }}

- name: Commit changelog
run: |
git config user.name github-actions
git config user.email github-actions@github.com
git add CHANGELOG.md
git commit -m "Versionnement du changelog"
git push

- name: Get latest release info
id: query_release_info
uses: release-flow/keep-a-changelog-action@v2
with:
command: query
version: latest

- name: Write release notes
run: |
echo "echo {{ query_release_info.outputs.release-notes }} >notes.txt"

- name: Create Release
id: create_release
uses: ncipollo/release-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ github.ref_name }}
name: Release ${{ github.ref_name }}
generateReleaseNotes: true
bodyFile: notes.txt
draft: false
prerelease: false

Expand Down
251 changes: 131 additions & 120 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,189 +1,200 @@
## 2.0.5
# Changelog

### [Fixed]
Tous les changements sont consignés dans ce fichier.

* `LibtiffImage` : Gestion des tiff jpeg de photometrie YCbCr avec les tiffs palettes dans le _getline (élargissement du test)
Le format est basé sur [Keep a Changelog](https://keepachangelog.com/) et ce projet respecte le [Semantic Versioning](https://semver.org/).

## 2.0.4
## [Unreleased]

### [Fixed]
### Added

* `Merge` : correction du nombre de méthode
- `SubsampledImage` : cette classe fille d'Image permet de moyenner les pixels de l'image en entrée, en donnant la taille en X et Y de l'emprise de la moyenne.
- `Terrainrgb` : Ajout d'un style terrainrgb pour transformer les MNT en format Terrain RGB.
- `Style` : Ajout d'une fonction permettant de savoir si une palette existe ou non.
- Ajout du traitement en cas de style terrainrgb. Il doit être l'unique style déclaré pour fonctionner.
- `StyledImage` : Récupération de l'affectation du style au sein de la lib core-cpp. Regroupement des traitements des styles regroupés dans StyledImage.
- `StyledImage` : Ajout du traitement pour gérer le style Terrainrgb.

## 2.0.3
### Changed

### [Added]
- `Cache` : Export de toutes les classes implémentées dans Cache dans leurs propres fichiers. Les fichiers ajoutés sont :
* `CurlPool`
* `ProjPool`
* `StoragePool`
* `IndexCache`
* `IndexElement`
* `TmsBook`
* `StyleBook`
* `CrsBook`
- `Style` : Vérification de l'existance d'un bloc palette dans le json de style avant la création d'un objet palette. Ce changement nécessite la vérification de l'existance d'une palette qui n'était pas vérifié avant.

* `TiffHeader` : la valeur de nodata est ajoutée dans le header des Geotiff
### Deprecated
### Removed
### Fixed

### [Fixed]
- `LibtiffImage` : correction de la lecture de la dernière tuile ou du dernier strip quand il y en a un nombre entier

* `Style` : gestion d'une valeur par défaut pour la demande de nodata, en entrée et en sortie
### Security

## 2.0.2
## [2.0.6] - 2025-09-11

### [Fixed]
### Added

* `TiffDeflateEncoder` : l'encodage du résultat final n'est pas en deflate (seule la donnée dans le tiff l'est, et non le résultat complet)
* `S3Context` : on retourne bien false lorsqu'une erreur est rencontrée lors du flush (close_to_write)
- `S3Context` et `SwiftContext` : possibilité de définir un timeout via la variable d'environnement `ROK4_NETWORK_TIMEOUT` (valeur à fournir en seconde)

### Changed

## 2.0.1
- Refonte du CHANGELOG au format [Keep a Changelog](https://keepachangelog.com/)

### [Added]
## [2.0.5] - 2025-07-23

* `Keyword` : ajout d'un exporteur JSON (API Tiles)
* `TileMatrixLimits` : ajout d'un exporteur JSON (API Tiles)
### Fixed

## 2.0.0
- `LibtiffImage` : Gestion des tiff jpeg de photometrie YCbCr avec les tiffs palettes dans le _getline (élargissement du test)
- `Merge` : correction du nombre de méthode

### [Added]
## [2.0.3] - 2025-04-08

* Internalisation de la lib json
* Ajout d'exporteur XML (via la lib boost) pour les entités Style, BoundingBox, Keyword, LegendURL, TileMatrixLimit et Style
* Création d'un annuaire pour les CRS pour éviter les créations en double
### Added

### [Changed]
- `TiffHeader` : la valeur de nodata est ajoutée dans le header des Geotiff

* Passage complet en snake case
* Le format de canal contient le nombre de bits d'encodage
* Renommage StyledImage -> PaletteImage
* Renommage lzwEncoder -> LzwCompressor
* Renommage lzwDecoder -> LzwUncompressor
* Renommage pkbEncoder -> PkbCompressor
* Renommage pkbDecoder -> PkbUncompressor
### Fixed

### [Deprecated]
- `Style` : gestion d'une valeur par défaut pour la demande de nodata, en entrée et en sortie

Liste de fonctionnalités dépréciées.
## [2.0.2] - 2025-02-17

### [Removed]
### Fixed

* Suppression de la notion 'inspire' dans la gestion des styles
* Suppression de la classe ConvertedChannelsImage
* Suppression de la gestion de la compilation avec la librairie Kakadu
* Suppression des factory pour les classes filles de Image
* Suppression de la fonctionnalité de crop dans Rok4Image
- `TiffDeflateEncoder` : l'encodage du résultat final n'est pas en deflate (seule la donnée dans le tiff l'est, et non le résultat complet)
- `S3Context` : on retourne bien false lorsqu'une erreur est rencontrée lors du flush (close_to_write)

### [Fixed]
## [2.0.1] - 2024-10-01

* Correction du nettoyage des annuaires de TMS et styles
### Added

- `Keyword` : ajout d'un exporteur JSON (API Tiles)
- `TileMatrixLimits` : ajout d'un exporteur JSON (API Tiles)
- Internalisation de la lib json
- Ajout d'exporteur XML (via la lib boost) pour les entités Style, BoundingBox, Keyword, LegendURL, TileMatrixLimit et Style
- Création d'un annuaire pour les CRS pour éviter les créations en double

## 1.4.0
### Changed

### [Added]
- Passage complet en snake case
- Le format de canal contient le nombre de bits d'encodage
- Renommage StyledImage -> PaletteImage
- Renommage lzwEncoder -> LzwCompressor
- Renommage lzwDecoder -> LzwUncompressor
- Renommage pkbEncoder -> PkbCompressor
- Renommage pkbDecoder -> PkbUncompressor

* Stockage objet (S3, Swift et Ceph)
* Possibilité de définir un nombre de tentatives pour les lectures (1 par défaut) : variable d'environnement `ROK4_OBJECT_READ_ATTEMPTS`
* Possibilité de définir un nombre de tentatives pour les écritures (1 par défaut) : variable d'environnement `ROK4_OBJECT_WRITE_ATTEMPTS`
* Possibilité de définir un temps d'attente, en secondes, entre les tentatives (5 par défaut) : variable d'environnement `ROK4_OBJECT_ATTEMPTS_WAIT`
### Removed

- Suppression de la notion 'inspire' dans la gestion des styles
- Suppression de la classe ConvertedChannelsImage
- Suppression de la gestion de la compilation avec la librairie Kakadu
- Suppression des factory pour les classes filles de Image
- Suppression de la fonctionnalité de crop dans Rok4Image

### Fixed

- Correction du nettoyage des annuaires de TMS et styles

## 1.3.1
## [1.4.0] - 2024-03-21

### [Fixed]
### Added

* `S3Context` : pour éviter des conflits dans une utilisation multithreadée, la sortie de la fonction HMAC (openssl) est dédiée.
- Stockage objet (S3, Swift et Ceph)
* Possibilité de définir un nombre de tentatives pour les lectures (1 par défaut) : variable d'environnement `ROK4_OBJECT_READ_ATTEMPTS`
* Possibilité de définir un nombre de tentatives pour les écritures (1 par défaut) : variable d'environnement `ROK4_OBJECT_WRITE_ATTEMPTS`
* Possibilité de définir un temps d'attente, en secondes, entre les tentatives (5 par défaut) : variable d'environnement `ROK4_OBJECT_ATTEMPTS_WAIT`

## 1.3.0
## [1.3.1] - 2024-03-14

### [Added]
### Added

* Gestion du multi cluster S3 :
- Gestion du multi cluster S3 :
* nom du cluster = hôte du cluster avec le port (pas de protocole)
* Pour préciser le cluster auquel on s'adresse, le nom du bucket aura la forme `<nom du bucker>@<nom du cluster>`
* Les variables d'environnement `ROK4_S3_URL`, `ROK4_S3_KEY` et `ROK4_S3_SECRETKEY` peuvent contenir une liste de valeurs séparées par des virgules
* **Dans** les descripteurs de pyramide et leur liste ou les objets symboliques, on peut ne pas préciser le nom du cluster : on sait alors qu'on travaille sur le même cluster que celui de l'objet d'origine

### [Fixed]

* Attribute : dans les valeurs des attributs, on échappe les éventuelles back quotes

## 1.2.4

### [Fixed]

* `Cache` : les modifications dans le cache quand il n'est pas par thread (index des dalles, TMS et styles) se font en exclusion mutuelle (mutex lock et unlock)

## 1.2.3

### [Fixed]

* `Level` : Ajout de pixels de marge lors de la reprojection des données d'un niveau de pyramide

## 1.2.2

### [Fixed]

* `LibopenjpegImage` : la lecture des images JPEG 2000 tuilées recharge l'image à la lecture de chaque tuile

## 1.2.1
### Fixed

### [Fixed]
- `S3Context` : pour éviter des conflits dans une utilisation multithreadée, la sortie de la fonction HMAC (openssl) est dédiée.
- Attribute : dans les valeurs des attributs, on échappe les éventuelles back quotes

* `LegendURL` : la fonction de copie d'une instance recopie bien le format et le href
* `LibtiffImage` : correction du calcul de nombre de tuile dans la largeur lors de la lecture d'une image dont la largeur est un multiple de la taille de la tuile
* `BoundingBox` : lorsque l'on met en phase une bbox, les 4 bords doivent être traités indépendemment les uns des autres (avec un calcul de phase pour chacun)
## [1.2.4] - 2023-12-06

### [Changed]
### Changed

* La variable d'environnement `ROK4_TMS_NO_CACHE` permet de désactiver le cache de chargement des TMS
* La variable d'environnement `ROK4_STYLES_NO_CACHE` permet de désactiver le cache de chargement des styles
- La variable d'environnement `ROK4_TMS_NO_CACHE` permet de désactiver le cache de chargement des TMS
- La variable d'environnement `ROK4_STYLES_NO_CACHE` permet de désactiver le cache de chargement des styles

## 1.1.2
### Fixed

### [Changed]
- `Cache` : les modifications dans le cache quand il n'est pas par thread (index des dalles, TMS et styles) se font en exclusion mutuelle (mutex lock et unlock)
- `Level` : Ajout de pixels de marge lors de la reprojection des données d'un niveau de pyramide
- `LibopenjpegImage` : la lecture des images JPEG 2000 tuilées recharge l'image à la lecture de chaque tuile
- `LegendURL` : la fonction de copie d'une instance recopie bien le format et le href
- `LibtiffImage` : correction du calcul de nombre de tuile dans la largeur lors de la lecture d'une image dont la largeur est un multiple de la taille de la tuile
- `BoundingBox` : lorsque l'on met en phase une bbox, les 4 bords doivent être traités indépendemment les uns des autres (avec un calcul de phase pour chacun)

* Le test d'existence d'un objet ou d'un fichier n'est plus une lecture de 1 octet mais une implémentation spécifique à chaque type
* Les TMS et les styles sont cherchés sur le stockage avec et sans extension JSON
## [1.1.2] - 2023-09-14

### [Fixed]
### Added

* Table
* Correction d'une typo dans l'écriture du metadata.json : filedsCount -> fieldsCount
* Style
* La valeur de nodata en sortie d'un style est la première valeur de la palette (et non la couleur pour la valeur 0)

## 1.1.1

### [Fixed]

* LibopenjpegImage
* Fixe sur la lecture des images à tuile unique suite au zonage

## 1.1.0

### [Added]

* LibtiffImage
- LibtiffImage
* Capacité à lire des images tuilées
* Capacité à lire des images avec palette

### [Changed]
### Changed

* LibopenjpegImage
- Le test d'existence d'un objet ou d'un fichier n'est plus une lecture de 1 octet mais une implémentation spécifique à chaque type
- Les TMS et les styles sont cherchés sur le stockage avec et sans extension JSON
- LibopenjpegImage
* Lecture des images à tuile unique par paquet de 256 lignes
* Lecture des images tuilées par tuile

### Fixed

## 1.0.3
- Table
* Correction d'une typo dans l'écriture du metadata.json : filedsCount -> fieldsCount
- Style
* La valeur de nodata en sortie d'un style est la première valeur de la palette (et non la couleur pour la valeur 0)
- LibopenjpegImage
* Fixe sur la lecture des images à tuile unique suite au zonage

## [1.0.3] - 2023-03-14

Les librairies sont gérées de manière indépendantes, conditionnées pour être installées en tant que dépendance dynamique. Le projet a son propre site, avec toutes les versions et leur documentation.

### [Added]
### Added

* Librairie, partie `utils` :
- Librairie, partie `utils` :
* Styles et TMS sont chargés dans un annuaire, qui connait le dossier de stockage des fichiers / objets les définissant
* Les pyramide sont chargées depuis leur descripteur, fichier ou objet
* Librairie, partie `storage` : gère un annuaire de contextes de stockages, fichier, Swift, S3 ou Ceph
* Librairie, partie `image` : permet la lecture et le calcul ligne par ligne
* Librairie, partie `datasource` : permet la lecture en une fois d'un buffer de donnée
* Librairie, partie `datasource` : permet la lecture par morceau d'un buffer de donnée
* Librairie, partie `processors` : gère plusieurs noyaux d'interpolation et la conversion de pixel

* Intégration continue :
- Librairie, partie `storage` : gère un annuaire de contextes de stockages, fichier, Swift, S3 ou Ceph
- Librairie, partie `image` : permet la lecture et le calcul ligne par ligne
- Librairie, partie `datasource` : permet la lecture en une fois d'un buffer de donnée
- Librairie, partie `datasource` : permet la lecture par morceau d'un buffer de donnée
- Librairie, partie `processors` : gère plusieurs noyaux d'interpolation et la conversion de pixel
- Intégration continue :
* Compilation du fichier librok4.so et conditionnement dans des paquets debian avec les headers, avec et sans la prise en charge du stockage ceph
* Jeu des tests unitaires
* Compilation de la documentation et publication sur la branche gh-pages

* Ajout du mode DEBUG à la compilation
- Ajout du mode DEBUG à la compilation

[2.0.6]: https://github.com/rok4/core-cpp/compare/2.0.5...HEAD
[2.0.6]: https://github.com/rok4/core-cpp/compare/2.0.5...2.0.6
[2.0.5]: https://github.com/rok4/core-cpp/compare/2.0.3...2.0.5
[2.0.3]: https://github.com/rok4/core-cpp/compare/2.0.2...2.0.3
[2.0.2]: https://github.com/rok4/core-cpp/compare/2.0.1...2.0.2
[2.0.1]: https://github.com/rok4/core-cpp/compare/1.4.0...2.0.1
[1.4.0]: https://github.com/rok4/core-cpp/compare/1.3.1...1.4.0
[1.3.1]: https://github.com/rok4/core-cpp/compare/1.2.4...1.3.1
[1.2.4]: https://github.com/rok4/core-cpp/compare/1.1.2...1.2.4
[1.1.2]: https://github.com/rok4/core-cpp/compare/1.0.3...1.1.2
[1.0.3]: https://github.com/rok4/core-cpp/releases/tag/1.0.3
Loading
Loading