-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC: Clarify stable features usage #6995
Conversation
@JeromeJu: The label(s) In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
0273a83
to
8360276
Compare
This commit helps clarify the usage of stable features to be apparent in also apis other than GA.
8360276
to
d6789f5
Compare
@khrm: changing LGTM is restricted to collaborators In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
@JeromeJu one question I have is what does it mean for a feature to be GA when the API version is alpha 🤔 |
Good point as I think this is also part of the issue TEP0138 is trying to address. I think we should find a way to elaborate that feature stability(versioning) shall be independent from API version. But not too sure if where this PR modifies is the place for such clarifications? Maybe another section with a matrix of what each stability level mean in different api versions. WDYT? |
What's a bit confusing about this is right now we don't really have a notion of "stable features"-- it's just everything that's not an alpha or beta feature. I think this is why the question keeps coming up of why you'd describe fields of an alpha CRD as "stable". The way Kubernetes describes this is IMO a bit more clear: they talk about the feature lifecycle and explain that features "graduate" to GA after being beta, so a "stable" feature is a feature that has "graduated" from beta and no longer needs a feature gate. Similarly for us, a stable feature is something that was previously enabled by "enable-api-fields", but no longer is (although this isn't how I'd define a "stable" feature in user-facing docs). Maybe adopting some of Kubernetes' language around feature lifecycle could help clarify this confusion, especially if we move to per-feature flags. (Really it's just a different way of describing the same thing.)
I'm concerned this will create more confusion related to people thinking the stability level of a feature is based on the stability level of the CRD it's present in. |
That makes sense. I will open up another PR for this as introducing features lifecycle sounds like a somewhat related but different topic than api_compatibility_policy itself. I am not sure if a separate doc than this sounds better? |
A separate PR is totally fine; I think this doc is an appropriate place to describe feature lifecycle since it's very related to feature stability level. It might also be less confusing to wait until TEP 138 is resolved, especially if we do decide to adopt per-feature flags. Up to you! |
I agree that this could be one of the changes under TEP0138:) Let's wait till it gets merged. |
/hold tektoncd/community#1034 under discussion |
Alright, let's close it then. |
Changes
This commit helps clarify the usage of stable features to be apparent in also apis other than GA.
/kind documentation
part of: #6965
Submitter Checklist
As the author of this PR, please check off the items in this checklist:
/kind <type>
. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tepRelease Notes