-
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
Refactor api-versioning.md Developer doc #7220
Conversation
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.
@@ -0,0 +1,131 @@ | |||
# Feature Versioning | |||
|
|||
There are two types of features in Tekton Pipeline, API-driven features and behavioural features. Both types of features comply to the [feature gates](../../api_compatibility_policy.md#feature-gates) and the [feature graduation process](../../api_compatibility_policy.md#feature-graduation-process) specified in the [API compatibility policy](../../api_compatibility_policy.md). |
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.
Is there really a point to differentiate the 2 types of feature in the context of per feature flag as eventually all the features will be using individual feature flag (so that you don't really need 2 separate subsetions below)?
I uderstand that enable-api-field
will still exist for a while during the migration phase, maybe that is worth mentioning the behavior during & after migration.
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.
Thanks for the suggestion. Yeah eventually we are going to switch to all dedicated feature flag(NOTE not all will be behind Per-feature flag, for example, some behavioural feature flag would need different values, which is not the same as Per-feature flag i.e. largerResult could take different values instead of true/false) for all new features. But the existing features, which is a combinations of behavioural and API-driven features controlled by enable-api-fields
will persist for at least ~1 deprecation cycle.
I think it is reasonable to keep the section of behavioural features since they were once the missing pieces in the documentations. And their validations are actually different from Per-feature flags. WDYT?
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.
Sure, I'm ok to break down it to 2 types, and there is an "API-driven Features" subsection. However, I believe users are natuarlly looking for the "behaviour features" section but is missing. As a user I would assume all the content in the "API-driven Features" subsection does not apply to "behaviour features", but there are quite some similarities.
In general I think it makes more sense to complete this module in 1 PR, but I'm ok if you are going to add the missing content in the followup PRs to complete structure of this file.
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.
TY for the review. I agree with you that users would also like to see a section of behavioural features. Removed the part about behavioural flags since this is just a doc cleanup, avoiding confusions.
As a user I would assume all the content in the "API-driven Features" subsection does not apply to "behaviour features", but there are quite some similarities.
Would you mind clarifying what are the similarities. Is it that both of them(behavioural features & new features using per-feature flag) would use a dedicated feature flag?
c4e738b
to
b6076ba
Compare
Thanks for the review @QuanZhang-William ! I'm happy to combine this in #7090 if that works better for the context. TY! |
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.
Thanks for the PR! Gonna approve it and let more people review!
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: QuanZhang-William, Yongxuanzhang The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
45d2e32
to
8cd71ef
Compare
Given second thought, I've noticed the confusion there might be for adding the explanation of behavioural flags in this PR. So I removed the part mentioning behavioural flags to avoid being misleading. While this PR mainly serves as a doc cleanup, I have updated the issue tracking this #6965 (comment) instead. Also I've tried to combine this PR in #7090 . (let's see if this or the original gets in first) Thanks to the reviews/comments from @QuanZhang-William for letting me understand such potential confusions. |
8cd71ef
to
b7232e1
Compare
This commit refactors the api-versioning.md developer doc which previously mixed API versioning and feature versioning. The API-driven feature versioning was mingled with the process of adding a new CRD apiVersion. To have better clarification of the difference between API versioning and the feature versioning, a new Markdown file feature-versioning is introduced in light of TEP-0138. /kind documentation part of tektoncd#6965
b7232e1
to
98c33d4
Compare
@JeromeJu: The following test failed, say
Full PR test history. Your PR dashboard. 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. I understand the commands that are listed here. |
Closing this as #7090 has already been merged. |
Changes
This commit refactors the api-versioning.md developer doc which
previously mixed API versioning and feature versioning. The API-driven
feature versioning was mingled with the process of adding a new CRD
apiVersion.
To have better clarification of the difference between API versioning
and the feature versioning, a new Markdown file feature-versioning is
introduced in light of TEP-0138.
/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