|
1 | | -## 2.0.5 |
| 1 | +# Changelog |
2 | 2 |
|
3 | | -### [Fixed] |
| 3 | +Tous les changements sont consignés dans ce fichier. |
4 | 4 |
|
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/). |
6 | 6 |
|
7 | | -## 2.0.4 |
| 7 | +## [Unreleased] |
8 | 8 |
|
9 | | -### [Fixed] |
| 9 | +### Added |
10 | 10 |
|
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. |
12 | 17 |
|
13 | | -## 2.0.3 |
| 18 | +### Changed |
14 | 19 |
|
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. |
16 | 30 |
|
17 | | -* `TiffHeader` : la valeur de nodata est ajoutée dans le header des Geotiff |
| 31 | +### Deprecated |
| 32 | +### Removed |
| 33 | +### Fixed |
18 | 34 |
|
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 |
20 | 36 |
|
21 | | -* `Style` : gestion d'une valeur par défaut pour la demande de nodata, en entrée et en sortie |
| 37 | +### Security |
22 | 38 |
|
23 | | -## 2.0.2 |
| 39 | +## [2.0.6] - 2025-09-11 |
24 | 40 |
|
25 | | -### [Fixed] |
| 41 | +### Added |
26 | 42 |
|
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) |
29 | 44 |
|
| 45 | +### Changed |
30 | 46 |
|
31 | | -## 2.0.1 |
| 47 | +- Refonte du CHANGELOG au format [Keep a Changelog](https://keepachangelog.com/) |
32 | 48 |
|
33 | | -### [Added] |
| 49 | +## [2.0.5] - 2025-07-23 |
34 | 50 |
|
35 | | -* `Keyword` : ajout d'un exporteur JSON (API Tiles) |
36 | | -* `TileMatrixLimits` : ajout d'un exporteur JSON (API Tiles) |
| 51 | +### Fixed |
37 | 52 |
|
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 |
39 | 55 |
|
40 | | -### [Added] |
| 56 | +## [2.0.3] - 2025-04-08 |
41 | 57 |
|
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 |
45 | 59 |
|
46 | | -### [Changed] |
| 60 | +- `TiffHeader` : la valeur de nodata est ajoutée dans le header des Geotiff |
47 | 61 |
|
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 |
55 | 63 |
|
56 | | -### [Deprecated] |
| 64 | +- `Style` : gestion d'une valeur par défaut pour la demande de nodata, en entrée et en sortie |
57 | 65 |
|
58 | | -Liste de fonctionnalités dépréciées. |
| 66 | +## [2.0.2] - 2025-02-17 |
59 | 67 |
|
60 | | -### [Removed] |
| 68 | +### Fixed |
61 | 69 |
|
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) |
67 | 72 |
|
68 | | -### [Fixed] |
| 73 | +## [2.0.1] - 2024-10-01 |
69 | 74 |
|
70 | | -* Correction du nettoyage des annuaires de TMS et styles |
| 75 | +### Added |
71 | 76 |
|
| 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 |
72 | 82 |
|
73 | | -## 1.4.0 |
| 83 | +### Changed |
74 | 84 |
|
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 |
76 | 92 |
|
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 |
81 | 104 |
|
82 | | -## 1.3.1 |
| 105 | +## [1.4.0] - 2024-03-21 |
83 | 106 |
|
84 | | -### [Fixed] |
| 107 | +### Added |
85 | 108 |
|
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` |
87 | 113 |
|
88 | | -## 1.3.0 |
| 114 | +## [1.3.1] - 2024-03-14 |
89 | 115 |
|
90 | | -### [Added] |
| 116 | +### Added |
91 | 117 |
|
92 | | -* Gestion du multi cluster S3 : |
| 118 | +- Gestion du multi cluster S3 : |
93 | 119 | * nom du cluster = hôte du cluster avec le port (pas de protocole) |
94 | 120 | * Pour préciser le cluster auquel on s'adresse, le nom du bucket aura la forme `<nom du bucker>@<nom du cluster>` |
95 | 121 | * 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 |
96 | 122 | * **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 |
97 | 123 |
|
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 |
121 | 125 |
|
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 |
123 | 128 |
|
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 |
127 | 130 |
|
128 | | -### [Changed] |
| 131 | +### Changed |
129 | 132 |
|
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 |
132 | 135 |
|
133 | | -## 1.1.2 |
| 136 | +### Fixed |
134 | 137 |
|
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) |
136 | 144 |
|
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 |
139 | 146 |
|
140 | | -### [Fixed] |
| 147 | +### Added |
141 | 148 |
|
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 |
159 | 150 | * Capacité à lire des images tuilées |
160 | 151 | * Capacité à lire des images avec palette |
161 | 152 |
|
162 | | -### [Changed] |
| 153 | +### Changed |
163 | 154 |
|
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 |
165 | 158 | * Lecture des images à tuile unique par paquet de 256 lignes |
166 | 159 | * Lecture des images tuilées par tuile |
167 | 160 |
|
| 161 | +### Fixed |
168 | 162 |
|
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 |
170 | 171 |
|
171 | 172 | 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. |
172 | 173 |
|
173 | | -### [Added] |
| 174 | +### Added |
174 | 175 |
|
175 | | -* Librairie, partie `utils` : |
| 176 | +- Librairie, partie `utils` : |
176 | 177 | * Styles et TMS sont chargés dans un annuaire, qui connait le dossier de stockage des fichiers / objets les définissant |
177 | 178 | * 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 : |
185 | 185 | * Compilation du fichier librok4.so et conditionnement dans des paquets debian avec les headers, avec et sans la prise en charge du stockage ceph |
186 | 186 | * Jeu des tests unitaires |
187 | 187 | * 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