On Thu, Feb 21, 2019 at 10:57 AM Dave Fisher <dave2w...@comcast.net> wrote:

>
>
> > On Feb 20, 2019, at 6:47 PM, Sijie Guo <guosi...@gmail.com> wrote:
> >
> > On Wed, Feb 20, 2019 at 9:12 PM Ivan Kelly <iv...@apache.org> wrote:
> >
> >>> Can anyone propose a change to current release management? Otherwise it
> >> is
> >>> not a scalable solution because not every committer knows how to handle
> >>> this situation clearly.
> >>
> >> I agree that not every committer knows this.
> >> What has worked well for me in the past is to have _every_ commit go
> >> to master, and cherry-pick nothing until it is decided that a bugfix
> >> release is needed.
> >
> > Then the release manager goes through the list of commits that
> >> occurred on the master branch since the last release on the bugfix
> >> branch, select those that are required for the bugfix release, and
> >> then cherry-pick those, in order, to the bugfix branch.
> >>
> >
> > That works well for me as well. I think the community needs to come up
> with
> > a clear workflow for this.
> >
> > At minimum, a simple rule should be:
> > - if a change is merged to master, it should be "tagged" for a major
> > release;
> > - if a change is merged directly to a branch, it should be "tagged" for a
> > minor release;
> > - if a change is merged to master, and then cherry-picked to a branch, it
> > should be "tagged" for a major release, and then tagged for a minor
> release
> > after cherry-pick. otherwise if we merge a change to master but directly
> > label it for a minor release, IMO this is an "inconsistent" state in a
> > source repo.
>
> Depending on how close to a minor release the branch is on many projects
> the Release Manager decides whether or not a change should be cherry picked.
>
> A “tag” could be used to request a cherry pick.
>

Yeah. If we have agreed on this direction, one proposal for the workflow
can be:

- for every pull request created on master, it should be associated with
major release milestone.
- if the committer who merges the pull request think it should be
cherry-picked to a branch for minor releases, he can label this issue using
`cherry-pick/<minor-release-version>` (e.g. `cherry-pick/2.3.1`). if not
sure, don't attach any `cherry-pick` labels.
- for every pull request created on branches (e.g. branch-2.3), it should
be associated directly with minor release milestone.

When it comes to release a minor release, he should :

1) go through all the issues in current master and pick the issues that are
required to cherry-pick to branches, and label them with `cherry-pick`
label.
2) go through all the issues label with `cherry-pick` label, and
cherry-pick the issues in their commit order in master.
3) once a commit is cherry-picked to branch, remove the cherry-pick label,
and change the milestone to minor release milestone.


> >
> > How to tag the release, and how to cherry-pick is a question to the
> > community. The community should decide and vote a workflow for tagging
> and
> > cherry-pick changes, and *DOCUMENT* it in Pulsar website. So everyone in
> > the community (including committers, contributors, and users) know
> exactly
> > how the release is done.
>
> +1
>
> Regards,
> Dave
>
> >
> >
> >>
> >> -Ivan
> >>
>
>

Reply via email to