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

Guideline for breaking changes #124

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

AkihiroSuda
Copy link
Member

@AkihiroSuda AkihiroSuda commented Feb 4, 2024

A pull request that contains potential breaking changes should be kept open for seven days at least.

GOVERNANCE.md Outdated
Comment on lines 283 to 284
A pull request that contains potential breaking changes should be kept open for
seven days at least.
Copy link
Member

Choose a reason for hiding this comment

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

I don't object to this, but 7 days feels like a magic number. Was there some specific reason that period was chosen? If so, can we note it in this file?

Copy link
Member Author

Choose a reason for hiding this comment

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

Other voting motions have seven days as well

Copy link
Member

Choose a reason for hiding this comment

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

How do we classify a breaking change? Like if it breaks users who indirectly use containerd like k8s?

Copy link
Member Author

Choose a reason for hiding this comment

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

Not specific to k8s though.

Copy link
Member

Choose a reason for hiding this comment

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

I understand what we are trying to prevent and in support generally; in this case, if we (maintainers) are not aware of external community impacts (e.g. breaking for K8s, not for containerd directly), how will we know when to follow this? Given this is in response (I think?) to the RRO issue, were you aware of the breaking potential and could have marked the PR as such? I just want to make sure this isn't an additional policy that we aren't actually sure how to implement.

Copy link
Member Author

Choose a reason for hiding this comment

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

For the RRO issue, I was aware of that it was a breaking change, but I wasn't thinking that it was breaking much

kubernetes/enhancements#3858 (comment)

Plan B is to keep the Kubernetes Core API and the CRI API completely unmodified,
and just let the CRI runtime treat "readonly" as "recursive readonly".

This would be much easier to implement and adopt, however, small portion of users may find this to be a breaking change.

Copy link
Member

@mikebrow mikebrow Feb 21, 2024

Choose a reason for hiding this comment

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

this could become a long conversation.. How about we just mention some basic good rules that we'll do our best to consider..

Breaking changes (backward/forward)

A breaking change is a modification to a supported feature of a public service or API that breaks with prior releases (backwards) and in some cases future releases (forwards.. both potential or real).

I. Backwards - If it is necessary to consider a breaking change, effort will be made to:
a. get input from impacted parties
b. provide proper notice and workarounds
c. avoid cherry picking the change to supported releases
d. restrict breaking changes to the main branch targeted for a next major release boundary

II. Forwards - When drafting a public service/api care should be taken to keep the API free from overly restrictive content checking that would easily break in the future if for example, an additional field is added, in the future, to a passed in data structure. IOW consideration should be made to be future proof as these apis may be hosted by old containerd binaries for many years, even called by newer versions of clients where a user did not move to the latest containerd but did upgrade the client.

Copy link
Member Author

Choose a reason for hiding this comment

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

Updated as suggested. Sorry for the delay.

Copy link
Member

@mikebrow mikebrow left a comment

Choose a reason for hiding this comment

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

see comment suggesting adding a breaking change section...

GOVERNANCE.md Outdated
Comment on lines 283 to 284
A pull request that contains potential breaking changes should be kept open for
seven days at least.
Copy link
Member

@mikebrow mikebrow Feb 21, 2024

Choose a reason for hiding this comment

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

this could become a long conversation.. How about we just mention some basic good rules that we'll do our best to consider..

Breaking changes (backward/forward)

A breaking change is a modification to a supported feature of a public service or API that breaks with prior releases (backwards) and in some cases future releases (forwards.. both potential or real).

I. Backwards - If it is necessary to consider a breaking change, effort will be made to:
a. get input from impacted parties
b. provide proper notice and workarounds
c. avoid cherry picking the change to supported releases
d. restrict breaking changes to the main branch targeted for a next major release boundary

II. Forwards - When drafting a public service/api care should be taken to keep the API free from overly restrictive content checking that would easily break in the future if for example, an additional field is added, in the future, to a passed in data structure. IOW consideration should be made to be future proof as these apis may be hosted by old containerd binaries for many years, even called by newer versions of clients where a user did not move to the latest containerd but did upgrade the client.

Co-authored-by: Mike Brown <[email protected]
Signed-off-by: Akihiro Suda <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants