Is there more documentation why a force push to master is necessary?

I read
https://cwiki.apache.org/confluence/display/ARROW/Release+Management+Guide#ReleaseManagementGuide-Mainsourcereleaseandvote
which says

- The local release branch has some unpushed commits such as bumping to the
next snapshot version.
- So you need to add these commits to the master branch.
- This needs force push.

The first two sound logical, but why couldn't those version bumps be a
merge commit into master?

If this is somehow required only by the java/mvn setup, I'd be happy to
help with that. I haven't worked on the java part of arrow yet, but have
good experience with java and maven.

Cheers,
Jörn


On Wed, Nov 25, 2020 at 10:11 AM Uwe L. Korn <uw...@xhochy.com> wrote:

> Hello Jorge,
>
> I know from the past on the Python/C++ side, we needed to do this for a
> lot of contributors to enable them to work with their branches/PRs again as
> they were overwhelmed with the complexity of these rebases. Personally, I
> wouldn't like to spend much time on whether we should rebase PRs after the
> release for everyone or not but actually get rid of the need to push to
> master to actually get a release candidate out. This is making the work of
> the release manager harder, confuses downstream packagers and also leads to
> the fact that all PRs are diverged when they were touched during the
> release process.
>
> The main headache here is that currently the release tooling on the Java
> side requires us to do this. I know that in the last days someone opened a
> JIRA to get rid of that (and hopefully someone will link to that JIRA in
> this thread). Solving that would be a win for all and also make this
> discussion unnecessary. The main caveat is that the annoyance on the Java
> side pops up mostly with the non-Java devs and thus it was not solved yet.
>
> Cheers
> Uwe
>
> On Wed, Nov 25, 2020, at 5:26 AM, Jorge Cardoso Leitão wrote:
> > Hi,
> >
> > Based on a discussion on PR #8481, I would like to raise a concern around
> > git and the post-actions of a release. The background is that I was
> really
> > confused that someone has force-pushed to a PR that I fielded, re-writing
> > its history and causing the PR to break.
> >
> > @wes and @kszucs quickly explained to me that this is a normal practice
> in
> > this project on every release, to which I was a bit astonished.
> >
> > AFAIK, in open source, there is a strong expectation that PRs are managed
> > by individual contributors, and committers of the project only request
> > contributors to make changes to them, or kindly ask before pushing (not
> > force-pushing) directly to the PR.
> >
> > IMO, by force-pushing to PRs, we are inverting all expectations and
> > sometimes even breaking PRs without consent from the contributor. This
> > drives any reasonable contributor to be pissed off at the team for what
> we
> > just did after a release:
> >
> >    - force-pushed to master
> >    - force-pushed to their PRs
> >    - broke their PRs's CI
> >    - no prior notice or request of any of the above
> >
> > IMO this is confusing and goes against what virtually every open source
> > project does. This process also puts a lot of strain in our CIs when we
> > have an average of 100 open PRs and force-push to all of them at once.
> >
> > As such, I would like to propose a small change in the post-release
> process
> > and to the development practices more generally:
> >
> >    1. stop force-pushing to others' PRs
> >    2. stop pushing to others' PRs without their explicit consent
> >    3. document in the contributing guidelines
> >    <https://github.com/apache/arrow/blob/master/.github/CONTRIBUTING.md>
> >    that master is force-pushed on every release, and the steps that
> >    contributors need to take to bring their PRs to the latest master
> >
> > The underlying principles here are:
> >
> >    - it is the contributor's responsibility to keep the PRs in a "ready
> to
> >    merge" state, rebasing them to master as master changes.
> >    - A force-push to master corresponds to a change in master
> >    - thus it is the contributor's responsibility to rebase their PRs
> >    against the new master.
> >
> > I understand the argument that it is a burden for the contributors to
> keep
> > PRs up-to-date. However, I do not think that this justifies breaking one
> of
> > the most basic assumptions that a contributor has on an open source
> > project. Furthermore, they already have to do it anyways whenever the
> > master changes with breaking changes: the contributor's process is
> already
> > "git fetch upstream && git rebase upstream/master" whenever master
> changes.
> > Whether it changes due to a normal push or a force-push does not really
> > affect this burden when compared to when a merge conflict emerges.
> >
> > Any thoughts?
> > Best,
> > Jorge
> >
>


-- 
*Jörn Horstmann* | Senior Backend Engineer

www.signavio.com
Kurfürstenstraße 111, 10787 Berlin, Germany

Work with us! <https://hubs.ly/H0wwzcr0>


<https://www.linkedin.com/company/signavio/>
<https://www.twitter.com/signavio>   <https://www.facebook.com/signavio>
<https://www.youtube.com/user/signavio>
<https://www.xing.com/companies/signaviogmbh>

<https://t-eu.xink.io/Tracking/Index/kBwAALBtAAAnu0MA0>

HRB 121584 B Charlottenburg District Court, VAT ID: DE265675123
Managing Directors: Dr. Gero Decker, Daniel Rosenthal

Reply via email to