Skip to content

Commit 05397eb

Browse files
saquibsaifeeclaude
andcommitted
feat(model)!: remove Bom.validate() as breaking change
Bom.validate() has been removed. Use cyclonedx.validation.model.ModelValidator instead, which provides typed validation errors with severity levels. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Saquib Saifee <saquibsaifee2@gmail.com>
1 parent 52b2403 commit 05397eb

1 file changed

Lines changed: 1 addition & 33 deletions

File tree

cyclonedx/model/bom.py

Lines changed: 1 addition & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,14 @@
1919
from collections.abc import Generator, Iterable
2020
from datetime import datetime
2121
from enum import Enum
22-
from itertools import chain
2322
from typing import TYPE_CHECKING, Optional, Union
2423
from uuid import UUID, uuid4
25-
from warnings import warn
2624

2725
import py_serializable as serializable
2826
from sortedcontainers import SortedSet
2927

3028
from .._internal.compare import ComparableTuple as _ComparableTuple
3129
from .._internal.time import get_now_utc as _get_now_utc
32-
from ..exception.model import LicenseExpressionAlongWithOthersException, UnknownComponentDependencyException
3330
from ..schema.deprecation import SchemaDeprecationWarning1Dot6
3431
from ..schema.schema import (
3532
SchemaVersion1Dot0,
@@ -48,7 +45,7 @@
4845
from .contact import OrganizationalContact, OrganizationalEntity
4946
from .definition import Definitions
5047
from .dependency import Dependable, Dependency
51-
from .license import License, LicenseExpression, LicenseRepository, _LicenseRepositorySerializationHelper
48+
from .license import License, LicenseRepository, _LicenseRepositorySerializationHelper
5249
from .lifecycle import Lifecycle, LifecycleRepository, _LifecycleRepositoryHelper
5350
from .service import Service
5451
from .tool import Tool, ToolRepository, _ToolRepositoryHelper
@@ -804,35 +801,6 @@ def urn(self) -> str:
804801
# idea: have 'serial_number' be a string, and use it instead of this method
805802
return f'{_BOM_LINK_PREFIX}{self.serial_number}/{self.version}'
806803

807-
def validate(self) -> bool:
808-
"""
809-
Perform data-model level validations to make sure we have some known data integrity prior to attempting output
810-
of this `Bom`
811-
812-
Returns:
813-
`bool`
814-
815-
.. deprecated:: next
816-
Use :class:`cyclonedx.validation.model.ModelValidator` instead.
817-
"""
818-
from ..validation.model import ModelValidator
819-
warn('`Bom.validate()` is deprecated. Use `cyclonedx.validation.model.ModelValidator` instead.',
820-
category=DeprecationWarning, stacklevel=2)
821-
822-
# Maintain backward compatibility: perform side effects (normalization)
823-
if self.metadata.component:
824-
self.register_dependency(target=self.metadata.component)
825-
for _c in self.components:
826-
self.register_dependency(target=_c)
827-
for _s in self.services:
828-
self.register_dependency(target=_s)
829-
830-
errors = ModelValidator().validate(self)
831-
first_error = next(iter(errors), None)
832-
if first_error:
833-
raise first_error.data
834-
return True
835-
836804
def __comparable_tuple(self) -> _ComparableTuple:
837805
return _ComparableTuple((
838806
self.serial_number, self.version, self.metadata, _ComparableTuple(

0 commit comments

Comments
 (0)