|
2 | 2 |
|
3 | 3 |
|
4 | 4 |
|
| 5 | +## v5.0.0-rc.1 (2023-10-11) |
| 6 | + |
| 7 | +### Breaking |
| 8 | + |
| 9 | +* chore!: bump major version to v5 |
| 10 | + |
| 11 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`bae8a84`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/bae8a84e7aa329780f91f49212c15f4d8c13ddcb)) |
| 12 | + |
| 13 | +### Chore |
| 14 | + |
| 15 | +* chore: revisit license headers |
| 16 | + |
| 17 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`1e963bd`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/1e963bd3d7e6c7d9437e41a34ecd622e0d32f3d8)) |
| 18 | + |
| 19 | +* chore: clean deps |
| 20 | + |
| 21 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`ac6ad0e`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/ac6ad0ed5b5933f03d1132c3bbce0ada1915fc40)) |
| 22 | + |
| 23 | +* chore: remove encoding hint (#459) |
| 24 | + |
| 25 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`37219c3`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/37219c321ac7ce5b507a0c0a74776f8204b400bf)) |
| 26 | + |
| 27 | +* chore: Update CONTRIBUTING.md |
| 28 | + |
| 29 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`0ebaa21`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/0ebaa216d43a1389362dbdb33f9b49f43a21ab66)) |
| 30 | + |
| 31 | +* chore: config sem-release |
| 32 | + |
| 33 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`839fe11`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/839fe114bafac6117879175eb54a8759b7ef8963)) |
| 34 | + |
| 35 | +* chore: sem-release config |
| 36 | + |
| 37 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`18b4eca`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/18b4eca2c0fe2a2b4f1ca79976719c1afa0816bc)) |
| 38 | + |
| 39 | +* chore: absolute tet imports |
| 40 | + |
| 41 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`39e0eb9`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/39e0eb9af29a13e1cad6a073e5eb20955e492484)) |
| 42 | + |
| 43 | +* chore(build): test before release |
| 44 | + |
| 45 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`5cb695e`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/5cb695ebf9989f9bdefaa6823f5814d5c2fe9998)) |
| 46 | + |
| 47 | +* chore: init 5.0.0-dev |
| 48 | + |
| 49 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`0a3ae26`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/0a3ae26f8fe50e1dc03fb72fb7fdba51654c7f8b)) |
| 50 | + |
| 51 | +### Ci |
| 52 | + |
| 53 | +* ci: publish coverage report to codacy (#439) |
| 54 | + |
| 55 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`0012a82`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/0012a82382f9f33831a80aa0e26c0cbb7fd8984b)) |
| 56 | + |
| 57 | +### Documentation |
| 58 | + |
| 59 | +* docs: fix hilighter |
| 60 | + |
| 61 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`9d49280`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/9d49280b680a4f8a7c4b8795f35928584e29baee)) |
| 62 | + |
| 63 | +* docs: fix typo |
| 64 | + |
| 65 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`6adc98f`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/6adc98f66da94b7bac987bc5b25da7099498fe3a)) |
| 66 | + |
| 67 | +### Feature |
| 68 | + |
| 69 | +* feat: support python 3.12 (#460) |
| 70 | + |
| 71 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`eaba7a0`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/eaba7a048de190bce0797fb9ce40c4e2de49c5d9)) |
| 72 | + |
| 73 | +* feat: options for beautiful output (#458) |
| 74 | + |
| 75 | +add indention to outputters. this may come at a cost! |
| 76 | + |
| 77 | + |
| 78 | +Breaking Changes |
| 79 | +------------------ |
| 80 | +* abstract Method `output.BaseOutput.output_as_string()` got new optional kwarg `indent` |
| 81 | +* abstract Method `output.BaseOutput.output_as_string()` accepts arbitrary kwargs |
| 82 | + |
| 83 | +Changed |
| 84 | +---------- |
| 85 | +* XML output uses a default namespace, which makes results smaller. |
| 86 | + |
| 87 | + |
| 88 | +Added |
| 89 | +------------------ |
| 90 | +* All outputters' method `output_as_string()` got new optional kwarg `indent` |
| 91 | +* All outputters' method `output_as_string()` accepts arbitrary kwargs |
| 92 | +* All outputters' method `output_to_file()` got new optional kwarg `indent` |
| 93 | +* All outputters' method `output_to_file()` accepts arbitrary kwargs |
| 94 | + |
| 95 | +----- |
| 96 | + |
| 97 | +- [x] implementation |
| 98 | +- [x] tests (snapshot binary compare; structural equal compare) |
| 99 | + |
| 100 | +----- |
| 101 | + |
| 102 | +enables https://github.com/CycloneDX/cyclonedx-python/issues/424 |
| 103 | +fixes #437 |
| 104 | +fixes #438 |
| 105 | +supersedes #449 |
| 106 | + |
| 107 | +--------- |
| 108 | + |
| 109 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`3bcd9e9`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/3bcd9e99a58b74c9dc1fc474b468e67fc92fb7c4)) |
| 110 | + |
| 111 | +* feat: easy access validators (#448) |
| 112 | + |
| 113 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`1c9ea9e`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/1c9ea9e22e53933347a8f366c5fc06febe811757)) |
| 114 | + |
| 115 | +* feat: add CycloneDX document validators to public API (#433) |
| 116 | + |
| 117 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`a4f5ec5`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/a4f5ec5d63d576c04bcef5c0b6641f6c47164cfb)) |
| 118 | + |
| 119 | +### Fix |
| 120 | + |
| 121 | +* fix: multiple licenses issue #365 (#466) |
| 122 | + |
| 123 | +breaking changes |
| 124 | +------------------ |
| 125 | +* Reworked license related models and collections |
| 126 | +* API |
| 127 | + * Removed class `factory.license.LicenseChoiceFactory` |
| 128 | + The old functionality was integrated into `factory.license.LicenseFactory`. |
| 129 | + * Method `factory.license.LicenseFactory.make_from_string()`'s parameter `name_or_spdx` was renamed to `value` |
| 130 | + * Method `factory.license.LicenseFactory.make_from_string()`'s return value can also be a `LicenseExpression` |
| 131 | + The behavior imitates the old `factory.license.LicenseChoiceFactory.make_from_string()` |
| 132 | + * Renamed class `module.License` to `module.license.DisjunctliveLicense` |
| 133 | + * Removed class `module.LicenseChoice` |
| 134 | + Use dedicated classes `module.license.DisjunctliveLicense` and `module.license.LicenseExpression` instead |
| 135 | + * All occurrences of `models.LicenseChoice` were replaced by `models.licenses.License` |
| 136 | + * All occurrences of `SortedSet[LicenseChoice]` were specialized to `models.license.LicenseRepository` |
| 137 | + |
| 138 | + |
| 139 | +fixes |
| 140 | +------------------ |
| 141 | +* serialization of multy-licenses #365 |
| 142 | + |
| 143 | +added |
| 144 | +------------------ |
| 145 | +* API |
| 146 | + * Method `factory.license.LicenseFactory.make_with_expression()` |
| 147 | + * Class `model.license.DisjunctiveLicense` |
| 148 | + * Class `model.license.LicenseExpression` |
| 149 | + * Class `model.license.LicenseRepository` |
| 150 | + * Class `serialization.LicenseRepositoryHelper` |
| 151 | + |
| 152 | +tests |
| 153 | +------------------ |
| 154 | +* added regression test for bug #365 |
| 155 | + |
| 156 | +misc |
| 157 | +------------------ |
| 158 | +* raised dependency `py-serializable@^9.15` |
| 159 | + |
| 160 | + |
| 161 | + |
| 162 | +---- |
| 163 | + |
| 164 | +fixes #365 |
| 165 | + |
| 166 | +~~BLOCKED by a feature request to serializer: <https://github.com/madpah/serializable/pull/32>~~ |
| 167 | + |
| 168 | + |
| 169 | +--------- |
| 170 | + |
| 171 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`6770786`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/67707864ac0f1b27bac166a8fd537ea38523fe6f)) |
| 172 | + |
| 173 | +* fix: typing for `kwargs` (#462) |
| 174 | + |
| 175 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`2240b4d`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/2240b4dda824c13bc563bce1574dffe563016ac2)) |
| 176 | + |
| 177 | +* fix: tuple stuff (#461) |
| 178 | + |
| 179 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`84c6504`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/84c6504fc92d1207135f7719b6b6477fae7950cb)) |
| 180 | + |
| 181 | +* fix: `bom.validate()` detects invalid license constellations (#452) |
| 182 | + |
| 183 | + |
| 184 | + |
| 185 | +If a LicenseExpression is set, then there must be no other license. |
| 186 | + |
| 187 | +fixes #453 |
| 188 | + |
| 189 | + |
| 190 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`16843b2`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/16843b29086d8f871a7239c33beb930543cfde45)) |
| 191 | + |
| 192 | +### Performance |
| 193 | + |
| 194 | +* perf: make validation more secure |
| 195 | + |
| 196 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`5d7b86c`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/5d7b86c0ba84fe17becc53b2ccf4385113f90905)) |
| 197 | + |
| 198 | +### Unknown |
| 199 | + |
| 200 | +* tests for backwards compatibility of #365 (#467) |
| 201 | + |
| 202 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`4c2ef14`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/4c2ef14017467980509bdb69f937b5098d8c0965)) |
| 203 | + |
| 204 | +* tests: snapshots and complete deep comparison, instead of pseudo-compare (#464) |
| 205 | + |
| 206 | +part of https://github.com/CycloneDX/cyclonedx-python-lib/issues/437 |
| 207 | +also fixed a bug: unused first level dependencies were not detected. now they are. |
| 208 | + |
| 209 | +--------- |
| 210 | + |
| 211 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`7543789`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/75437896c04e352b51d83e6e52cf94874347f4a6)) |
| 212 | + |
| 213 | +* Feat: typing, typehints, & overload (#463) |
| 214 | + |
| 215 | +also: bump `py-serializable@^0.14.0` |
| 216 | + |
| 217 | +--------- |
| 218 | + |
| 219 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`a68ae24`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/a68ae2464539d07ed0fc037aa1e315e5ccda054a)) |
| 220 | + |
| 221 | +* Merge branch 'main' into 5.0.0-dev ([`c8c2183`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/c8c218366298ccc340e769fa180204e79a9a0f3e)) |
| 222 | + |
| 223 | +* tests: use internal json strict validation |
| 224 | + |
| 225 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`7186b52`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/7186b52a540e478196799ef7a3580f48f77544e9)) |
| 226 | + |
| 227 | +* proper enums (#447) |
| 228 | + |
| 229 | +fixes #442 |
| 230 | +part of #446 |
| 231 | + |
| 232 | +BREAKING CHANGE |
| 233 | + |
| 234 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`06b5eb0`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/06b5eb03d479e9908b9b62bcee48d23a873dd4ba)) |
| 235 | + |
| 236 | +* typo |
| 237 | + |
| 238 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`3de2493`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/3de24936533a51c0cbf61de4b19785ee7407526c)) |
| 239 | + |
| 240 | +* Drop py37 (#441) |
| 241 | + |
| 242 | +Signed-off-by: Jan Kowalleck <[email protected]> ( [`1571d21`](https://github.com/CycloneDX/cyclonedx-python-lib/commit/1571d21057b11f11cb81e74a5a702f7f30582b09)) |
| 243 | + |
| 244 | + |
5 | 245 | ## v4.2.2 (2023-09-14)
|
6 | 246 |
|
7 | 247 | ### Chore
|
|
0 commit comments