Changelog
CHANGELOG
v11.12.0 (2026-08-13)
Features
v11.11.2 (2026-08-12)
Bug Fixes
v11.11.1 (2026-08-10)
Bug Fixes
v11.11.0 (2026-06-17)
Bug Fixes
Features
v11.10.0 (2026-06-11)
Bug Fixes
Documentation
Features
Performance Improvements
v11.9.0 (2026-06-08)
Features
v11.8.0 (2026-06-04)
Documentation
Features
v11.7.0 (2026-03-17)
Documentation
Features
v11.6.0 (2025-12-02)
Documentation
Features
v11.5.0 (2025-10-31)
Features
v11.4.0 (2025-10-23)
Features
v11.3.0 (2025-10-22)
Bug Fixes
Features
v11.2.0 (2025-10-15)
Documentation
Add Changelog to project urls (
d8a24b7)
Features
v11.1.0 (2025-09-09)
Documentation
Features
v11.0.0 (2025-07-21)
Features
v10.5.0 (2025-07-20)
Features
v10.4.1 (2025-07-08)
Bug Fixes
v10.4.0 (2025-07-08)
Bug Fixes
Features
v10.3.0 (2025-06-30)
Documentation
Instructions for code style (
160810f)
Features
v10.2.0 (2025-06-10)
Bug Fixes
Features
v10.1.0 (2025-06-05)
Features
v10.0.2 (2025-06-02)
Bug Fixes
v10.0.1 (2025-05-10)
Bug Fixes
Documentation
fix: Mdformat (
acf5c45)
v10.0.0 (2025-04-23)
Features
v9.1.1-rc.1 (2025-03-03)
v9.1.0 (2025-02-27)
Bug Fixes
Features
v9.0.2 (2025-02-26)
v9.0.0 (2025-02-26)
BREAKING Changes
Fix:
model.vulnerability.VulnerabilityReference‘s properties are all mandatory (#790 via #792)Refactor: Rename
spdx.is_compund_expression->spdx.is_expression(#779)Behavior:
BomRefaffects comparison/hashing (#754 & #780)
This is only a breaking change if you relied on ordering of elements.Behavior: streamline comparison/hashing functions (#755) This is only a breaking change if you relied on ordering of elements.
Dependency: bump dependency
py-serializable >=2 <3, was>=1.1.1 <2(#775) This is only a breaking change if you have other packages depend on that specific version.
v8.9.0 (2025-02-25)
Documentation
Features
v8.8.0 (2025-02-12)
Features
v8.7.0 (2025-02-06)
Features
v8.6.0 (2025-02-04)
Features
v8.5.1 (2025-01-28)
Documentation
Features
v8.5.0 (2024-11-18)
Documentation
Features
v8.4.0 (2024-10-29)
Bug Fixes
Features
v8.3.0 (2024-10-26)
Documentation
Features
v8.2.1 (2024-10-24)
Bug Fixes
v8.2.0 (2024-10-22)
Features
v8.1.0 (2024-10-21)
Documentation
Features
v8.0.0 (2024-10-14)
Documentation
Features
BREAKING Changes
Removed
cyclonedx.mode.ThisTool, utilizecyclonedx.builder.this.this_tool()instead. * Movedcyclonedx.model.Tooltocyclonedx.model.tool.Tool.Property
cyclonedx.mode.bom.BomMetaData.toolsis of typecyclonedx.model.tool.ToolRepositorynow, wasSortedSet[cyclonedx.model.Tool]. The getter will act accordingly; the setter might act in a backwards-compatible way.Property
cyclonedx.mode.vulnerability.Vulnerability.toolsis of typecyclonedx.model.tool.ToolRepositorynow, wasSortedSet[cyclonedx.model.Tool]. The getter will act accordingly; the setter might act in a backwards-compatible way.Constructor
cyclonedx.model.license.LicenseExpression()accepts optional argumentacknowledgementonly as key-word argument, no longer as positional argument.
Changes
Constructor of
cyclonedx.model.bom.BomMetaDataalso accepts an instance ofcyclonedx.model.tool.ToolRepositoryfor argumenttools. * Constructor ofcyclonedx.model.bom.BomMetaDatano longer adds this very library as a tool. Downstream users SHOULD add it manually, likemy-bom.metadata.tools.components.add(cyclonedx.builder.this.this_component()).
Fixes
Deserialization of CycloneDX that do not include tools in the metadata are no longer unexpectedly modified/altered.
Added
Enabled Metadata Tools representation and serialization in accordance with CycloneDX 1.5
New class
cyclonedx.model.tool.ToolRepository. * New functioncyclonedx.builder.this.this_component()– representation of this very python library as aComponent. * New functioncyclonedx.builder.this.this_tool()– representation of this very python library as aTool. * New functioncyclonedx.model.tool.Tool.from_component().
Dependencies
Raised runtime dependency
py-serializable>=1.1.1,<2, was>=1.1.0,<2.
v7.6.2 (2024-10-07)
Bug Fixes
Documentation
Fix some doc strings (
4fa8fc1)
v7.6.1 (2024-09-18)
Bug Fixes
v7.6.0 (2024-08-14)
Features
v7.5.1 (2024-07-08)
Bug Fixes
v7.5.0 (2024-07-04)
Features
v7.4.1 (2024-06-12)
Bug Fixes
Documentation
v7.4.0 (2024-05-23)
Documentation
Ossp best practice percentage (
75f58dc)
Features
v7.3.4 (2024-05-06)
Bug Fixes
v7.3.3 (2024-05-06)
Bug Fixes
v7.3.2 (2024-04-26)
Bug Fixes
v7.3.1 (2024-04-22)
Bug Fixes
v7.3.0 (2024-04-19)
Features
v7.2.0 (2024-04-19)
Features
v7.1.0 (2024-04-10)
Documentation
Features
v7.0.0 (2024-04-09)
Features
Support for CycloneDX v1.6 (
8bbdf46)added draft v1.6 schemas and boilerplate for v1.6
re-generated test snapshots for v1.6
note
bom.metadata.manufactureas deprecatedwork on
bom.metadatafor v1.6Deprecated
.component.author. Added.component.authorsand.component.manufacturerwork to add
.component.omniborid- but tests deserialisation tests fail due to schema differences (.component.authornot in 1.6)work to get deserialization tests passing
v6.4.4 (2024-03-18)
Bug Fixes
v6.4.3 (2024-03-04)
Bug Fixes
v6.4.2 (2024-03-01)
Build System
Documentation
v6.4.1 (2024-01-30)
Bug Fixes
Documentation
v6.4.0 (2024-01-22)
Documentation
Features
v6.3.0 (2024-01-06)
Documentation
Features
v6.2.0 (2023-12-31)
Build System
Allow additional major-version RC branch patterns (
f8af156)
Documentation
Features
v6.1.0 (2023-12-22)
Features
v6.0.0 (2023-12-10)
Features
Breaking Changes
Removed symbols that were already marked as deprecated (via #493)
Removed
output.LATEST_SUPPORTED_SCHEMA_VERSION(#491 via #494)Serialization of unsupported enum values might downgrade/migrate/omit them (#490 via #496) Handling might raise warnings if a data loss occurred due to omitting. The result is a guaranteed valid XML/JSON, since no (enum-)invalid values are rendered.
Serialization of any
model.component.Componentwith unsupportedtyperaisesexception.serialization.SerializationOfUnsupportedComponentTypeException(#490 via #496) * Objectmodel.bom_ref.BomRef‘s propertyvaluedefaults toNull, was arbitraryUUID(#504 via #505) This change does not affect serialization. Allbom-refs are guaranteed to have unique values on rendering.
Added
Tests
Misc
Bumped dependency
py-serializable@^0.16, was@^0.15(via #496)
API Changes — the details for migration
Added new sub-package
exception.serialization(via #496)Enum
model.ExternalReferenceTypegot new cases, to reflect features for CycloneDX 1.5 (#404 via #488)Removed function
models.get_now_utc(#503 via #506) * Removed functionmodels.sha1sum(#503 via #506)Enum
model.component.ComponentTypegot new cases, to reflect features for CycloneDX 1.5 (#404 via #488)Removed
model.component.Component.__init__()‘s deprecated optional kwargnamespace(via #493) Use kwarggroupinstead.Removed
model.component.Component.__init__()‘s deprecated optional kwarglicense_str(via #493) Use kwarglicensesinstead.Removed deprecated method
model.component.Component.get_namespace()(via #493)Removed class
models.dependency.DependencyDependencies(#503 via #506)Removed
model.vulnerability.Vulnerability.__init__()‘s deprecated optional kwargsource_name(via #493) Use kwargsourceinstead.Removed
model.vulnerability.Vulnerability.__init__()‘s deprecated optional kwargsource_url(via #493) Use kwargsourceinstead.Removed
model.vulnerability.Vulnerability.__init__()‘s deprecated optional kwargrecommendations(via #493) Use kwargrecommendationinstead.Removed
model.vulnerability.VulnerabilityRating.__init__()‘s deprecated optional kwargscore_base(via #493) Use kwargscoreinstead.Enum
model.vulnerability.VulnerabilityScoreSourcegot new cases, to reflect features for CycloneDX 1.5 (#404 via #488)Removed
output.LATEST_SUPPORTED_SCHEMA_VERSION(#491 via #494)Removed deprecated function
output.get_instance()(via #493) Use functionoutput.make_outputter()instead. * Added new classoutput.json.JsonV1Dot5, to reflect CycloneDX 1.5 (#404 via #488)Added new item to dict
output.json.BY_SCHEMA_VERSION, to reflect CycloneDX 1.5 (#404 via #488)Added new class
output.xml.XmlV1Dot5, to reflect CycloneDX 1.5 (#404 via #488)Added new item to dict
output.xml.BY_SCHEMA_VERSION, to reflect CycloneDX 1.5 (#404 via #488)Enum
schema.SchemaVersiongot new caseV1_5, to reflect CycloneDX 1.5 (#404 via #488)
v5.2.0 (2023-12-02)
Documentation
Features
v5.1.1 (2023-11-02)
Bug Fixes
v5.1.0 (2023-10-31)
Documentation
Advance license docs (
f61a730)
Features
v5.0.1 (2023-10-24)
Documentation
v5.0.0 (2023-10-24)
Features
BREAKING CHANGES
Reworked license related models, collections, and factories (#365 via #466)
Behavior * Method
model.bom.Bom.validate()will throwexception.LicenseExpressionAlongWithOthersException, if detecting invalid license constellation (#453 via #452)Fixed tuple comparison when unequal lengths (via #461)
API * Enum
schema.SchemaVersionis no longer string-like (#442 via #447)Enum
schema.OutputVersionis no longer string-like (#442 via #447)Abstract class
output.BaseOutputrequires implementation of new methodoutput_format(#446 via #447)Abstract method
output.BaseOutput.output_as_string()got new optional parameterindent(#437 via #458) * Abstract methodoutput.BaseOutput.output_as_string()accepts arbitrary kwargs (via #458, #462)Removed class
factory.license.LicenseChoiceFactory(via #466) The old functionality was integrated intofactory.license.LicenseFactory.Method
factory.license.LicenseFactory.make_from_string()‘s parametername_or_spdxwas renamed tovalue(via #466)Method
factory.license.LicenseFactory.make_from_string()‘s return value can also be aLicenseExpression(#365 via #466) The behavior imitates the oldfactory.license.LicenseChoiceFactory.make_from_string()Renamed class
module.Licensetomodule.license.DisjunctliveLicense(#365 via #466)Removed class
module.LicenseChoice(#365 via #466) Use dedicated classesmodule.license.DisjunctliveLicenseandmodule.license.LicenseExpressioninsteadAll occurrences of
models.LicenseChoicewere replaced bymodels.licenses.License(#365 via #466)All occurrences of
SortedSet[LicenseChoice]were specialized tomodels.license.LicenseRepository(#365 via #466)
Fixed
Changed
Added
Support for Python 3.12 (via #460)
JSON- & XML-Validators (#432, #446 via #433, #448)
The functionality might require additional dependencies, that can be installed with the extra “validation”. See the docs in section “Installation” for details. * JSON & XML can be generated in a more human-friendly form (#437, #438 via #458)Type hints, typings & overloads for better integration downstream (via #463) * API * New function
output.make_outputter()(via #469) This replaces the deprecated functionoutput.get_instance().New sub-package
validation(#432, #446 via #433, #448, #469, #468, #469)New class
exception.MissingOptionalDependencyException(#432 via #433) * New classexception.LicenseExpressionAlongWithOthersException(#453 via #452) * New dictionariesoutput.{json,xml}.BY_SCHEMA_VERSION(#446 via #447) * Existing implementations of classoutput.BaseOutputnow have a new methodoutput_format(#446 via #447)Existing implementations of method
output.BaseOutput.output_as_string()got new optional parameterindent(#437 via #458)Existing implementations of method
output.BaseOutput.output_to_file()got new optional parameterindent(#437 via #458) * New methodfactory.license.LicenseFactory.make_with_expression()(via #466)New class
serialization.LicenseRepositoryHelper(#365 via #466)
Deprecated
Function
output.get_instance()might be removed, useoutput.make_outputter()instead (via #469)
Tests
Misc
v4.2.3 (2023-10-16)
Bug Fixes
v4.2.2 (2023-09-14)
Bug Fixes
Documentation
v4.2.1 (2023-09-06)
Bug Fixes
v4.2.0 (2023-09-06)
Features
v4.1.0 (2023-08-27)
Documentation
Features
v4.0.1 (2023-06-28)
Bug Fixes
Build System
Documentation
v4.0.0 (2023-03-20)
Bug Fixes
Remove
tomlas dependency as not used and seems to be breaking Python 3.11 CI (8fb1b14)Removed
autopep8in favour offlake8as both have conflicting dependencies now (8fb1b14)Removed
setuptoolsas dependency (8fb1b14)Removed
types-tomlfrom dependencies - not used (8fb1b14)Update
serializableto include XML safety changes (8fb1b14)
Features
Add helper method to get URN for a BOM according to https://www.iana.org/assignments/urn-formal/cdx (
8fb1b14)Allow
serial_numberof BOM to be prescribed (8fb1b14)Allow
versionof BOM to be defined (8fb1b14)Drop Python 3.6 support (
8fb1b14)Officially test and support Python 3.11 (
8fb1b14)Release 4.0.0 #341) (
8fb1b14)Support for deserialization from JSON and XML (#290,
8fb1b14)Support VEX without Components in the same BOM (
8fb1b14)
Breaking Changes
Large portions of this library have been re-written for this release and many methods and contracts have changed.
v3.1.5 (2023-01-12)
Bug Fixes
v3.1.4 (2023-01-11)
Bug Fixes
Features
v3.1.3 (2023-01-07)
Bug Fixes
v3.1.2 (2023-01-06)
Bug Fixes
Documentation
v3.1.1 (2022-11-28)
Bug Fixes
Type hint for
get_component_by_purlis incorrect (3f20bf0)
v3.1.0 (2022-09-15)
Features
v2.7.1 (2022-08-01)
Bug Fixes
v2.7.0 (2022-07-21)
Features
v2.6.0 (2022-06-20)
Features
v2.5.2 (2022-06-15)
Bug Fixes
v2.5.1 (2022-06-10)
Bug Fixes
v2.5.0 (2022-06-10)
Build System
Move typing to dev-dependencies (
0e2376b)
Documentation
Fix typo “This is out” -> “This is our” (
ef0278a)
Features
Use
SortedSetin model to improve reproducibility - this will provide predictable ordering of various items in generated CycloneDX documents - thanks to @RodneyRichardson (8a1c404)
v2.4.0 (2022-05-17)
Features
deps: Remove unused
typing-extensionsconstraints (2ce358a)
v2.3.0 (2022-04-20)
Features
Add support for Dependency Graph in Model and output serialisation (
ea34513)
v2.2.0 (2022-04-12)
Features
v2.1.1 (2022-04-05)
Bug Fixes
v2.1.0 (2022-03-28)
Features
Output errors are verbose (
bfe8fb1)
v2.0.0 (2022-02-21)
BREAKING Changes
BREAKING CHANGE: Adopt PEP-3102
BREAKING CHANGE: Optional Lists are now non-optional Sets
BREAKING CHANGE: Remove concept of DEFAULT schema version - replaced with LATEST schema version
BREAKING CHANGE: Added
BomRefdata type
Bug Fixes
component.bom_refis not Optional in our model implementation (in the schema it is) - we generate a UUID ifbom_refis not supplied explicitly (5c954d1)expressionnot supported in Component Licsnes for version 1.0 (15b081b)license_urlnot serialised in XML output #179 (#180,f014d7c)Components with no version (optional since 1.4) produce invalid BOM output in XML #150 (
70d25c8)Further fix for #150 (
1f55f3e)Implemented correct
__hash__methods in models (#155,32c0139)Regression introduced by first fix for #150 (
c09e396)Temporary fix for
__hash__of Component withproperties#153 (a51766d)
Features
bom-reffor Component and Vulnerability default to a UUID (#142,b45ff18)bom-reffor Component and Vulnerability default to a UUID if not supplied ensuring they have a unique value #141 (b45ff18)Bump dependencies (
da3f0ca)Support for
bom.externalReferencesin JSON and XML #124 (1b733d7)Support services in XML BOMs (
9edf6c9)
Breaking Changes
Adopt PEP-3102
Optional Lists are now non-optional Sets
Remove concept of DEFAULT schema version - replaced with LATEST schema version
Added
BomRefdata type
v1.3.0 (2022-01-24)
Features
v1.2.0 (2022-01-24)
Features
v1.1.1 (2022-01-19)
Bug Fixes
v1.1.0 (2022-01-13)
Features
v1.0.0 (2022-01-13)
v0.12.3 (2021-12-15)
Bug Fixes
v0.12.2 (2021-12-09)
Bug Fixes
v0.12.1 (2021-12-09)
Bug Fixes
Further loosened dependency definitions (
8bef6ec)
v0.12.0 (2021-12-09)
Bug Fixes
Features
Loosed dependency versions to make this library more consumable (
55f10fb)Lowering minimum dependency versions (
55f10fb)Lowering minimum dependency versions - importlib-metadata raising minimum to ensure we get a typed library (
55f10fb)Lowering minimum version for importlib-metadata to 3.4.0 with modified import statement (
55f10fb)
v0.11.1 (2021-11-10)
Bug Fixes
v0.11.0 (2021-11-10)
Features
Typing & PEP 561 (
9144765)
v0.10.2 (2021-10-21)
Bug Fixes
Correct way to write utf-8 encoded files (
49f9369)
v0.10.1 (2021-10-21)
Bug Fixes
v0.10.0 (2021-10-20)
Features
Add support for Conda (
bd29c78)
v0.9.1 (2021-10-19)
v0.9.0 (2021-10-19)
Bug Fixes
Missing check for Classifiers in Environment Parser (
b7fa38e)
Features
Add support for parsing package licenses when using the
EnvironmentParsers (c414eaf)
v0.8.3 (2021-10-14)
Bug Fixes
v0.8.2 (2021-10-14)
Bug Fixes
Add namespace and subpath support to Component to complete PackageURL Spec support (
780adeb)
v0.8.1 (2021-10-12)
Bug Fixes
Multiple hashes being created for an externalRefernce which is not as required (
970d192)
v0.8.0 (2021-10-12)
Features
Add support for
externalRefernecesforComponentsand associated enhancements to parsers to obtain information where possible/known (a152852)
v0.7.0 (2021-10-11)
Features
Support for pipenv.lock file parsing (
68a2dff)
v0.6.2 (2021-10-11)
v0.6.1 (2021-10-11)
Bug Fixes
v0.6.0 (2021-10-11)
Features
Helper method for representing a File as a Component taking into account versioning for files as per https://github.com/CycloneDX/cyclonedx.org/issues/34 (
7e0fb3c)Support for non-PyPi Components - PackageURL type is now definable when creating a Component (
fde79e0)
v0.5.0 (2021-10-11)
Bug Fixes
Bumped a dependency version (
efc1053)
Build System
Updated dependencies, moved pdoc3 to a dev dependency (
6a9947d)
Features
Add support for tool(s) that generated the SBOM (
7d1e6ef)
v0.4.1 (2021-09-27)
Bug Fixes
Improved handling for
requirements.txtcontent without pinned or declared versions (7f318cb)
Build System
Dependencies updated (
0411826)
v0.4.0 (2021-09-16)
Bug Fixes
Features
v0.3.0 (2021-09-15)
Features
Adding support for extension schema that descriptions vulnerability disclosures (
d496695)
v0.2.0 (2021-09-14)
Bug Fixes
Whitespace on empty line removed (
cfc952e)
v0.1.0 (2021-09-13)
Features
v0.0.11 (2021-09-10)
Bug Fixes
v0.0.10 (2021-09-08)
Bug Fixes
Add in pypi badge (
6098c36)
v0.0.9 (2021-09-08)
v0.0.8 (2021-09-08)
Bug Fixes
Additional info to poetry, remove circleci (
2fcfa5a)
v0.0.7 (2021-09-08)
Bug Fixes
v0.0.6 (2021-09-08)
Bug Fixes
Initial release to pypi (
99687db)
v0.0.5 (2021-09-08)
v0.0.4 (2021-09-08)
v0.0.3 (2021-09-08)
v0.0.2 (2021-09-08)
Initial Release