[Intel-gfx] [PATCH] dim: Teach fixes subcmd about Cc: stable/-fixes
Daniel Vetter
daniel at ffwll.ch
Wed Mar 23 16:28:27 UTC 2016
On Wed, Mar 23, 2016 at 05:14:51PM +0200, Imre Deak wrote:
> On ke, 2016-03-23 at 16:04 +0100, Daniel Vetter wrote:
> > It's explained in the rules, but tricky. Let's use computers to get it
> > right ;-)
> >
> > Note that Cc: drm-intel-fixes has a few false positives since the
> > script can't predict when exactly the feature cutoff is going to be.
> > But that's better than losing a few bugfixes.
> >
> > Cc: Jani Nikula <jani.nikula at intel.com>
> > Cc: Imre Deak <imre.deak at intel.com>
> > ---
> > dim | 29 +++++++++++++++++++++++++----
> > drm-intel.rst | 2 ++
> > 2 files changed, 27 insertions(+), 4 deletions(-)
> >
> > diff --git a/dim b/dim
> > index 07ebc56cf36f..d9c1be5a687e 100755
> > --- a/dim
> > +++ b/dim
> > @@ -43,8 +43,6 @@
> > # resulting -nightly with the old one. Current the branch must be pushed out
> > # first for rebuild-nightly to pick it up, which means the merge can't be
> > # fixed any more.
> > -# - improve dim tag-contains to automatically print the right Cc: line for
> > -# bugfixes. Or maybe add that logic to dim fixes.
> >
> > # fail on any goof-up
> > set -e
> > @@ -1149,7 +1147,7 @@ function dim_cat_to_fixup
> > function dim_tc
> > {
> > cd $DIM_PREFIX/$DIM_DRM_INTEL
> > - tag=$(git tag --contains $1 | grep ^v | sort -V | head -n 1)
> > + local tag=$(git tag --contains $1 | grep ^v | sort -V | head -n 1)
> > if [[ -n "$tag" ]]; then
> > echo "$tag"
> > else
> > @@ -1164,9 +1162,32 @@ function dim_tc
> >
> > function dim_fixes
> > {
> > - sha1=$1
> > + cd $DIM_PREFIX/$DIM_DRM_INTEL
> > + local sha1=$1
> > +
> > git log -1 $sha1 "--pretty=format:Fixes: %H (\"%s\")%n" | \
> > sed -e 's/\([0-f]\{12\}\)[0-f]*/\1/'
> > +
> > + local tag=$(git tag --contains $1 | grep ^v | sort -V | head -n 1)
> > + if [[ -n "$tag" ]]; then
> > + if echo "$tag" | grep -e "-rc" &> /dev/null ; then
> > + echo Cc: drm-intel-fixes at lists.freedesktop.org
> > + else
> > + echo Cc: stable at vger.kernel.org
> > + fi
> > + else
> > + git fetch $DIM_DRM_INTEL_REMOTE
> > + # Check whether it's already in a feature pile tag
> > + if git merge-base --is-ancestor $sha1 $DIM_DRM_INTEL_REMOTE/drm-intel-next ; then
> > + # Make sure we're in the critical window where we might
> > + # need to cherry-pick to dinf. critical window is -rc5
> > + # up to end of merge window, hence exclude if in -rc1
> > + # through rc-4.
> > + if ! git tag | grep ^v | sort -V | tail -n1 | grep -e "-rc[1-4]$" &> /dev/null ; then
> > + echo Cc: drm-intel-fixes at lists.freedesktop.org
> > + fi
>
> Thanks, this makes things easier.
>
> Could you explain still, the exclusion of rc1-4 timeframe? I understood
> that if the regressing commit is already in drm-next (as shown by the
> fact that it's contained in drm-intel-next) then we need the -fixes
> label regardless. Or do the fixes get upstream via another channel than
> drm-intel-fixes during the rc1-4 timeframe?
If a broken commit is in drm-next but not in -rc/Linus' tree, and rc5
isn't out there yet then the fix will go into Dave's tree with the next
feature pull. Jani doesn't yet do special -fixes pulls for drm-next at
that point. Only once the feature pull train has stopped, then Jani opens
drm-intel-next-fixes (and hence needs the Cc: tags to figure out what to
cherry-pick). If we tag everything as Cc: we just create busywork for Jani
for no gain.
Broken patches which are in upstream ofc always need a Cc: line, but
that's all handled by the first line.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the Intel-gfx
mailing list