Skip to content
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

Update future feature flags default table #1091

Merged
merged 1 commit into from
Jan 22, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 17 additions & 22 deletions teps/0138-decouple-api-and-feature-versioning.md
Original file line number Diff line number Diff line change
Expand Up @@ -166,11 +166,11 @@ See [implementation plan](#implementation-plan) for more details on the PerFeatu

All **new** features can only be enabled via per-feature flags. When they first get introduced as `alpha`, they will be disabled by default. When new features get promoted to `stable`, they will be enabled by default according to the following table:

| Feature stability level | Default |
|-------------------------|-----------------------------|
| Stable | Enabled; Cannot be disabled |
| Beta | Disabled |
| Alpha | Disabled |
| Feature stability level | Default |
| ----------------------- | -------- |
| Stable | Enabled; Cannot be disabled once the flag is removed (after deprecation) |
| Beta | Disabled |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Current docs says beta feature are enabled by default, we are going to change it right?
https://github.com/tektoncd/pipeline/blob/8123d6332245008983aabe1dc910a63bd2c6f261/api_compatibility_policy.md?plain=1#L120

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that we are not. Some of the discussion at: tektoncd/pipeline#6948 (comment). The table is for new features only. And the existing beta features guarded by enable-api-fields will still be turned on by default.

I intend to clarify so at the doc updates via tektoncd/pipeline#7090 (which is currently blocked by tektoncd/pipeline#6941).

| Alpha | Disabled |

Note that per-feature flags that have stabilized cannot be disabled. We will deprecate the per-feature flag after it has become stable and then remove it eventually after the deprecation period according to the API compatibility policy. We will give deprecation and later removel notice of the per-feature flags via release notes after their promotion to `stable`. Cluster operators who do not want such opt-in features would have enough notice to implement admission controllers on their own to disable the feature.
For example, when a new future feature `pipeline-in-pipeline` becomes stable in v0.55, it would be enabled by default and cannot be disabled after the release. We would need to include in the release note of v0.55 that we are enabling the `pipeline-in-pipeline` feature by default and deprecating its feature flag. And after the deprecation period, we would remove the feature flag.
Expand All @@ -188,25 +188,20 @@ The behaviour of existing `enable-api-fields` flag with per-feature flag:
### Sunset `enable-api-fields` after existing features stabilize
When all existing `alpha` and `beta` features have either been stabilized or removed, we will be able to remove the `enable-api-fields` flag.

Snapshot of existent `beta` and `alpha` features as of today:
Snapshot of existent `beta` and `alpha` features validated by `enable-api-fields` as of today:
| Feature | Stability level | Individual flag |
| ----------------------------------------------------------------------------------------------------- | --------------- | ----------------------------------------------- |
| [Array Results and Array Indexing](pipelineruns.md#specifying-parameters) | beta | |
| [Object Parameters and Results](pipelineruns.md#specifying-parameters) | beta | |
| [Remote Tasks](./taskruns.md#remote-tasks) and [Remote Pipelines](./pipelineruns.md#remote-pipelines) | beta | |
| [`Provenance` field in Status](pipeline-api.md#provenance) | beta | `enable-provenance-in-status` |
| [Isolated `Step` & `Sidecar` `Workspaces`](./workspaces.md#isolated-workspaces) | beta | |
| [Bundles ](./pipelineruns.md#tekton-bundles) | alpha | `enable-tekton-oci-bundles` |
| [Hermetic Execution Mode](./hermetic.md) | alpha | |
| [Windows Scripts](./tasks.md#windows-scripts) | alpha | |
| [Debug](./debug.md) | alpha | |
| [Step and Sidecar Overrides](./taskruns.md#overriding-task-steps-and-sidecars) | alpha | |
| [Matrix](./matrix.md) | alpha | |
| [Task-level Resource Requirements](compute-resources.md#task-level-compute-resources-configuration) | alpha | |
| [Trusted Resources](./trusted-resources.md) | alpha | `trusted-resources-verification-no-match-policy`|
| [Larger Results via Sidecar Logs](#enabling-larger-results-using-sidecar-logs) | alpha | `results-from` |
| [Configure Default Resolver](./resolution.md#configuring-built-in-resolvers) | alpha | |
| [Coschedule](./affinityassistants.md) | alpha | `coschedule` |
| [Array Results and Array Indexing](https://github.com/tektoncd/pipeline/blob/f78bcff9665f717fcc96644e04ba17375d0bd9a8/docs/pipelineruns.md#specifying-parameters) | beta | |
| [Object Parameters and Results](https://github.com/tektoncd/pipeline/blob/f78bcff9665f717fcc96644e04ba17375d0bd9a8/docs/pipelineruns.md#specifying-parameters) | beta | |
| [Remote Tasks](https://github.com/tektoncd/pipeline/blob/f78bcff9665f717fcc96644e04ba17375d0bd9a8/docs/taskruns.md#remote-tasks) and [Remote Pipelines](https://github.com/tektoncd/pipeline/blob/f78bcff9665f717fcc96644e04ba17375d0bd9a8/docs/pipelineruns.md#remote-pipelines) | beta | |
| [Isolated `Step` & `Sidecar` `Workspaces`](https://github.com/tektoncd/pipeline/blob/f78bcff9665f717fcc96644e04ba17375d0bd9a8/docs/workspaces.md#isolated-workspaces) | beta | |
| [Matrix](https://github.com/tektoncd/pipeline/blob/f78bcff9665f717fcc96644e04ba17375d0bd9a8/docs//matrix.md) | beta | |
| [Task-level Resource Requirements](https://github.com/tektoncd/pipeline/blob/f78bcff9665f717fcc96644e04ba17375d0bd9a8/docs/compute-resources.md#task-level-compute-resources-configuration) | beta | |
| [Hermetic Execution Mode](https://github.com/tektoncd/pipeline/blob/f78bcff9665f717fcc96644e04ba17375d0bd9a8/docs/hermetic.md) | alpha | |
| [Windows Scripts](https://github.com/tektoncd/pipeline/blob/f78bcff9665f717fcc96644e04ba17375d0bd9a8/docs/tasks.md#windows-scripts) | alpha | |
| [Debug](https://github.com/tektoncd/pipeline/blob/f78bcff9665f717fcc96644e04ba17375d0bd9a8/docs/debug.md) | alpha | |
| [Step and Sidecar Overrides](https://github.com/tektoncd/pipeline/blob/f78bcff9665f717fcc96644e04ba17375d0bd9a8/docs/taskruns.md#overriding-task-steps-and-sidecars) | alpha | |
| [Configure Default Resolver](https://github.com/tektoncd/pipeline/blob/f78bcff9665f717fcc96644e04ba17375d0bd9a8/docs/resolution.md#configuring-built-in-resolvers) | alpha | |
JeromeJu marked this conversation as resolved.
Show resolved Hide resolved

### Example of introducing new features:
**i.** A single feature "pipeline-in-pipeline" is introduced in `v1`:
Expand Down