Skip to content

Commit 5cf112c

Browse files
authored
Merge pull request #59 from rok4/develop
Release 3.0.0
2 parents 3ea081e + 5705035 commit 5cf112c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+3480
-2526
lines changed

.github/release.yml

Lines changed: 0 additions & 24 deletions
This file was deleted.

.github/workflows/build-and-release.yaml

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
tags:
66
- '**'
77

8-
jobs:
8+
jobs:
99

1010
create_release:
1111
name: Create Release
@@ -17,14 +17,38 @@ jobs:
1717
- name: Checkout project
1818
uses: actions/checkout@v3
1919

20+
- name: Update changelog
21+
uses: thomaseizinger/keep-a-changelog-new-release@v2
22+
with:
23+
tag: ${{ github.ref_name }}
24+
25+
- name: Commit changelog
26+
run: |
27+
git config user.name github-actions
28+
git config user.email github-actions@github.com
29+
git add CHANGELOG.md
30+
git commit -m "Versionnement du changelog"
31+
git push
32+
33+
- name: Get latest release info
34+
id: query_release_info
35+
uses: release-flow/keep-a-changelog-action@v2
36+
with:
37+
command: query
38+
version: latest
39+
40+
- name: Write release notes
41+
run: |
42+
echo "echo {{ query_release_info.outputs.release-notes }} >notes.txt"
43+
2044
- name: Create Release
2145
id: create_release
2246
uses: ncipollo/release-action@v1
2347
with:
2448
token: ${{ secrets.GITHUB_TOKEN }}
2549
tag: ${{ github.ref_name }}
2650
name: Release ${{ github.ref_name }}
27-
generateReleaseNotes: true
51+
bodyFile: notes.txt
2852
draft: false
2953
prerelease: false
3054

CHANGELOG.md

Lines changed: 131 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -1,189 +1,200 @@
1-
## 2.0.5
1+
# Changelog
22

3-
### [Fixed]
3+
Tous les changements sont consignés dans ce fichier.
44

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

7-
## 2.0.4
7+
## [Unreleased]
88

9-
### [Fixed]
9+
### Added
1010

11-
* `Merge` : correction du nombre de méthode
11+
- `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.
12+
- `Terrainrgb` : Ajout d'un style terrainrgb pour transformer les MNT en format Terrain RGB.
13+
- `Style` : Ajout d'une fonction permettant de savoir si une palette existe ou non.
14+
- Ajout du traitement en cas de style terrainrgb. Il doit être l'unique style déclaré pour fonctionner.
15+
- `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.
16+
- `StyledImage` : Ajout du traitement pour gérer le style Terrainrgb.
1217

13-
## 2.0.3
18+
### Changed
1419

15-
### [Added]
20+
- `Cache` : Export de toutes les classes implémentées dans Cache dans leurs propres fichiers. Les fichiers ajoutés sont :
21+
* `CurlPool`
22+
* `ProjPool`
23+
* `StoragePool`
24+
* `IndexCache`
25+
* `IndexElement`
26+
* `TmsBook`
27+
* `StyleBook`
28+
* `CrsBook`
29+
- `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.
1630

17-
* `TiffHeader` : la valeur de nodata est ajoutée dans le header des Geotiff
31+
### Deprecated
32+
### Removed
33+
### Fixed
1834

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

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

23-
## 2.0.2
39+
## [2.0.6] - 2025-09-11
2440

25-
### [Fixed]
41+
### Added
2642

27-
* `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)
28-
* `S3Context` : on retourne bien false lorsqu'une erreur est rencontrée lors du flush (close_to_write)
43+
- `S3Context` et `SwiftContext` : possibilité de définir un timeout via la variable d'environnement `ROK4_NETWORK_TIMEOUT` (valeur à fournir en seconde)
2944

45+
### Changed
3046

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

33-
### [Added]
49+
## [2.0.5] - 2025-07-23
3450

35-
* `Keyword` : ajout d'un exporteur JSON (API Tiles)
36-
* `TileMatrixLimits` : ajout d'un exporteur JSON (API Tiles)
51+
### Fixed
3752

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

40-
### [Added]
56+
## [2.0.3] - 2025-04-08
4157

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

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

48-
* Passage complet en snake case
49-
* Le format de canal contient le nombre de bits d'encodage
50-
* Renommage StyledImage -> PaletteImage
51-
* Renommage lzwEncoder -> LzwCompressor
52-
* Renommage lzwDecoder -> LzwUncompressor
53-
* Renommage pkbEncoder -> PkbCompressor
54-
* Renommage pkbDecoder -> PkbUncompressor
62+
### Fixed
5563

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

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

60-
### [Removed]
68+
### Fixed
6169

62-
* Suppression de la notion 'inspire' dans la gestion des styles
63-
* Suppression de la classe ConvertedChannelsImage
64-
* Suppression de la gestion de la compilation avec la librairie Kakadu
65-
* Suppression des factory pour les classes filles de Image
66-
* Suppression de la fonctionnalité de crop dans Rok4Image
70+
- `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)
71+
- `S3Context` : on retourne bien false lorsqu'une erreur est rencontrée lors du flush (close_to_write)
6772

68-
### [Fixed]
73+
## [2.0.1] - 2024-10-01
6974

70-
* Correction du nettoyage des annuaires de TMS et styles
75+
### Added
7176

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

73-
## 1.4.0
83+
### Changed
7484

75-
### [Added]
85+
- Passage complet en snake case
86+
- Le format de canal contient le nombre de bits d'encodage
87+
- Renommage StyledImage -> PaletteImage
88+
- Renommage lzwEncoder -> LzwCompressor
89+
- Renommage lzwDecoder -> LzwUncompressor
90+
- Renommage pkbEncoder -> PkbCompressor
91+
- Renommage pkbDecoder -> PkbUncompressor
7692

77-
* Stockage objet (S3, Swift et Ceph)
78-
* Possibilité de définir un nombre de tentatives pour les lectures (1 par défaut) : variable d'environnement `ROK4_OBJECT_READ_ATTEMPTS`
79-
* Possibilité de définir un nombre de tentatives pour les écritures (1 par défaut) : variable d'environnement `ROK4_OBJECT_WRITE_ATTEMPTS`
80-
* Possibilité de définir un temps d'attente, en secondes, entre les tentatives (5 par défaut) : variable d'environnement `ROK4_OBJECT_ATTEMPTS_WAIT`
93+
### Removed
94+
95+
- Suppression de la notion 'inspire' dans la gestion des styles
96+
- Suppression de la classe ConvertedChannelsImage
97+
- Suppression de la gestion de la compilation avec la librairie Kakadu
98+
- Suppression des factory pour les classes filles de Image
99+
- Suppression de la fonctionnalité de crop dans Rok4Image
100+
101+
### Fixed
102+
103+
- Correction du nettoyage des annuaires de TMS et styles
81104

82-
## 1.3.1
105+
## [1.4.0] - 2024-03-21
83106

84-
### [Fixed]
107+
### Added
85108

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

88-
## 1.3.0
114+
## [1.3.1] - 2024-03-14
89115

90-
### [Added]
116+
### Added
91117

92-
* Gestion du multi cluster S3 :
118+
- Gestion du multi cluster S3 :
93119
* nom du cluster = hôte du cluster avec le port (pas de protocole)
94120
* Pour préciser le cluster auquel on s'adresse, le nom du bucket aura la forme `<nom du bucker>@<nom du cluster>`
95121
* 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
96122
* **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
97123

98-
### [Fixed]
99-
100-
* Attribute : dans les valeurs des attributs, on échappe les éventuelles back quotes
101-
102-
## 1.2.4
103-
104-
### [Fixed]
105-
106-
* `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)
107-
108-
## 1.2.3
109-
110-
### [Fixed]
111-
112-
* `Level` : Ajout de pixels de marge lors de la reprojection des données d'un niveau de pyramide
113-
114-
## 1.2.2
115-
116-
### [Fixed]
117-
118-
* `LibopenjpegImage` : la lecture des images JPEG 2000 tuilées recharge l'image à la lecture de chaque tuile
119-
120-
## 1.2.1
124+
### Fixed
121125

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

124-
* `LegendURL` : la fonction de copie d'une instance recopie bien le format et le href
125-
* `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
126-
* `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)
129+
## [1.2.4] - 2023-12-06
127130

128-
### [Changed]
131+
### Changed
129132

130-
* La variable d'environnement `ROK4_TMS_NO_CACHE` permet de désactiver le cache de chargement des TMS
131-
* La variable d'environnement `ROK4_STYLES_NO_CACHE` permet de désactiver le cache de chargement des styles
133+
- La variable d'environnement `ROK4_TMS_NO_CACHE` permet de désactiver le cache de chargement des TMS
134+
- La variable d'environnement `ROK4_STYLES_NO_CACHE` permet de désactiver le cache de chargement des styles
132135

133-
## 1.1.2
136+
### Fixed
134137

135-
### [Changed]
138+
- `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)
139+
- `Level` : Ajout de pixels de marge lors de la reprojection des données d'un niveau de pyramide
140+
- `LibopenjpegImage` : la lecture des images JPEG 2000 tuilées recharge l'image à la lecture de chaque tuile
141+
- `LegendURL` : la fonction de copie d'une instance recopie bien le format et le href
142+
- `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
143+
- `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)
136144

137-
* 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
138-
* Les TMS et les styles sont cherchés sur le stockage avec et sans extension JSON
145+
## [1.1.2] - 2023-09-14
139146

140-
### [Fixed]
147+
### Added
141148

142-
* Table
143-
* Correction d'une typo dans l'écriture du metadata.json : filedsCount -> fieldsCount
144-
* Style
145-
* 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)
146-
147-
## 1.1.1
148-
149-
### [Fixed]
150-
151-
* LibopenjpegImage
152-
* Fixe sur la lecture des images à tuile unique suite au zonage
153-
154-
## 1.1.0
155-
156-
### [Added]
157-
158-
* LibtiffImage
149+
- LibtiffImage
159150
* Capacité à lire des images tuilées
160151
* Capacité à lire des images avec palette
161152

162-
### [Changed]
153+
### Changed
163154

164-
* LibopenjpegImage
155+
- 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
156+
- Les TMS et les styles sont cherchés sur le stockage avec et sans extension JSON
157+
- LibopenjpegImage
165158
* Lecture des images à tuile unique par paquet de 256 lignes
166159
* Lecture des images tuilées par tuile
167160

161+
### Fixed
168162

169-
## 1.0.3
163+
- Table
164+
* Correction d'une typo dans l'écriture du metadata.json : filedsCount -> fieldsCount
165+
- Style
166+
* 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)
167+
- LibopenjpegImage
168+
* Fixe sur la lecture des images à tuile unique suite au zonage
169+
170+
## [1.0.3] - 2023-03-14
170171

171172
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.
172173

173-
### [Added]
174+
### Added
174175

175-
* Librairie, partie `utils` :
176+
- Librairie, partie `utils` :
176177
* Styles et TMS sont chargés dans un annuaire, qui connait le dossier de stockage des fichiers / objets les définissant
177178
* Les pyramide sont chargées depuis leur descripteur, fichier ou objet
178-
* Librairie, partie `storage` : gère un annuaire de contextes de stockages, fichier, Swift, S3 ou Ceph
179-
* Librairie, partie `image` : permet la lecture et le calcul ligne par ligne
180-
* Librairie, partie `datasource` : permet la lecture en une fois d'un buffer de donnée
181-
* Librairie, partie `datasource` : permet la lecture par morceau d'un buffer de donnée
182-
* Librairie, partie `processors` : gère plusieurs noyaux d'interpolation et la conversion de pixel
183-
184-
* Intégration continue :
179+
- Librairie, partie `storage` : gère un annuaire de contextes de stockages, fichier, Swift, S3 ou Ceph
180+
- Librairie, partie `image` : permet la lecture et le calcul ligne par ligne
181+
- Librairie, partie `datasource` : permet la lecture en une fois d'un buffer de donnée
182+
- Librairie, partie `datasource` : permet la lecture par morceau d'un buffer de donnée
183+
- Librairie, partie `processors` : gère plusieurs noyaux d'interpolation et la conversion de pixel
184+
- Intégration continue :
185185
* Compilation du fichier librok4.so et conditionnement dans des paquets debian avec les headers, avec et sans la prise en charge du stockage ceph
186186
* Jeu des tests unitaires
187187
* Compilation de la documentation et publication sur la branche gh-pages
188-
189-
* Ajout du mode DEBUG à la compilation
188+
- Ajout du mode DEBUG à la compilation
189+
190+
[2.0.6]: https://github.com/rok4/core-cpp/compare/2.0.5...HEAD
191+
[2.0.6]: https://github.com/rok4/core-cpp/compare/2.0.5...2.0.6
192+
[2.0.5]: https://github.com/rok4/core-cpp/compare/2.0.3...2.0.5
193+
[2.0.3]: https://github.com/rok4/core-cpp/compare/2.0.2...2.0.3
194+
[2.0.2]: https://github.com/rok4/core-cpp/compare/2.0.1...2.0.2
195+
[2.0.1]: https://github.com/rok4/core-cpp/compare/1.4.0...2.0.1
196+
[1.4.0]: https://github.com/rok4/core-cpp/compare/1.3.1...1.4.0
197+
[1.3.1]: https://github.com/rok4/core-cpp/compare/1.2.4...1.3.1
198+
[1.2.4]: https://github.com/rok4/core-cpp/compare/1.1.2...1.2.4
199+
[1.1.2]: https://github.com/rok4/core-cpp/compare/1.0.3...1.1.2
200+
[1.0.3]: https://github.com/rok4/core-cpp/releases/tag/1.0.3

0 commit comments

Comments
 (0)