[Intel-gfx] [PATCH] dim: Teach fixes subcmd about Cc: stable/-fixes
Imre Deak
imre.deak at intel.com
Wed Mar 23 15:14:51 UTC 2016
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?
Thanks,
Imre
> + fi
> + fi
> }
>
> function dim_help
> diff --git a/drm-intel.rst b/drm-intel.rst
> index 89df24b9a0fd..433a33d6b1cc 100644
> --- a/drm-intel.rst
> +++ b/drm-intel.rst
> @@ -171,6 +171,8 @@ recommended format please generate the Fixes: line using ::
>
> $ dim fixes $regressing_commit
>
> +This will also add the correct Cc: line if one is needed.
> +
> If the Cc: or Fixes: was forgotten, you can still reply to the list with that,
> just like any other tags, and they should be picked up by whoever pushes the
> patch.
More information about the Intel-gfx
mailing list