question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

BEP 6: Branching policy

See original GitHub issue

Proposal:

  • Milestones:

    • future (or x.0) – the next major, breaking release
    • nextx.y or x.y.z release, whichever comes first
    • x.ymajor minor changes, non-user breaking
    • x.y.zminor patch changes, regression fixes from x.{y-1} or x.y.{z-1} release
  • Branches:

    • future – aligns with future milestone
    • master – the next x.y milestone
    • release_x.y – branch off master after feature freeze (master becomes x.{y+1})
    • release_x.y.z – the next x.y.z release

The main assumption behind this proposal is that the majority work is done on master for the next x.y milestone. I assume that most changes will require a “break-in” period that can’t be (and shouldn’t be guaranteed) by minor patch releases. I additionally assume that it will be easier for all contributors to target master branch, instead of targeting specific branches, which I leave for project/release maintainers. Thus I assume most external contributions will be made available in x.y releases, unless we (the maintainers) backport those changes to x.{y-1}.z releases.

Minor Patch releases (x.y.z) should not contain any new features and/or major changes of other kind, and thus shouldn’t have more that a dozen (roughly speaking) PRs merged. This will ensure that they can be released quickly and without major breakage, and won’t require extensive testing, which should be left for x.y releases.

Details will need to be figured out, e.g. when exactly release_x.y.z is branched of master, etc.

The alternative is to have only release_x, release_x.y and release_x.y.z branches, but I’m certain that this would cause chaos for external contributors, and make master branch an archive of old releases, instead of what it typically means in git, which is the current development branch.

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Reactions:1
  • Comments:22 (22 by maintainers)

github_iconTop GitHub Comments

3reactions
bryevdvcommented, Sep 28, 2020

@mattpap I have updated the Wiki document I think that restricted to only branching, things are simple enough to not need examples, so I have deleted that empty section. I also made a few tweaks re: prefer to land on current base and cherry-pick backports. Can you look and see if there are any other changes you would like to make before voting to adopt this BEP? I’d like to mark is as implemented by next week at the lastes.

Regarding “dev” branch, I think things have been going well just having branch-x.y be the current branch and switching it right at release. It’s very clear and explicit where changes are landing and it’s also the way some other (fairly larger) projects handle things. So I would propose to keep the new status quo.

1reaction
mattpapcommented, Jun 19, 2020

I will comment soon, though I agree with most of the suggestions.

Read more comments on GitHub >

github_iconTop Results From Across the Web

BEP 6: Branching Strategy · bokeh/bokeh Wiki - GitHub
It is preferable that changes first land on the current base branch, and then specific work to include in a new patch release...
Read more >
Website Instructions FR Y-6 Depository Institution Branch Data ...
The Branch List must be received no later than 90 calendar days following the fiscal year-end of the top-tier holding company, the due...
Read more >
EXTERNAL COMMUNICATIONS POLICY
6.3 External Audiences: Any audience outside the BEP. It includes, but is not limited to, traditional and social news media – see Section...
Read more >
CHAPTER 410 - OPM
6-5. POLICY. It is the policy of the BEP to: a. Provide training and developmental opportunities for employees to meet job performance requirements...
Read more >
Branch and Bound
A lower bounding scheme; Branching rule; Search rule (subproblem selection rule). Overview: For a minimization problem, at a given branch and bound tree ......
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found