Skip to content

Commit e73d2dc

Browse files
authored
Merge pull request #12 from siyuanfoundation/compat-versions
Add feature gate change examples
2 parents 02e2b65 + 637db38 commit e73d2dc

File tree

1 file changed

+11
-2
lines changed
  • keps/sig-architecture/4330-compatibility-versions

1 file changed

+11
-2
lines changed

keps/sig-architecture/4330-compatibility-versions/README.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -366,13 +366,22 @@ compatibility version support.
366366
#### Feature gating changes
367367
368368
In order to preserve the behavior of in-development features across multiple releases,
369-
feature implementation history should also be preserved in the code base.
369+
feature implementation history should also be preserved in the code base instead of in place modifications.
370370
371371
Only sigificant and observable changes in feature capabilities should be across
372372
releases. We do not want to impose a unreasonable burdon on feature authors.
373373
Bugs, performance optimizations should not be gated by version.
374374
375-
Naively, the feature implementations can be gated by version number.
375+
Here are some examples of feature changes that should be or do not need not be preserved:
376+
**Feature**|**Changes That Should Be Preserved**|**Changes That Do Not Need To Be Preserved**
377+
-----|-----|-----
378+
APIPriorityAndFairness | [add v1beta3 for Priority And Fairness](https://github.com/kubernetes/kubernetes/pull/112306) | [More seat metrics for APF](https://github.com/kubernetes/kubernetes/pull/105873)
379+
ValidatingAdmissionPolicy | | [Drop AvailableResources from controller context](https://github.com/kubernetes/kubernetes/pull/117977), [Encapsulate KCM controllers with their metadata](https://github.com/kubernetes/kubernetes/pull/120371)
380+
APIServerTracing | | [Revert "Graduate API Server tracing to beta"](https://github.com/kubernetes/kubernetes/pull/113803)
381+
MemoryManager | | [Don't reuse memory of a restartable init container](https://github.com/kubernetes/kubernetes/pull/120715)
382+
NodeSwap | if done after promoting to beta: [Add full cgroup v2 swap support and remove cgroup v1 support](https://github.com/kubernetes/kubernetes/pull/118764) | [only configure swap if swap is enabled](https://github.com/kubernetes/kubernetes/pull/120784)
383+
384+
To preserve the behavior, naively the feature implementations can be gated by version number.
376385
For example, if `FeatureA` is partially implemented in 1.28 and additional functionality
377386
is added in 1.29, the feature developer is expected to gate the functionality by version.
378387
E.g.:

0 commit comments

Comments
 (0)