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

Document the CAPZ release cadence and support policy #2628

Merged
merged 1 commit into from
Sep 8, 2022

Conversation

mboersma
Copy link
Contributor

@mboersma mboersma commented Sep 6, 2022

What type of PR is this?:

/kind documentation

What this PR does / why we need it:

Which issue(s) this PR fixes:

Fixes #2295

Special notes for your reviewer:

TODOs:

  • squashed commits
  • includes documentation
  • adds unit tests

Release note:

Document the CAPZ release cadence and support policy

@k8s-ci-robot k8s-ci-robot added kind/documentation Categorizes issue or PR as related to documentation. do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Sep 6, 2022
Any significant user-facing bug fix that lands in the `main` branch should be backported to the current and previous release lines. Security-related fixes are automatically considered significant and user-facing.

Improvements or significant changes to tests should be backported to the current release line. This is intended to minimize friction in the event of a critical test fix. Test improvements or changes may sometimes need to be backported to the previous release line in the event that tests break on all release branches.

Copy link
Contributor

Choose a reason for hiding this comment

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

Let's add a discrete section to document that for experimental APIs (e.g., AzureManagedCluster) we may include both features or bug fixes in patch releases. This an exception to the normal semver definition, but it will accelerate our effort to graduate experimental features to v1 by allowing faster feature adoption and functional iteration.

cc @CecileRobertMichon @nojnhuh @devigned @zmalik @mtougeron @LochanRn @JoelSpeed for any add'l thoughts/dissent here

Copy link
Contributor

Choose a reason for hiding this comment

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

And how about another 2-3 sentences explaining that due to our minor release support contract, we want to optimize the automated cherry-pick path from main to those two minor release branches. That may include delaying codebase-wide changes like housekeeping PRs (updating downstream APIs, linting, etc) until the end of a minor release cycle. If we integrate these housekeeping PRs in the middle of a release cycle, we can then be stuck with only manual cherry-picks for the rest of the release cycle after that.

Copy link
Member

Choose a reason for hiding this comment

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

So long as the new features are backwards compatible and don't significantly change structure or functionality I personally don't see a problem with it for experimental APIs. It really depends on what level of contract we want to provide to the users of the experimental features. I think we need to be more careful once a feature reaches beta but I definitely agree for alpha features.

Copy link
Contributor

Choose a reason for hiding this comment

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

I agree with @mtougeron re: not breaking experimental APIs in a patch release. I can see where certain backwards-incompatible changes might be needed a bit sooner than the next minor release, though I think keeping experimental APIs backwards-compatible between patch releases is a good rule of thumb.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think this is a fair distinction:

  1. additive features/functionality
  2. changed/updated/removed features/functionality in response to the normal process of iterating in an experimental functional workstream

Part of our work in AzureManagedCluster will yield stuff that falls under #2 above. When we have a defensible reason for actually changing (i.e., breaking not just additive) an implementation classified as experimental, we should do that type of explicit breakage in a new minor release (with all-caps release notes for folks taking part in the experiment).

Does this agree with your points @nojnhuh @mtougeron?

@mboersma
Copy link
Contributor Author

mboersma commented Sep 6, 2022

/release-note Document the CAPZ release cadence and support policy

@mboersma
Copy link
Contributor Author

mboersma commented Sep 6, 2022

/release-note-edit release-note Document the CAPZ release cadence and support policy

@k8s-ci-robot k8s-ci-robot added release-note Denotes a PR that will be considered when it comes time to generate release notes. and removed do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. labels Sep 6, 2022
@mboersma
Copy link
Contributor Author

mboersma commented Sep 7, 2022

/retest

Copy link
Contributor

@jackfrancis jackfrancis left a comment

Choose a reason for hiding this comment

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

/lgtm
/approve

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Sep 8, 2022
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jackfrancis

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Sep 8, 2022
@k8s-ci-robot k8s-ci-robot merged commit 508812f into kubernetes-sigs:main Sep 8, 2022
@k8s-ci-robot k8s-ci-robot added this to the v1.5 milestone Sep 8, 2022
@mboersma mboersma deleted the release-cadence branch September 8, 2022 22:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/documentation Categorizes issue or PR as related to documentation. lgtm "Looks good to me", indicates that a PR is ready to be merged. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Document the new release cadence and support policy
5 participants