public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: Dave Chinner <david@fromorbit.com>
Cc: Allison Henderson <allison.henderson@oracle.com>,
	linux-xfs@vger.kernel.org
Subject: Re: [GIT PULL] xfs: Delay Ready Attributes
Date: Wed, 9 Jun 2021 17:28:06 -0700	[thread overview]
Message-ID: <20210610002806.GA2945738@locust> (raw)
In-Reply-To: <20210609220339.GO664593@dread.disaster.area>

On Thu, Jun 10, 2021 at 08:03:39AM +1000, Dave Chinner wrote:
> On Wed, Jun 09, 2021 at 12:44:47PM -0700, Allison Henderson wrote:
> > Hi Darrick,
> > 
> > I've created a branch and tag for the delay ready attribute series.  I'ved
> > added the rvbs since the last review, but otherwise it is unchanged since
> > v20.
> > 
> > Please pull from the tag decsribed below.
> 
> Yay! At last! Good work, Allison. :)

Yes, indeed.  Pulled!

> Nothing to worry about here, but I thought I'd make an observation
> on the construction branches for pull requests seeing as pull
> request are becoming our way of saying "this code is ready to
> merge". 
> 
> > Thanks!
> > Allison
> > 
> > The following changes since commit 0fe0bbe00a6fb77adf75085b7d06b71a830dd6f2:
> > 
> >   xfs: bunmapi has unnecessary AG lock ordering issues (2021-05-27 08:11:24 -0700)
> 
> This looks like it has been built on top of a specific commit in the
> linux-xfs tree - perhaps a for-next branch before all the most
> recent development branches have been merged in.

Yes, it's the xfs-5.13-fixes-3 tag at the end of the 5.13 fixes branch.

> The problem with doing this is that the for-next tree can rebase,
> which can leave your tree with orphaned commits that are no longer
> in the main development branch or upstream. While these commits
> are upstream now, this isn't an issue for this particular branch
> and pull request.
> 
> i.e. if the recent rebase of the for-next branch rewrote the above
> commit, pulling this branch would cause all sorts of problems.
> 
> So to avoid this sort of issue with pull requests, and to allow the
> maintainer (darrick) to be able to easily reformulate the for-next
> tree just by merging branches, pull requests should all come from a
> known upstream base. In the case of pull requests for the xfs tree,
> that known base is the master branch of the XFS tree.

This is a good point.  Branches should be based off of something that's
stable, recent, and relatively close to the current development work.

Ideally that would be for-next, but I hadn't actually declared that
stable yet since I just started accepting pull requests and wanted a
couple of days to make sure nothing totally weird happened with Stephen
Rothwell's integration merge.

With for-next in flux, basing your branch off the end of the fixes
branch, or an upstream Linus release some time after that, are good
enough choices... since I hadn't updated xfs-linux.git#master in a
while.

For the past 4.5 years, the pattern has always been that the most recent
fixes branch (xfs-5.X-fixes) gets merged into upstream before I create
the xfs-5.(X+1)-merge branch.  This could get murky if I ever have
enough bandwidth to be building a fixes branch and a merge branch at the
same time, but TBH if xfs is so unstable that we /need/ fixes past -rc4
then we really should concentrate on that at the expense of merging new
code.

I guess that means I should be updating xfs-linux.git#master to point to
the most recent -rc with any Xfs changes in it.

> The only time that you wouldn't do this is when your work is
> dependent on some other set of fixes. Those fixes then need to be
> in a stable upstream branch somewhere, which you then merge into
> your own dev branch based on xfs/master and the put your own commits
> on top of. IOWs, you start your own branch with a merge commit...
> 
> If you do this, you should note in the pull request that there are
> other branches merged into this pull request and where they came
> from. THat way the maintainer can determine if the branch is
> actually stable and will end up being merged upstream unchanged from
> it's current state.
> 
> It is also nice to tell the maintainer that you've based the branch
> on a stable XFS commit ahead of the current master branch. This
> might be necessary because there's a dependency between multiple
> development branches that are being merged one at a time in seperate
> pull requests.

Agreed.

> 
> In terms of workflow, what this means is that development is done on
> a xfs/master based branch. i.e. dev branches are built like this:
> 
> $ git checkout -b dev-branch-1 xfs/master
> $ git merge remote/stable-dev-branch
> $ git merge local-dependent-dev-branch
> $ <apply all your changes>
> $ <build kernel and test>
> 
> And for testing against the latest -rc (say 5.13-rc5) and for-next
> kernels you do:
> 
> $ git checkout -b testing v5.13-rc5
> $ git merge xfs/for-next
> $ git merge dev-branch-1
> <resolve conflicts>
> $ git merge dev-branch-2
> <resolve conflicts>
> ....
> $ git merge dev-branch-N
> <resolve conflicts>
> $ <build kernel and test>

Whee, the modern era... :)

> This means that each dev branch has all the correct dependencies
> built into it, and they can be pulled by anyone without perturbing
> their local tree for testing and review because they are all working
> on the same xfs/master branch as your branches are.
> 
> This also means that the xfs/for-next tree can remain based on
> xfs/master and be reformulated against xfs/master in a repeatable
> manner. It just makes everything easier if all pull requests are
> sent from the same stable base commit...
> 
> Anyway, this isn't an issue for this pull-req because it is based on
> a stable XFS commit in a branch based on xfs/master, but I thought
> it's worth pointing out the pitfalls of using random stable commits
> as the base for pull requests so everyone knows what they should be
> doing as it's not really documented anywhere. :)

Agreed, though this isn't entirely a "random stable commit", it's the
end of the most recent stable branch.

--D

> 
> Cheers,
> 
> Dave.
> -- 
> Dave Chinner
> david@fromorbit.com

  reply	other threads:[~2021-06-10  0:28 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-09 19:44 [GIT PULL] xfs: Delay Ready Attributes Allison Henderson
2021-06-09 22:03 ` Dave Chinner
2021-06-10  0:28   ` Darrick J. Wong [this message]
2021-06-10  1:49     ` Dave Chinner
2021-06-13  0:36       ` Darrick J. Wong
2021-06-10  7:20     ` Allison Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210610002806.GA2945738@locust \
    --to=djwong@kernel.org \
    --cc=allison.henderson@oracle.com \
    --cc=david@fromorbit.com \
    --cc=linux-xfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox