Skip to content

Commit

Permalink
Update future feature flags default table
Browse files Browse the repository at this point in the history
This commit updates the table of new feature flags and their default
values at each stability level.
  • Loading branch information
JeromeJu authored and tekton-robot committed Jan 22, 2024
1 parent 0f3d799 commit 81a06e3
Showing 1 changed file with 17 additions and 22 deletions.
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 @@ -181,11 +181,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.
Expand All @@ -203,25 +203,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`:
Expand Down

0 comments on commit 81a06e3

Please sign in to comment.