From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: Dave Chinner <david@fromorbit.com>
Cc: xfs <linux-xfs@vger.kernel.org>
Subject: Re: [XFS SUMMIT] Ugh, Rebasing Sucks!
Date: Wed, 27 May 2020 19:44:10 -0700 [thread overview]
Message-ID: <20200528024410.GM252930@magnolia> (raw)
In-Reply-To: <20200528000351.GA2040@dread.disaster.area>
On Thu, May 28, 2020 at 10:03:51AM +1000, Dave Chinner wrote:
> On Wed, May 27, 2020 at 11:48:58AM -0700, Darrick J. Wong wrote:
> > Hi everyone,
> >
> > Many of you have complained (both publicly and privately) about the
> > heavy cost of rebasing your development trees, particularly when you're
> > getting close to sending a series out for review. I get it, there have
> > been a lot of large refactoring patchsets coming in the past few kernel
> > cycles, and this has caused a lot of treewide churn. I don't mind
> > cleanups of things that have been weird and wonky about XFS for years,
> > but, frankly, rebasing is soul-grinding.
> >
> > To that end, I propose reducing the frequency of (my own) for-next
> > pushes to reduce how often people feel compelled to rebase when they're
> > trying to get a series ready for review.
> >
> > Specifically, I would like to make an informal for-next push schedule as
> > follows:
> >
> > 1 Between -rc1 and -rc4, I'll collect critical bug fixes for the
> > merge window that just closed. These should be small changes, so
> > I'll put them out incrementally with the goal of landing everything
> > in -rc4, and they shouldn't cause major disruptions for anyone else
> > working on a big patchset. This is more or less what I've been doing
> > up till now -- if it's been on the list for > 24h and someone's
> > reviewed it, I'll put it in for-next for wider testing.
> >
> > 2 A day or two after -rc4 drops. This push is targeted for the next
> > merge window. Coming three weeks after -rc1, I hope this will give
> > everyone enough time for a round of rebase, review, and debugging of
> > large changesets after -rc1. IOWs, the majority of patchsets should
> > be ready to go in before we get halfway to the next merge window.
> >
> > 3 Another push a day or two after -rc6 drops. This will hopefully give
> > everyone a second chance to land patchsets that were nearly ready but
> > didn't quite make it for -rc4; or other cleanups that would have
> > interfered with the first round. Once this is out, we're more or
> > less finished with the big patchsets.
>
> This seems like a reasonable compromise - knowing when updates are
> expected goes a long way to being able to plan development and
> schedule dev tree updates to avoid repeated rebasing.
>
> > 4 Perhaps another big push a day or two after -rc8 drops? I'm not keen
> > on doing this. It's not often that the kernel goes beyond -rc6 and I
> > find it really stressful when the -rc's drag on but people keep
> > sending large new patchsets. Talk about stumbling around in the
> > dark...
>
> IMO it's too late at -rc8 to be including big new changes for the
> merge window. Bug fixes are fine, but not cleanups or features at
> this point because there's too little test and soak time to catch
> brown paper bag bugs before it's in the mainline tree and in much
> more widespread use.
Fair enough. I didn't really like this #4 anyway. Withdrawn. :)
> Same goes for merging new stuff during the merge window - last time
> around we had updates right up to the merge window, then an update
> during the merge window for a second pull request. There just wasn't
> any time when the tree wasn't actively moving forward.
Urk, sorry about that... I was hoping to land a fix for $largeclient
but then the crazy just kept coming. Never gonna do /that/ again. :/
> From my perspective, an update from for-next after the -rc6 update
> gets me all the stuff that will be in the next release. That's the
> major rebase for my work, and everything pulled in from for-next
> starts getting test coverage a couple of weeks out from the merge
> window. Once the merge window closes, another local update to the
> -rc1 kernel (which should be a no-op for all XFS work) then gets
> test coverage for the next release. -rc1 to -rc4 is when
> review/rework for whatever I want merged in -rc4/-rc6 would get
> posted to the list....
<nod>
My workflow is rather different -- I rebase my dev tree off the latest
rc every week, and when a series is ready I port it to a branch off of
for-next. Occasionally I'll port a refactoring from for-next into my
dev tree to keep the code bases similar. Both trees get run through
fstests and $whatnot whenever they change, which mean that most mornings
I'm looking at nightlies.
> This means there's a single rebase event a cycle at -rc6, and the
> rest of the time the tree is pretty stable and the base tree I'm
> testing is almost always the tree that we need to focus dev testing
> on. That is, just before the merge window everyone should be testing
> for-next on a -rc6/-rc7 base, and once -rc1 is out, everyone should
> be testing that kernel through to ~-rc4 at which point it has
> largely stabilised and the cycle starts again....
>
> > 5 Obviously, I wouldn't hold back on critical bug fixes to things that
> > are broken in for-next, since the goal is to promote testing, not
> > hinder it.
>
> *nod*
>
> > Hopefully this will cut down on the "arrrgh I was almost ready to send
> > this but then for-next jumped and nggghghghg" feelings. :/
> >
> > Thoughts? Flames?
>
> Perhaps:
>
> - each patch set that is posted should start with "this is aimed at
> a 5.x.y-rc4/-rc6 merge" or "still work in progress" so that
> everyone has some expectation of when changes are likely to land.
<nod> This would probably help with peoples' ability to distinguish
djwong patchbombs for submission vs. making backups on NYE. ;)
> or:
>
> - aim to land features and complex bug fixes in -rc4 and cleanups in
> -rc6, that way we naturally minimise the rebase work for the
> features/bug fixes that are being landed. This may mean that -rc4
> is a small merge if there are no features/bug fixes that meet the
> -rc4 merge criteria...
I like that idea.
--D
> Cheers,
>
> Dave.
> --
> Dave Chinner
> david@fromorbit.com
next prev parent reply other threads:[~2020-05-28 2:46 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-27 18:48 [XFS SUMMIT] Ugh, Rebasing Sucks! Darrick J. Wong
2020-05-28 0:03 ` Dave Chinner
2020-05-28 2:44 ` Darrick J. Wong [this message]
2020-05-28 12:57 ` Brian Foster
2020-05-28 22:39 ` Dave Chinner
2020-06-03 16:52 ` Darrick J. Wong
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=20200528024410.GM252930@magnolia \
--to=darrick.wong@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