Rewrite maintainer-scripts/update_version_git

Message ID 20200527075545.GX8462@tucnak
State New
Headers show
Series
  • Rewrite maintainer-scripts/update_version_git
Related show

Commit Message

Qing Zhao via Gcc-patches May 27, 2020, 7:55 a.m.
Hi!

This patch rewrites update_version_git to be just a thin wrapper around
Martin's new python script.  This just arranges to check out the gcc
repo in a temporary directory, copy out the contrib scripts so that
the running script doesn't change with branch checkouts and runs the script.

I've run it today manually but hopefully we can do it from cron again
from tomorrow.

Ok for trunk?

2020-05-27  Jakub Jelinek  <jakub@redhat.com>

	* update_version_git: Rewrite using
	contrib/gcc-changelog/git_update_version.py.


	Jakub

Comments

Richard Biener May 27, 2020, 8:12 a.m. | #1
On Wed, 27 May 2020, Jakub Jelinek wrote:

> Hi!

> 

> This patch rewrites update_version_git to be just a thin wrapper around

> Martin's new python script.  This just arranges to check out the gcc

> repo in a temporary directory, copy out the contrib scripts so that

> the running script doesn't change with branch checkouts and runs the script.

> 

> I've run it today manually but hopefully we can do it from cron again

> from tomorrow.

> 

> Ok for trunk?


OK.

Richard.
> 

> 2020-05-27  Jakub Jelinek  <jakub@redhat.com>

> 

> 	* update_version_git: Rewrite using

> 	contrib/gcc-changelog/git_update_version.py.

> 

> --- maintainer-scripts/update_version_git.jj

> +++ maintainer-scripts/update_version_git

> @@ -1,85 +1,28 @@

>  #!/bin/sh

>  #

> -# Update the current version date in all files in the tree containing

> -# it.  Consider all single-component-version release branches except

> -# those matching the regular expression in $IGNORE_BRANCHES, and also

> -# consider those branches listed in the space separated list in

> -# $ADD_BRANCHES.

> +# Update the current version date in DATESTAMP files and generate

> +# ChangeLog file entries since the last DATESTAMP update from the

> +# commit messages.

>  

>  GITROOT=${GITROOT:-"/git/gcc.git"}

> -IGNORE_BRANCHES='releases/gcc-(.*\..*|5|6|7)'

> -ADD_BRANCHES='master'

>  

>  # Run this from /tmp.

>  export GITROOT

> -BASEDIR=/tmp/$$

> -/bin/rm -rf "$BASEDIR"

> -/bin/mkdir "$BASEDIR"

> +BASEDIR=`mktemp -d`

>  cd "$BASEDIR"

>  

>  GIT=${GIT:-/usr/local/bin/git}

>  

> -# Compute the branches which we should update.

> -BRANCHES=`(cd $GITROOT \

> -	   && ${GIT} for-each-ref --format='%(refname)' \

> -		     'refs/heads/releases/gcc-*') \

> -	  | sed -e 's/refs\/heads\///' \

> -          | egrep -v $IGNORE_BRANCHES`

> -# Always update the mainline.

> -BRANCHES="${ADD_BRANCHES} ${BRANCHES}"

> -

> -# This is put into the datestamp files.

> -CURR_DATE=`/bin/date +"%Y%m%d"`

> -

> -datestamp_FILES="gcc/DATESTAMP"

> -

> -

>  # Assume all will go well.

> -RESULT=0

>  SUBDIR=$BASEDIR/gcc

> -for BRANCH in $BRANCHES; do

> -  echo "Working on \"$BRANCH\"."

> -  # Check out the files on the branch.

> -  if [ -d "$SUBDIR" ]; then

> -    cd "$SUBDIR"

> -    ${GIT} pull -q

> -    ${GIT} checkout -q "$BRANCH"

> -  else

> -    ${GIT} clone -q -b "$BRANCH" "$GITROOT" "$SUBDIR"

> -  fi

> -

> -  # There are no files to commit yet.

> -  COMMIT_FILES=""

> -

> -  cd "$SUBDIR"

> -  for file in $datestamp_FILES; do

> -    if test -f $file; then

> -      echo "${CURR_DATE}" > $file.new

> +${GIT} clone -q -b master "$GITROOT" "$SUBDIR"

>  

> -      if /usr/bin/cmp -s $file $file.new; then

> -	rm -f $file.new

> -      else

> -	mv -f $file.new $file

> -        COMMIT_FILES="$COMMIT_FILES $file"

> -      fi

> -    fi

> -  done

> +cp -a $SUBDIR/contrib/gcc-changelog $BASEDIR/gcc-changelog

> +cd "$SUBDIR"

> +python3 ../gcc-changelog/git_update_version.py -p

> +RESULT=$?

>  

> -  if test -n "$COMMIT_FILES"; then

> -    for i in $COMMIT_FILES; do

> -    echo "Attempting to commit $i"

> -    if ${GIT} commit -m "Daily bump." $i; then

> -      if ! ${GIT} push origin "$BRANCH"; then

> -        # If we could not push the files, indicate failure.

> -        RESULT=1

> -      fi

> -    else

> -      # If we could not commit the files, indicate failure.

> -      RESULT=1

> -    fi

> -    done

> -  fi

> -done

> +cd /tmp

>  

>  /bin/rm -rf $BASEDIR

>  exit $RESULT

> 

> 	Jakub

> 

> 


-- 
Richard Biener <rguenther@suse.de>
SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg,
Germany; GF: Felix Imendörffer; HRB 36809 (AG Nuernberg)

Patch

--- maintainer-scripts/update_version_git.jj
+++ maintainer-scripts/update_version_git
@@ -1,85 +1,28 @@ 
 #!/bin/sh
 #
-# Update the current version date in all files in the tree containing
-# it.  Consider all single-component-version release branches except
-# those matching the regular expression in $IGNORE_BRANCHES, and also
-# consider those branches listed in the space separated list in
-# $ADD_BRANCHES.
+# Update the current version date in DATESTAMP files and generate
+# ChangeLog file entries since the last DATESTAMP update from the
+# commit messages.
 
 GITROOT=${GITROOT:-"/git/gcc.git"}
-IGNORE_BRANCHES='releases/gcc-(.*\..*|5|6|7)'
-ADD_BRANCHES='master'
 
 # Run this from /tmp.
 export GITROOT
-BASEDIR=/tmp/$$
-/bin/rm -rf "$BASEDIR"
-/bin/mkdir "$BASEDIR"
+BASEDIR=`mktemp -d`
 cd "$BASEDIR"
 
 GIT=${GIT:-/usr/local/bin/git}
 
-# Compute the branches which we should update.
-BRANCHES=`(cd $GITROOT \
-	   && ${GIT} for-each-ref --format='%(refname)' \
-		     'refs/heads/releases/gcc-*') \
-	  | sed -e 's/refs\/heads\///' \
-          | egrep -v $IGNORE_BRANCHES`
-# Always update the mainline.
-BRANCHES="${ADD_BRANCHES} ${BRANCHES}"
-
-# This is put into the datestamp files.
-CURR_DATE=`/bin/date +"%Y%m%d"`
-
-datestamp_FILES="gcc/DATESTAMP"
-
-
 # Assume all will go well.
-RESULT=0
 SUBDIR=$BASEDIR/gcc
-for BRANCH in $BRANCHES; do
-  echo "Working on \"$BRANCH\"."
-  # Check out the files on the branch.
-  if [ -d "$SUBDIR" ]; then
-    cd "$SUBDIR"
-    ${GIT} pull -q
-    ${GIT} checkout -q "$BRANCH"
-  else
-    ${GIT} clone -q -b "$BRANCH" "$GITROOT" "$SUBDIR"
-  fi
-
-  # There are no files to commit yet.
-  COMMIT_FILES=""
-
-  cd "$SUBDIR"
-  for file in $datestamp_FILES; do
-    if test -f $file; then
-      echo "${CURR_DATE}" > $file.new
+${GIT} clone -q -b master "$GITROOT" "$SUBDIR"
 
-      if /usr/bin/cmp -s $file $file.new; then
-	rm -f $file.new
-      else
-	mv -f $file.new $file
-        COMMIT_FILES="$COMMIT_FILES $file"
-      fi
-    fi
-  done
+cp -a $SUBDIR/contrib/gcc-changelog $BASEDIR/gcc-changelog
+cd "$SUBDIR"
+python3 ../gcc-changelog/git_update_version.py -p
+RESULT=$?
 
-  if test -n "$COMMIT_FILES"; then
-    for i in $COMMIT_FILES; do
-    echo "Attempting to commit $i"
-    if ${GIT} commit -m "Daily bump." $i; then
-      if ! ${GIT} push origin "$BRANCH"; then
-        # If we could not push the files, indicate failure.
-        RESULT=1
-      fi
-    else
-      # If we could not commit the files, indicate failure.
-      RESULT=1
-    fi
-    done
-  fi
-done
+cd /tmp
 
 /bin/rm -rf $BASEDIR
 exit $RESULT