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

Define a etcd backport criteria #17579

Open
serathius opened this issue Mar 12, 2024 · 5 comments
Open

Define a etcd backport criteria #17579

serathius opened this issue Mar 12, 2024 · 5 comments

Comments

@serathius
Copy link
Member

What would you like to be added?

We should define a clear backport criteria so it's easier to decide when a backport is needed.

My suggestion would be to require all the fixes to have a test, at least a unit test, best an e2e or integration test that confirms that backport will be done correctly and prevent regression.

Based on discussion in #17518

Why is this needed?

Ensure maintain high quality of previous releases.

@ahrtr
Copy link
Member

ahrtr commented Mar 12, 2024

  • There is already doc on this. I believe it's clear to all that usually only bugs and CVEs are supposed to be backported to stable releases.
  • I think It's common sense to have a test for each fix.

But we shouldn't be too dogmatic on these rules.

@jmhbnz
Copy link
Member

jmhbnz commented Aug 12, 2024

We actually have a second place in our existing docs where we attempt to determine what should meet backport criteria: https://github.com/etcd-io/etcd/blob/main/Documentation/contributor-guide/release.md#patch-version-release

To request a backport, developers submit cherry-pick PRs targeting the release branch. The commits should not include merge commits. The commits should be restricted to bug fixes and security patches.

I think the challenge is due to the amount of things we have in scope for 3.6.0 and the time it has been since 3.5.0 was released then we have historically relaxed these guidelines and also backported minor features to release-3.5 as that has been our only vehicle of getting requested functionality out to users in a timely fashion due to how far away 3.6.0 is.

Given this situation we are in, I agree that we can't simply say the only backports we will accept will be security or bug fixes, as then we lose any way of being timely/responsive to our users for a new feature that is hotly requested that could be quite low impact & risk from backport perspective.

However I do completely agree that we should update the docs to make it clear we expect backports to have coverage with unit and ideally e2e or integration tests. Do we think https://github.com/etcd-io/etcd/blob/main/Documentation/contributor-guide/branch_management.md#stable-branches would be the best place to update that?

@serathius
Copy link
Member Author

cc @liggitt for his experience on Kubernetes backport criteria.

@liggitt
Copy link
Contributor

liggitt commented Oct 28, 2024

I think the challenge is due to the amount of things we have in scope for 3.6.0 and the time it has been since 3.5.0 was released then we have historically relaxed these guidelines and also backported minor features to release-3.5 as that has been our only vehicle of getting requested functionality out to users in a timely fashion due to how far away 3.6.0 is.

Should 3.6.0 scope be reduced to get out of this situation while keeping maintenance branches super low risk (extremely well understood bugfixes and security fixes only)?

Given this situation we are in, I agree that we can't simply say the only backports we will accept will be security or bug fixes, as then we lose any way of being timely/responsive to our users for a new feature that is hotly requested that could be quite low impact & risk from backport perspective.

It is often difficult to be certain a change is low-impact.

@ahrtr
Copy link
Member

ahrtr commented Oct 28, 2024

Should 3.6.0 scope be reduced

Yes, I have been thinking the same thing. I will propose to release 3.6 in a proper timing, of course clarify the scope of what should be included and what shouldn't.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

4 participants