-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Labels
lifecycle/staleDenotes an issue or PR has remained open with no activity and has become stale.Denotes an issue or PR has remained open with no activity and has become stale.
Description
Motivation
It would be useful to allow removal of deprecated fields without flagging them as breaking changes. In Kubernetes CRDs, deprecations are often indicated in the field description with Deprecated:. Recognizing this pattern can help reduce noise when checking for breaking changes and improve the developer experience.
Proposal
- Add an option to treat fields whose description contains
Deprecated:as safe to remove. - This could be controlled via a CLI flag (e.g.,
--allow-deprecated-removal) or configuration. - The default behavior should remain unchanged for backward compatibility.
Example
# Previous CRD
spec:
oldField:
type: string
description: "Deprecated: use `newField` instead"
currentField:
type: integer
# New CRD
spec:
currentField:
type: integerWith this feature, removal of oldField would not be considered a breaking change.
Benefits
- Reduces false positives when diffing CRDs.
- Aligns with Kubernetes deprecation conventions.
- Improves workflow for CRD maintainers when cleaning up deprecated fields.
souleb and vasrem
Metadata
Metadata
Assignees
Labels
lifecycle/staleDenotes an issue or PR has remained open with no activity and has become stale.Denotes an issue or PR has remained open with no activity and has become stale.