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

docs: document our branching / versioning process #408

Merged

Conversation

justinsb
Copy link
Contributor

We want to be more systematic about our branching / versioning.

Document the process we were (trying to) follow. We can also
automate some of the toil here.

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Jan 29, 2025
@k8s-ci-robot k8s-ci-robot added approved Indicates a PR has been approved by an approver from all required OWNERS files. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Jan 29, 2025
@justinsb justinsb force-pushed the branching_and_versioning branch from a0e84c5 to 66d71dd Compare January 29, 2025 15:00

Before beta releases, the master branch is for the next minor version. If we tag a version, it would be (for example) `1.101.0-alpha.1` (and then `1.101.0-alpha.2` etc), assuming the most recent release branch was `1.100`

TODO: Should we rename master to main now?
Copy link
Member

Choose a reason for hiding this comment

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

Yes, let's do it!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I removed the two TODOs here, and will track them in an issue. It probably doesn't matter, but I want to think about whether we would tag any releases before or after renaming the branch.

Comment on lines +14 to +20
| kdp version | controller-runtime version | client-go version |
|---|---|---|
| v0.20 | v0.20 | v0.32 |
| v0.19 | v0.19 | v0.31 |
| v0.18 | v0.18 | v0.30 |
| ... | ... | ... |
| v0.x | v0.x | v0.x+12 |
Copy link
Member

Choose a reason for hiding this comment

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

I think we should have the versioning scheme allow for releasing multiple kdp versions per controller-runtime/client-go version; easiest is probably just to increment the patch, but we might want to explicitly call that out here.

Copy link
Contributor Author

@justinsb justinsb Jan 30, 2025

Choose a reason for hiding this comment

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

I'll try to expand. My 2c is that while in theory we might want to make breaking changes more often than client-go releases, in practice I don't think that's very likely, and I think that would make the library difficult to consume. So agree that we should have multiple patch releases - agree that's not clear. But those patches should avoid breaking changes.

Note that we can still make as many breaking changes as we want on the main branch; we just only release a batch of breaking changes every 4 months or so. (And of course the ideal number of breaking changes is zero :-) )

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I added a small paragraph here to describe this - thanks for the suggestion!

| v0.x | v0.x | v0.x+12 |


TODO: Should we align with client-go version?
Copy link
Member

Choose a reason for hiding this comment

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

Makes more sense to align with controller-runtime than client-go IMO.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, I was just wondering whether controller-runtime might reconsider their decision at some point. In any case, we just "go up" by 12 versions if we ever change our mind - not a huge problem (in this direction!)

Copy link
Member

Choose a reason for hiding this comment

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

I think if we decide to follow controller-runtime and they decide to change their versioning scheme, our decision can stand and we just keep following them :)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Makes sense - removed the TODO

We want to be more systematic about our branching / versioning.

Document the process we were (trying to) follow.  We can also
automate some of the toil here.
@justinsb justinsb force-pushed the branching_and_versioning branch from 66d71dd to 8530d61 Compare February 10, 2025 16:06
Copy link
Member

@tomasaschan tomasaschan left a comment

Choose a reason for hiding this comment

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

/lgtm

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

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: justinsb, tomasaschan

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:
  • OWNERS [justinsb,tomasaschan]

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 merged commit 010a0ef into kubernetes-sigs:master Feb 10, 2025
6 checks passed
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. lgtm "Looks good to me", indicates that a PR is ready to be merged. 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.

None yet

3 participants