From 134395376957bc7c37e7a1559f359bde0ae1fd06 Mon Sep 17 00:00:00 2001 From: Jerome Ju Date: Mon, 30 Oct 2023 15:02:04 -0400 Subject: [PATCH] Update future feature flags default table This commit updates the table of new feature flags and their default values at each stability level. --- ...138-decouple-api-and-feature-versioning.md | 39 ++++++++----------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/teps/0138-decouple-api-and-feature-versioning.md b/teps/0138-decouple-api-and-feature-versioning.md index a58e127b4..c470308bf 100644 --- a/teps/0138-decouple-api-and-feature-versioning.md +++ b/teps/0138-decouple-api-and-feature-versioning.md @@ -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 | +| 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. @@ -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 | | ### Example of introducing new features: **i.** A single feature "pipeline-in-pipeline" is introduced in `v1`: