|
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 | +- `S3Context` et `SwiftContext` : possibilité de définir un timeout via la variable d'environnement `ROK4_NETWORK_TIMEOUT` (valeur à fournir en seconde) |
12 | 12 |
|
13 | | -## 2.0.3 |
| 13 | +### Changed |
14 | 14 |
|
15 | | -### [Added] |
| 15 | +- Refonte du CHANGELOG au format [Keep a Changelog](https://keepachangelog.com/) |
16 | 16 |
|
17 | | -* `TiffHeader` : la valeur de nodata est ajoutée dans le header des Geotiff |
| 17 | +## [2.0.5] - 2025-07-23 |
18 | 18 |
|
19 | | -### [Fixed] |
| 19 | +### Fixed |
20 | 20 |
|
21 | | -* `Style` : gestion d'une valeur par défaut pour la demande de nodata, en entrée et en sortie |
| 21 | +- `LibtiffImage` : Gestion des tiff jpeg de photometrie YCbCr avec les tiffs palettes dans le _getline (élargissement du test) |
| 22 | +- `Merge` : correction du nombre de méthode |
22 | 23 |
|
23 | | -## 2.0.2 |
| 24 | +## [2.0.3] - 2025-04-08 |
24 | 25 |
|
25 | | -### [Fixed] |
| 26 | +### Added |
26 | 27 |
|
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) |
| 28 | +- `TiffHeader` : la valeur de nodata est ajoutée dans le header des Geotiff |
29 | 29 |
|
| 30 | +### Fixed |
30 | 31 |
|
31 | | -## 2.0.1 |
| 32 | +- `Style` : gestion d'une valeur par défaut pour la demande de nodata, en entrée et en sortie |
32 | 33 |
|
33 | | -### [Added] |
| 34 | +## [2.0.2] - 2025-02-17 |
34 | 35 |
|
35 | | -* `Keyword` : ajout d'un exporteur JSON (API Tiles) |
36 | | -* `TileMatrixLimits` : ajout d'un exporteur JSON (API Tiles) |
| 36 | +### Fixed |
37 | 37 |
|
38 | | -## 2.0.0 |
| 38 | +- `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) |
| 39 | +- `S3Context` : on retourne bien false lorsqu'une erreur est rencontrée lors du flush (close_to_write) |
39 | 40 |
|
40 | | -### [Added] |
| 41 | +## [2.0.1] - 2024-10-01 |
41 | 42 |
|
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 |
| 43 | +### Added |
45 | 44 |
|
46 | | -### [Changed] |
| 45 | +- `Keyword` : ajout d'un exporteur JSON (API Tiles) |
| 46 | +- `TileMatrixLimits` : ajout d'un exporteur JSON (API Tiles) |
| 47 | +- Internalisation de la lib json |
| 48 | +- Ajout d'exporteur XML (via la lib boost) pour les entités Style, BoundingBox, Keyword, LegendURL, TileMatrixLimit et Style |
| 49 | +- Création d'un annuaire pour les CRS pour éviter les créations en double |
47 | 50 |
|
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 |
| 51 | +### Changed |
55 | 52 |
|
56 | | -### [Deprecated] |
| 53 | +- Passage complet en snake case |
| 54 | +- Le format de canal contient le nombre de bits d'encodage |
| 55 | +- Renommage StyledImage -> PaletteImage |
| 56 | +- Renommage lzwEncoder -> LzwCompressor |
| 57 | +- Renommage lzwDecoder -> LzwUncompressor |
| 58 | +- Renommage pkbEncoder -> PkbCompressor |
| 59 | +- Renommage pkbDecoder -> PkbUncompressor |
57 | 60 |
|
58 | | -Liste de fonctionnalités dépréciées. |
| 61 | +### Removed |
59 | 62 |
|
60 | | -### [Removed] |
| 63 | +- Suppression de la notion 'inspire' dans la gestion des styles |
| 64 | +- Suppression de la classe ConvertedChannelsImage |
| 65 | +- Suppression de la gestion de la compilation avec la librairie Kakadu |
| 66 | +- Suppression des factory pour les classes filles de Image |
| 67 | +- Suppression de la fonctionnalité de crop dans Rok4Image |
61 | 68 |
|
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 |
| 69 | +### Fixed |
67 | 70 |
|
68 | | -### [Fixed] |
| 71 | +- Correction du nettoyage des annuaires de TMS et styles |
69 | 72 |
|
70 | | -* Correction du nettoyage des annuaires de TMS et styles |
| 73 | +## [1.4.0] - 2024-03-21 |
71 | 74 |
|
| 75 | +### Added |
72 | 76 |
|
73 | | -## 1.4.0 |
74 | | - |
75 | | -### [Added] |
76 | | - |
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` |
| 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 | 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` |
81 | 81 |
|
82 | | -## 1.3.1 |
83 | | - |
84 | | -### [Fixed] |
85 | | - |
86 | | -* `S3Context` : pour éviter des conflits dans une utilisation multithreadée, la sortie de la fonction HMAC (openssl) est dédiée. |
| 82 | +## [1.3.1] - 2024-03-14 |
87 | 83 |
|
88 | | -## 1.3.0 |
| 84 | +### Added |
89 | 85 |
|
90 | | -### [Added] |
91 | | - |
92 | | -* Gestion du multi cluster S3 : |
| 86 | +- Gestion du multi cluster S3 : |
93 | 87 | * nom du cluster = hôte du cluster avec le port (pas de protocole) |
94 | 88 | * Pour préciser le cluster auquel on s'adresse, le nom du bucket aura la forme `<nom du bucker>@<nom du cluster>` |
95 | 89 | * 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 | 90 | * **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 | 91 |
|
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 |
| 92 | +### Fixed |
121 | 93 |
|
122 | | -### [Fixed] |
| 94 | +- `S3Context` : pour éviter des conflits dans une utilisation multithreadée, la sortie de la fonction HMAC (openssl) est dédiée. |
| 95 | +- Attribute : dans les valeurs des attributs, on échappe les éventuelles back quotes |
123 | 96 |
|
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) |
| 97 | +## [1.2.4] - 2023-12-06 |
127 | 98 |
|
128 | | -### [Changed] |
| 99 | +### Changed |
129 | 100 |
|
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 |
| 101 | +- La variable d'environnement `ROK4_TMS_NO_CACHE` permet de désactiver le cache de chargement des TMS |
| 102 | +- La variable d'environnement `ROK4_STYLES_NO_CACHE` permet de désactiver le cache de chargement des styles |
132 | 103 |
|
133 | | -## 1.1.2 |
| 104 | +### Fixed |
134 | 105 |
|
135 | | -### [Changed] |
| 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 | +- `Level` : Ajout de pixels de marge lors de la reprojection des données d'un niveau de pyramide |
| 108 | +- `LibopenjpegImage` : la lecture des images JPEG 2000 tuilées recharge l'image à la lecture de chaque tuile |
| 109 | +- `LegendURL` : la fonction de copie d'une instance recopie bien le format et le href |
| 110 | +- `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 |
| 111 | +- `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 | 112 |
|
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 |
| 113 | +## [1.1.2] - 2023-09-14 |
139 | 114 |
|
140 | | -### [Fixed] |
| 115 | +### Added |
141 | 116 |
|
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 |
| 117 | +- LibtiffImage |
159 | 118 | * Capacité à lire des images tuilées |
160 | 119 | * Capacité à lire des images avec palette |
161 | 120 |
|
162 | | -### [Changed] |
| 121 | +### Changed |
163 | 122 |
|
164 | | -* LibopenjpegImage |
| 123 | +- 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 |
| 124 | +- Les TMS et les styles sont cherchés sur le stockage avec et sans extension JSON |
| 125 | +- LibopenjpegImage |
165 | 126 | * Lecture des images à tuile unique par paquet de 256 lignes |
166 | 127 | * Lecture des images tuilées par tuile |
167 | 128 |
|
| 129 | +### Fixed |
168 | 130 |
|
169 | | -## 1.0.3 |
| 131 | +- Table |
| 132 | + * Correction d'une typo dans l'écriture du metadata.json : filedsCount -> fieldsCount |
| 133 | +- Style |
| 134 | + * 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) |
| 135 | +- LibopenjpegImage |
| 136 | + * Fixe sur la lecture des images à tuile unique suite au zonage |
| 137 | + |
| 138 | +## [1.0.3] - 2023-03-14 |
170 | 139 |
|
171 | 140 | 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 | 141 |
|
173 | | -### [Added] |
| 142 | +### Added |
174 | 143 |
|
175 | | -* Librairie, partie `utils` : |
| 144 | +- Librairie, partie `utils` : |
176 | 145 | * Styles et TMS sont chargés dans un annuaire, qui connait le dossier de stockage des fichiers / objets les définissant |
177 | 146 | * 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 : |
| 147 | +- Librairie, partie `storage` : gère un annuaire de contextes de stockages, fichier, Swift, S3 ou Ceph |
| 148 | +- Librairie, partie `image` : permet la lecture et le calcul ligne par ligne |
| 149 | +- Librairie, partie `datasource` : permet la lecture en une fois d'un buffer de donnée |
| 150 | +- Librairie, partie `datasource` : permet la lecture par morceau d'un buffer de donnée |
| 151 | +- Librairie, partie `processors` : gère plusieurs noyaux d'interpolation et la conversion de pixel |
| 152 | +- Intégration continue : |
185 | 153 | * 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 | 154 | * Jeu des tests unitaires |
187 | 155 | * Compilation de la documentation et publication sur la branche gh-pages |
188 | | - |
189 | | -* Ajout du mode DEBUG à la compilation |
| 156 | +- Ajout du mode DEBUG à la compilation |
| 157 | + |
| 158 | +[Unreleased]: https://github.com/rok4/core-cpp/compare/v2.0.5...HEAD |
| 159 | +[2.0.5]: https://github.com/rok4/core-cpp/compare/v2.0.3...v2.0.5 |
| 160 | +[2.0.3]: https://github.com/rok4/core-cpp/compare/v2.0.2...v2.0.3 |
| 161 | +[2.0.2]: https://github.com/rok4/core-cpp/compare/v2.0.1...v2.0.2 |
| 162 | +[2.0.1]: https://github.com/rok4/core-cpp/compare/v1.4.0...v2.0.1 |
| 163 | +[1.4.0]: https://github.com/rok4/core-cpp/compare/v1.3.1...v1.4.0 |
| 164 | +[1.3.1]: https://github.com/rok4/core-cpp/compare/v1.2.4...v1.3.1 |
| 165 | +[1.2.4]: https://github.com/rok4/core-cpp/compare/v1.1.2...v1.2.4 |
| 166 | +[1.1.2]: https://github.com/rok4/core-cpp/compare/v1.0.3...v1.1.2 |
| 167 | +[1.0.3]: https://github.com/rok4/core-cpp/releases/tag/v1.0.3 |
0 commit comments