Note that at any time you can change your GitHub settings to disallow
your branches from being edited by maintainers.

On Wed, Nov 25, 2020 at 7:51 AM Wes McKinney <wesmck...@gmail.com> wrote:
>
> > The first two sound logical, but why couldn't those version bumps be a
> merge commit into master?
>
> We've made the commitment to maintaining a linear commit history in
> this project.
>
> Auto-rebasing the PRs at this point is best described as "harm
> reduction". The root cause is GitHub's UI which shows a bunch of
> unrelated commits in the UI when a PR is based on a commit that no
> longer exists due to the rebase. This can confuse people and sometimes
> cause them to engage in incorrect actions (trying to "git merge" in
> various ways) that cause their branches to get very messed up. If we
> were using another code review system (like Gerrit), this problem
> wouldn't exist.
>
> We can stop rebasing PRs after releases, but it *is* overall going to
> make life more difficult for the project's maintainers and
> contributors -- we know this based on what has occurred in the past.
> The current policy is the most pragmatic policy, even if it is not the
> most technically pure.
>
> >    2. stop pushing to others' PRs without their explicit consent
>
> Since I've edited people's branches to fix problems or address minor
> issues countless times, this would create a lot of hardship for me and
> other maintainers. This is another pragmatism vs. technical purity
> question.
>
> One possible middle ground here is to create a "disallow-list" for
> contributors who don't want their PRs edited by tools.
>
> On Wed, Nov 25, 2020 at 4:33 AM Jörn Horstmann
> <joern.horstm...@signavio.com> wrote:
> >
> > 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