+1
Makes a lot of sense to me. Thanks, Sijie.

Cheers,
Chris

On Fri, 17 Jan 2020 at 07:41, Sijie Guo <guosi...@gmail.com> wrote:

> Hi all,
>
> As we are discussing cutting a release for 2.4.3 in another thread, we
> should discuss how to label the changes (pull requests) for minor releases.
>
> Currently, we used milestones for both major releases (e.g. 2.5.0) and
> minor releases (e.g. 2.4.3). A change will be first merged to master and
> released for the upcoming major release, and the change can *potentially*
> be cherry-picked to a branch for patching a minor release.
>
> For example, let's say pull request X is merged to master and released in
> 2.5.0. If we need this change to be committed for a 2.4.3 release, we can't
> simply change the milestone to 2.4.3 because this change is already marked
> as released in 2.5.0.
>
> The limitation of milestones introduces the troubles for managing
> concurrent major and minor releases. Hence we need to look for a solution
> for addressing the problems.
>
> I am proposing the followings:
>
> 1. We keep using milestone *ONLY* for major releases, such as 2.5.0, 2.6.0
> and etc.
> 2. We DONT use milestones for minor releases.
> 3. We use `release/x.y.z` labels for minor releases, such as 2.4.3, 2.5.1
> and etc.
>
> In this way, we are able to track which releases that a pull request is
> included in.
>
> Hence the merge process will be much clearer.
>
> 1) when merging a pull request, add the milestone (major release) to this
> pull request that it belongs.
> 2) if this pull request is needed for a minor(/patch) release for a
> previous major release, add the minor release label.
> 3) at the time of cutting a minor release, the release manager can go
> through all issues labeled for it and cherry-pick to the given branch.
>
> In the future, we can introduce the merge tool (or a merge bot) to automate
> this merge or cherry-pick process if needed.
>
> Thoughts?
>
> - Sijie
>


-- 
Chris Bartholomew
Kafkaesque
chris.bartholo...@kafkaesque.io

Reply via email to