feat(clean-release): complete compliance redesign phases and polish tasks T047-T052
This commit is contained in:
38
backend/src/services/clean_release/exceptions.py
Normal file
38
backend/src/services/clean_release/exceptions.py
Normal file
@@ -0,0 +1,38 @@
|
||||
# [DEF:clean_release_exceptions:Module]
|
||||
# @TIER: STANDARD
|
||||
# @PURPOSE: Domain exceptions for clean release compliance subsystem.
|
||||
# @LAYER: Domain
|
||||
|
||||
class CleanReleaseError(Exception):
|
||||
"""Base exception for clean release subsystem."""
|
||||
pass
|
||||
|
||||
class CandidateNotFoundError(CleanReleaseError):
|
||||
"""Raised when a release candidate is not found."""
|
||||
pass
|
||||
|
||||
class IllegalTransitionError(CleanReleaseError):
|
||||
"""Raised when a forbidden lifecycle transition is attempted."""
|
||||
pass
|
||||
|
||||
class ManifestImmutableError(CleanReleaseError):
|
||||
"""Raised when an attempt is made to mutate an existing manifest."""
|
||||
pass
|
||||
|
||||
class PolicyResolutionError(CleanReleaseError):
|
||||
"""Raised when trusted policy or registry cannot be resolved."""
|
||||
pass
|
||||
|
||||
class ComplianceRunError(CleanReleaseError):
|
||||
"""Raised when a compliance run fails or is invalid."""
|
||||
pass
|
||||
|
||||
class ApprovalGateError(CleanReleaseError):
|
||||
"""Raised when approval requirements are not met."""
|
||||
pass
|
||||
|
||||
class PublicationGateError(CleanReleaseError):
|
||||
"""Raised when publication requirements are not met."""
|
||||
pass
|
||||
|
||||
# [/DEF:clean_release_exceptions:Module]
|
||||
Reference in New Issue
Block a user