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

proposal: get rid of develop branch #2930

Closed
tbruyelle opened this issue Oct 17, 2022 · 7 comments
Closed

proposal: get rid of develop branch #2930

tbruyelle opened this issue Oct 17, 2022 · 7 comments
Labels
pr:need-review Change request requires peer review. proposal

Comments

@tbruyelle
Copy link
Contributor

tbruyelle commented Oct 17, 2022

The dual master/develop branch pattern adds some maintenance cost when we need to synchronize master and develop. Sometimes this even requires an extra synchronization branch to avoid conflicts (see #2928)

In addition, this maintenance must be done for each release.

With this proposal, I would like to open discussions for removing the develop branch, in favor of a single master branch.

TLDR

this proposal basically changes the need for maintenance from :

  • having to do it for all releases
    to
  • having to do it only when we patched a release.

Some key points

  • Features branch would be based on master and merged to master when they are ready.
  • Major and minor tags are created on master, as they should be (today most of them are created on develop, so I wonder what master is even for!)
  • When we need to patch a release, we create a release branch on the related tag (for instance release/v0.24.x on v0.24.0 tag). The PR that contains the patch is based on this release branch. Once the PR is merged, a patch tag is created (v0.24.1) on the release branch, and the new binaries are built from there.
    The release branches are back ported to master eventually, by merging the release branch to master or by cherry-picking the commits. This time the maintenance happens only when we have to patch a release, and not for all releases.
    What could happen also when we need to fix a release, is to first fix the bug on master (so for the future release), and the commit is then cherry-picked in the release branch.

I add a small schema to summarize :
image

Voila, please give me your opinion, ask questions... 🙏

@tbruyelle tbruyelle changed the title proposal: get ride of develop branch proposal: get rid of develop branch Oct 17, 2022
@aljo242
Copy link
Contributor

aljo242 commented Oct 18, 2022

@ilgooz @lubtd thoughts? I'm onboard with this

@lumtis
Copy link
Contributor

lumtis commented Oct 18, 2022

I''m in as well, and doing the same for spn

@aljo242
Copy link
Contributor

aljo242 commented Oct 27, 2022

@tbruyelle is there a more detailed document about this branching style, comparing it to GitFlow (what we are using now)?

@tbruyelle
Copy link
Contributor Author

@aljo242 This flow is inspired by the well known github flow, with additional rules for when we need to fix an existing release while development of the future release has already started.

@aljo242
Copy link
Contributor

aljo242 commented Oct 31, 2022

@ilgooz ^^^

@aljo242 aljo242 added the pr:need-review Change request requires peer review. label Nov 1, 2022
@aljo242
Copy link
Contributor

aljo242 commented Nov 11, 2022

@albttx what do you think?

@albttx
Copy link
Contributor

albttx commented Nov 11, 2022

I'm 100% ok with this.

the current strategie (something close to git flow ) does have issues.

I feel that a much simpler solution can be used:

github-flow

  • We create branches from master to develop features, and merge them into master
  • We use git tags for releases

Some nice docs about

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr:need-review Change request requires peer review. proposal
Projects
None yet
Development

No branches or pull requests

4 participants