|
2 | 2 |
|
3 | 3 |
|
4 | 4 |
|
| 5 | +## v5.0.0-rc.2 (2023-10-20) |
| 6 | + |
| 7 | +### Ci |
| 8 | + |
| 9 | +* ci: revisit coverage reporting |
| 10 | + |
| 11 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`bc8e30b`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/bc8e30b32163db3ffd31a7c96460a907637b1794)) |
| 12 | + |
| 13 | +* ci: revisit coverage reporting |
| 14 | + |
| 15 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`2967f28`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/2967f284cf7e5ab4da69406d599d890b07e62ce1)) |
| 16 | + |
| 17 | +### Documentation |
| 18 | + |
| 19 | +* docs: update title |
| 20 | + |
| 21 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@owasp.org> ([`9373afc`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/9373afc1b94542680c324bacbc59e7b3a015f721)) |
| 22 | + |
| 23 | +### Feature |
| 24 | + |
| 25 | +* feat: v5.0.0-rc.2 |
| 26 | + |
| 27 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`e298726`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/e298726a0a62aee5e1988cd3a2dd230dfbda95f8)) |
| 28 | + |
| 29 | +### Style |
| 30 | + |
| 31 | +* style: qa |
| 32 | + |
| 33 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`a2af2ed`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/a2af2eddf2fbfc2e8fbf407527c07877961dcedd)) |
| 34 | + |
| 35 | +* style: streamline code quality (#472) |
| 36 | + |
| 37 | +- raised some dev tools |
| 38 | +- added more quality checkers and rules |
| 39 | +- documented and applied additional code standards |
| 40 | + |
| 41 | +--------- |
| 42 | + |
| 43 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`bb0f7a5`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/bb0f7a5d3610ffcd035ea0b89742225dea5abce9)) |
| 44 | + |
| 45 | +### Unknown |
| 46 | + |
| 47 | +* reduce imports |
| 48 | + |
| 49 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`d09ac36`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/d09ac3685dda97a054be7e0655e95c5b6356057d)) |
| 50 | + |
| 51 | +* Merge remote-tracking branch 'origin/main' into 5.0.0-dev ([`c4f7281`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/c4f7281b09100208f6b5bc6831344052962e95c4)) |
| 52 | + |
| 53 | + |
5 | 54 | ## v4.2.3 (2023-10-16)
|
6 | 55 |
|
7 | 56 | ### Chore
|
8 | 57 |
|
| 58 | +* chore: revert changelog |
| 59 | + |
| 60 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`a911106`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/a911106d09a7b5538e5ae77edf4fc4c2122f1f8b)) |
| 61 | + |
| 62 | +### Fix |
| 63 | + |
| 64 | +* fix: SPDX-expression-validation internal crashes are cought and handled (#471) |
| 65 | + |
| 66 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`5fa66a0`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/5fa66a043818eb5747dbd630496c6d31f818c0ab)) |
| 67 | + |
| 68 | +### Refactor |
| 69 | + |
| 70 | +* refactor(DX): rename `get_instance()` (#469) |
| 71 | + |
| 72 | +- deprecate function `output.get_instance()` |
| 73 | +- add function `outout.make_outputter()` |
| 74 | +- rename function `validation.get_instance()` -> `validation.make_schemabased_validator()` |
| 75 | +- rename function `validation.schema.get_instance()` -> `validation.make_schemabased_validator()` |
| 76 | + |
| 77 | +--------- |
| 78 | + |
| 79 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`2a2b2dd`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/2a2b2dd509100eea5ec3153e1ec10ff5dda6f269)) |
| 80 | + |
| 81 | +* refactor: schema based validator (#468) |
| 82 | + |
| 83 | +- restructured validators, to enable possible non-schema-based validation. |
| 84 | +- optimized `validation.schema.get_instance()` |
| 85 | +- optimized `output.get_instance()` |
| 86 | + |
| 87 | +--------- |
| 88 | + |
| 89 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`65e79cf`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/65e79cfeb4fed3e31f85a4ec6d06215988a3a6d1)) |
| 90 | + |
| 91 | +### Unknown |
| 92 | + |
| 93 | +* tidy |
| 94 | + |
| 95 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`6316f09`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/6316f094552e8bbd38777bc66a17c5546f2b7d14)) |
| 96 | + |
| 97 | +* Merge branch 'main' into 5.0.0-dev ([`55f6f4d`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/55f6f4d0ad23189ce2bfce7ed7380e92470ac8b7)) |
| 98 | + |
| 99 | + |
| 100 | +## v5.0.0-rc.1 (2023-10-11) |
| 101 | + |
| 102 | +### Breaking |
| 103 | + |
| 104 | +* chore!: bump major version to v5 |
| 105 | + |
| 106 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`bae8a84`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/bae8a84e7aa329780f91f49212c15f4d8c13ddcb)) |
| 107 | + |
| 108 | +### Chore |
| 109 | + |
| 110 | +* chore: revisit license headers |
| 111 | + |
| 112 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`1e963bd`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/1e963bd3d7e6c7d9437e41a34ecd622e0d32f3d8)) |
| 113 | + |
| 114 | +* chore: clean deps |
| 115 | + |
| 116 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`ac6ad0e`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/ac6ad0ed5b5933f03d1132c3bbce0ada1915fc40)) |
| 117 | + |
| 118 | +* chore: remove encoding hint (#459) |
| 119 | + |
| 120 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`37219c3`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/37219c321ac7ce5b507a0c0a74776f8204b400bf)) |
| 121 | + |
9 | 122 | * chore: Update CONTRIBUTING.md
|
10 | 123 |
|
11 | 124 | Signed-off-by: Jan Kowalleck <jan.kowalleck@owasp.org> ([`0ebaa21`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/0ebaa216d43a1389362dbdb33f9b49f43a21ab66))
|
12 | 125 |
|
| 126 | +* chore: config sem-release |
| 127 | + |
| 128 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`839fe11`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/839fe114bafac6117879175eb54a8759b7ef8963)) |
| 129 | + |
| 130 | +* chore: sem-release config |
| 131 | + |
| 132 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`18b4eca`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/18b4eca2c0fe2a2b4f1ca79976719c1afa0816bc)) |
| 133 | + |
| 134 | +* chore: absolute tet imports |
| 135 | + |
| 136 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`39e0eb9`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/39e0eb9af29a13e1cad6a073e5eb20955e492484)) |
| 137 | + |
| 138 | +* chore(build): test before release |
| 139 | + |
| 140 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`5cb695e`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/5cb695ebf9989f9bdefaa6823f5814d5c2fe9998)) |
| 141 | + |
| 142 | +* chore: init 5.0.0-dev |
| 143 | + |
| 144 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`0a3ae26`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/0a3ae26f8fe50e1dc03fb72fb7fdba51654c7f8b)) |
| 145 | + |
13 | 146 | ### Ci
|
14 | 147 |
|
15 | 148 | * ci: publish coverage report to codacy (#439)
|
16 | 149 |
|
17 | 150 | Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`0012a82`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/0012a82382f9f33831a80aa0e26c0cbb7fd8984b))
|
18 | 151 |
|
| 152 | +### Documentation |
| 153 | + |
| 154 | +* docs: fix hilighter |
| 155 | + |
| 156 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`9d49280`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/9d49280b680a4f8a7c4b8795f35928584e29baee)) |
| 157 | + |
| 158 | +* docs: fix typo |
| 159 | + |
| 160 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@owasp.org> ([`6adc98f`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/6adc98f66da94b7bac987bc5b25da7099498fe3a)) |
| 161 | + |
| 162 | +### Feature |
| 163 | + |
| 164 | +* feat: support python 3.12 (#460) |
| 165 | + |
| 166 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`eaba7a0`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/eaba7a048de190bce0797fb9ce40c4e2de49c5d9)) |
| 167 | + |
| 168 | +* feat: options for beautiful output (#458) |
| 169 | + |
| 170 | +add indention to outputters. this may come at a cost! |
| 171 | + |
| 172 | + |
| 173 | +Breaking Changes |
| 174 | +------------------ |
| 175 | +* abstract Method `output.BaseOutput.output_as_string()` got new optional kwarg `indent` |
| 176 | +* abstract Method `output.BaseOutput.output_as_string()` accepts arbitrary kwargs |
| 177 | + |
| 178 | +Changed |
| 179 | +---------- |
| 180 | +* XML output uses a default namespace, which makes results smaller. |
| 181 | + |
| 182 | + |
| 183 | +Added |
| 184 | +------------------ |
| 185 | +* All outputters' method `output_as_string()` got new optional kwarg `indent` |
| 186 | +* All outputters' method `output_as_string()` accepts arbitrary kwargs |
| 187 | +* All outputters' method `output_to_file()` got new optional kwarg `indent` |
| 188 | +* All outputters' method `output_to_file()` accepts arbitrary kwargs |
| 189 | + |
| 190 | +----- |
| 191 | + |
| 192 | +- [x] implementation |
| 193 | +- [x] tests (snapshot binary compare; structural equal compare) |
| 194 | + |
| 195 | +----- |
| 196 | + |
| 197 | +enables https://github.com/CycloneDX/cyclonedx-python/issues/424 |
| 198 | +fixes #437 |
| 199 | +fixes #438 |
| 200 | +supersedes #449 |
| 201 | + |
| 202 | +--------- |
| 203 | + |
| 204 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`3bcd9e9`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/3bcd9e99a58b74c9dc1fc474b468e67fc92fb7c4)) |
| 205 | + |
| 206 | +* feat: easy access validators (#448) |
| 207 | + |
| 208 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`1c9ea9e`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/1c9ea9e22e53933347a8f366c5fc06febe811757)) |
| 209 | + |
| 210 | +* feat: add CycloneDX document validators to public API (#433) |
| 211 | + |
| 212 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`a4f5ec5`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/a4f5ec5d63d576c04bcef5c0b6641f6c47164cfb)) |
| 213 | + |
19 | 214 | ### Fix
|
20 | 215 |
|
21 |
| -* fix: SPDX-expression-validation internal crashes are cought and handled (#471) |
| 216 | +* fix: multiple licenses issue #365 (#466) |
22 | 217 |
|
23 |
| -Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`5fa66a0`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/5fa66a043818eb5747dbd630496c6d31f818c0ab)) |
| 218 | +breaking changes |
| 219 | +------------------ |
| 220 | +* Reworked license related models and collections |
| 221 | +* API |
| 222 | + * Removed class `factory.license.LicenseChoiceFactory` |
| 223 | + The old functionality was integrated into `factory.license.LicenseFactory`. |
| 224 | + * Method `factory.license.LicenseFactory.make_from_string()`'s parameter `name_or_spdx` was renamed to `value` |
| 225 | + * Method `factory.license.LicenseFactory.make_from_string()`'s return value can also be a `LicenseExpression` |
| 226 | + The behavior imitates the old `factory.license.LicenseChoiceFactory.make_from_string()` |
| 227 | + * Renamed class `module.License` to `module.license.DisjunctliveLicense` |
| 228 | + * Removed class `module.LicenseChoice` |
| 229 | + Use dedicated classes `module.license.DisjunctliveLicense` and `module.license.LicenseExpression` instead |
| 230 | + * All occurrences of `models.LicenseChoice` were replaced by `models.licenses.License` |
| 231 | + * All occurrences of `SortedSet[LicenseChoice]` were specialized to `models.license.LicenseRepository` |
| 232 | + |
| 233 | + |
| 234 | +fixes |
| 235 | +------------------ |
| 236 | +* serialization of multy-licenses #365 |
| 237 | + |
| 238 | +added |
| 239 | +------------------ |
| 240 | +* API |
| 241 | + * Method `factory.license.LicenseFactory.make_with_expression()` |
| 242 | + * Class `model.license.DisjunctiveLicense` |
| 243 | + * Class `model.license.LicenseExpression` |
| 244 | + * Class `model.license.LicenseRepository` |
| 245 | + * Class `serialization.LicenseRepositoryHelper` |
| 246 | + |
| 247 | +tests |
| 248 | +------------------ |
| 249 | +* added regression test for bug #365 |
| 250 | + |
| 251 | +misc |
| 252 | +------------------ |
| 253 | +* raised dependency `py-serializable@^9.15` |
| 254 | + |
| 255 | + |
| 256 | + |
| 257 | +---- |
| 258 | + |
| 259 | +fixes #365 |
| 260 | + |
| 261 | +~~BLOCKED by a feature request to serializer: <https://github.com/madpah/serializable/pull/32>~~ |
| 262 | + |
| 263 | + |
| 264 | +--------- |
| 265 | + |
| 266 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`6770786`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/67707864ac0f1b27bac166a8fd537ea38523fe6f)) |
| 267 | + |
| 268 | +* fix: typing for `kwargs` (#462) |
| 269 | + |
| 270 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`2240b4d`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/2240b4dda824c13bc563bce1574dffe563016ac2)) |
| 271 | + |
| 272 | +* fix: tuple stuff (#461) |
| 273 | + |
| 274 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`84c6504`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/84c6504fc92d1207135f7719b6b6477fae7950cb)) |
| 275 | + |
| 276 | +* fix: `bom.validate()` detects invalid license constellations (#452) |
| 277 | + |
| 278 | + |
| 279 | + |
| 280 | +If a LicenseExpression is set, then there must be no other license. |
| 281 | + |
| 282 | +fixes #453 |
| 283 | + |
| 284 | + |
| 285 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`16843b2`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/16843b29086d8f871a7239c33beb930543cfde45)) |
| 286 | + |
| 287 | +### Performance |
| 288 | + |
| 289 | +* perf: make validation more secure |
| 290 | + |
| 291 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`5d7b86c`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/5d7b86c0ba84fe17becc53b2ccf4385113f90905)) |
| 292 | + |
| 293 | +### Unknown |
| 294 | + |
| 295 | +* tests for backwards compatibility of #365 (#467) |
| 296 | + |
| 297 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`4c2ef14`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/4c2ef14017467980509bdb69f937b5098d8c0965)) |
| 298 | + |
| 299 | +* tests: snapshots and complete deep comparison, instead of pseudo-compare (#464) |
| 300 | + |
| 301 | +part of https://github.com/CycloneDX/cyclonedx-python-lib/issues/437 |
| 302 | +also fixed a bug: unused first level dependencies were not detected. now they are. |
| 303 | + |
| 304 | +--------- |
| 305 | + |
| 306 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`7543789`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/75437896c04e352b51d83e6e52cf94874347f4a6)) |
| 307 | + |
| 308 | +* Feat: typing, typehints, & overload (#463) |
| 309 | + |
| 310 | +also: bump `py-serializable@^0.14.0` |
| 311 | + |
| 312 | +--------- |
| 313 | + |
| 314 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`a68ae24`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/a68ae2464539d07ed0fc037aa1e315e5ccda054a)) |
| 315 | + |
| 316 | +* Merge branch 'main' into 5.0.0-dev ([`c8c2183`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/c8c218366298ccc340e769fa180204e79a9a0f3e)) |
| 317 | + |
| 318 | +* tests: use internal json strict validation |
| 319 | + |
| 320 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`7186b52`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/7186b52a540e478196799ef7a3580f48f77544e9)) |
| 321 | + |
| 322 | +* proper enums (#447) |
| 323 | + |
| 324 | +fixes #442 |
| 325 | +part of #446 |
| 326 | + |
| 327 | +BREAKING CHANGE |
| 328 | + |
| 329 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`06b5eb0`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/06b5eb03d479e9908b9b62bcee48d23a873dd4ba)) |
| 330 | + |
| 331 | +* typo |
| 332 | + |
| 333 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`3de2493`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/3de24936533a51c0cbf61de4b19785ee7407526c)) |
| 334 | + |
| 335 | +* Drop py37 (#441) |
| 336 | + |
| 337 | +Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com> ([`1571d21`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/1571d21057b11f11cb81e74a5a702f7f30582b09)) |
24 | 338 |
|
25 | 339 |
|
26 | 340 | ## v4.2.2 (2023-09-14)
|
|
0 commit comments