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 <[email protected]>
> Cc: Imre Deak <[email protected]>
> ---
>  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: [email protected]
> +             else
> +                     echo Cc: [email protected]
> +             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: [email protected]
> +                     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.
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to