mirror of https://github.com/CGAL/cgal
Commit several improvement i made:
- New option --do-not-tag that allows to using the script with --do-it
without creating the tag.
- The script no longer sends emails for a long time. Update the usage
text and remove the no longer used variable MAILTO.
- The script now reads a configuration file, named
$HOME/.cgal_create_new_release_rc
For example, mine contains:
TMPDIR=$HOME/CGAL/create_internal_release
HTML_DIR=/var/CGAL/www/Members/Releases
- The script now uses and absolute path for SOURCES_DIR.
- If the file ${VERSION_FILE} (aka "version_number") is not present,
use svn to compute a new release number.
This commit is contained in:
parent
7474f47add
commit
487541cf0e
|
|
@ -13,11 +13,12 @@
|
||||||
# [new] : create_internal_release should not know about internal/public mode.
|
# [new] : create_internal_release should not know about internal/public mode.
|
||||||
# - Merge [some parts] into ./create_internal_release ?
|
# - Merge [some parts] into ./create_internal_release ?
|
||||||
|
|
||||||
DO_RPM="" # Also build RPMs (no RPMs by default)
|
DO_RPM="" # Also build RPMs (no RPMs by default)
|
||||||
DO_PUBLIC="" # Also build the public versions
|
DO_PUBLIC="" # Also build the public versions
|
||||||
DO_IT="" # Real mode (svn tag, mail, copy to HTTP server), versus local testing
|
DO_IT="" # Real mode (svn tag, copy to HTTP server), versus local testing
|
||||||
SOURCES_DIR="trunk" # SVN working copy directory, default is "trunk"
|
DO_NOT_TAG="" # If set, do not call svn tag
|
||||||
VERBOSE="" # Verbose mode (displays log to standard err)
|
SOURCES_DIR="$PWD/trunk" # SVN working copy directory, default is "$PWD/trunk"
|
||||||
|
VERBOSE="" # Verbose mode (displays log to standard err)
|
||||||
|
|
||||||
# Parsing command-line
|
# Parsing command-line
|
||||||
while [ $1 ]; do
|
while [ $1 ]; do
|
||||||
|
|
@ -25,12 +26,13 @@ while [ $1 ]; do
|
||||||
-h|-help|--h|--help)
|
-h|-help|--h|--help)
|
||||||
echo 'Usage : create_new_release [--help] [--rpm] [--public] [--do-it] <packages directory>'
|
echo 'Usage : create_new_release [--help] [--rpm] [--public] [--do-it] <packages directory>'
|
||||||
echo
|
echo
|
||||||
echo ' --help : prints this usage help'
|
echo ' --help : prints this usage help'
|
||||||
echo ' --rpm : also build the corresponding SRPMs'
|
echo ' --rpm : also build the corresponding SRPMs'
|
||||||
echo ' --public : also build the corresponding public versions'
|
echo ' --public : also build the corresponding public versions'
|
||||||
echo ' --do-it : the real thing (NOT for local tests! Only for the release master!),'
|
echo ' --do-it : the real thing (NOT for local tests! Only for the release'
|
||||||
echo ' does write operations (updating the version_number, svn tag,'
|
echo ' master! Does write operations (updating the version_number,'
|
||||||
echo ' sending mail, copying on the web server...)'
|
echo ' svn tag, copying on the web server...)'
|
||||||
|
echo ' --do-not-tag : when used with --do-it, the tag is not created.'
|
||||||
echo ' --verbose : print log to standard output, instead of the log file'
|
echo ' --verbose : print log to standard output, instead of the log file'
|
||||||
echo ' <packages directory> : the directory containing the packages [default is trunk]'
|
echo ' <packages directory> : the directory containing the packages [default is trunk]'
|
||||||
exit
|
exit
|
||||||
|
|
@ -47,6 +49,10 @@ while [ $1 ]; do
|
||||||
DO_IT="y"
|
DO_IT="y"
|
||||||
shift; continue
|
shift; continue
|
||||||
;;
|
;;
|
||||||
|
--do-not-tag)
|
||||||
|
DO_NOT_TAG="y"
|
||||||
|
shift; continue
|
||||||
|
;;
|
||||||
--verbose)
|
--verbose)
|
||||||
VERBOSE="y"
|
VERBOSE="y"
|
||||||
shift; continue
|
shift; continue
|
||||||
|
|
@ -69,7 +75,6 @@ VERSION_FILE="version_number"
|
||||||
# Where to put the resulting tarball and where to send the announce.
|
# Where to put the resulting tarball and where to send the announce.
|
||||||
HTML_DIR="/u/agrion/geometrica/CGAL/Members/Releases"
|
HTML_DIR="/u/agrion/geometrica/CGAL/Members/Releases"
|
||||||
URL="http://cgal.inria.fr/CGAL/Members/Releases"
|
URL="http://cgal.inria.fr/CGAL/Members/Releases"
|
||||||
MAILTO="cgal-develop@lists-sop.inria.fr"
|
|
||||||
|
|
||||||
# SVN repository
|
# SVN repository
|
||||||
SVNCGAL="svn+ssh://scm.gforge.inria.fr/svn/cgal"
|
SVNCGAL="svn+ssh://scm.gforge.inria.fr/svn/cgal"
|
||||||
|
|
@ -79,6 +84,10 @@ PATH=$PATH:/usr/local/bin:/usr/bin/gnu
|
||||||
# Working dir
|
# Working dir
|
||||||
TMPDIR="`pwd`"
|
TMPDIR="`pwd`"
|
||||||
|
|
||||||
|
if [ -f $HOME/.cgal_create_new_release_rc ]; then
|
||||||
|
. $HOME/.cgal_create_new_release_rc
|
||||||
|
fi
|
||||||
|
|
||||||
[ -z "$DO_IT" ] && HTML_DIR=$TMPDIR/tmp
|
[ -z "$DO_IT" ] && HTML_DIR=$TMPDIR/tmp
|
||||||
[ -d "$HTML_DIR" ] || mkdir "$HTML_DIR"
|
[ -d "$HTML_DIR" ] || mkdir "$HTML_DIR"
|
||||||
|
|
||||||
|
|
@ -108,22 +117,25 @@ MAJOR_NUMBER=`cat ${NUMBERS_DIR}/MAJOR_NUMBER` # 2 digits max
|
||||||
MINOR_NUMBER=`cat ${NUMBERS_DIR}/MINOR_NUMBER` # 2 digits max
|
MINOR_NUMBER=`cat ${NUMBERS_DIR}/MINOR_NUMBER` # 2 digits max
|
||||||
BUGFIX_NUMBER=`cat ${NUMBERS_DIR}/BUGFIX_NUMBER` # 1 digit max
|
BUGFIX_NUMBER=`cat ${NUMBERS_DIR}/BUGFIX_NUMBER` # 1 digit max
|
||||||
|
|
||||||
|
# Do not show the bugfix number if it is 0.
|
||||||
|
if [ x"$BUGFIX_NUMBER" != "x0" ]; then
|
||||||
|
BUGFIX_STRING=".$BUGFIX_NUMBER"
|
||||||
|
else
|
||||||
|
BUGFIX_STRING=""
|
||||||
|
fi
|
||||||
|
|
||||||
# Compute the internal release number.
|
# Compute the internal release number.
|
||||||
if [ -r $VERSION_FILE ]; then
|
if [ -r $VERSION_FILE ]; then
|
||||||
INTERNAL_NUMBER=$(( `cat $VERSION_FILE` + 1 ))
|
INTERNAL_NUMBER=$(( `cat $VERSION_FILE` + 1 ))
|
||||||
[ "$DO_IT" ] && printf "%d\n" "${INTERNAL_NUMBER}" > $VERSION_FILE
|
[ "$DO_IT" ] && printf "%d\n" "${INTERNAL_NUMBER}" > $VERSION_FILE
|
||||||
else
|
else
|
||||||
INTERNAL_NUMBER=0
|
INTERNAL_NUMBER=$(("`svn ls $SVNCGAL/tags/internal-releases | awk "/${MAJOR_NUMBER}\\.${MINOR_NUMBER}${BUGFIX_STRING}/ "'{FS="-|/"; print $4}' | sort -n | tail -1`" + 1 ))
|
||||||
|
fi
|
||||||
|
if [ -z "$INTERNAL_NUMBER" ]; then
|
||||||
|
INTERNAL_NUMBER=1
|
||||||
fi
|
fi
|
||||||
INTERNAL_STRING="-I-${INTERNAL_NUMBER}"
|
INTERNAL_STRING="-I-${INTERNAL_NUMBER}"
|
||||||
internal_nr=`printf "%4s" "${INTERNAL_NUMBER}" | sed "y/ /0/"`
|
internal_nr=`printf "%4s" "${INTERNAL_NUMBER}" | sed "y/ /0/"`
|
||||||
|
|
||||||
# Do not show the bugfix number if it is 0.
|
|
||||||
if [ $BUGFIX_NUMBER != "0" ]; then
|
|
||||||
BUGFIX_STRING=".$BUGFIX_NUMBER"
|
|
||||||
else
|
|
||||||
BUGFIX_STRING=""
|
|
||||||
fi
|
|
||||||
release_name="CGAL-${MAJOR_NUMBER}.${MINOR_NUMBER}${BUGFIX_STRING}${INTERNAL_STRING}"
|
release_name="CGAL-${MAJOR_NUMBER}.${MINOR_NUMBER}${BUGFIX_STRING}${INTERNAL_STRING}"
|
||||||
echo "${release_name}"
|
echo "${release_name}"
|
||||||
major_nr=`printf "%2s" "${MAJOR_NUMBER}" | sed "y/ /0/"`
|
major_nr=`printf "%2s" "${MAJOR_NUMBER}" | sed "y/ /0/"`
|
||||||
|
|
@ -133,7 +145,7 @@ release_number="1${major_nr}${minor_nr}${bugfix_nr}${internal_nr}"
|
||||||
echo "Release number is ${release_number}"
|
echo "Release number is ${release_number}"
|
||||||
|
|
||||||
# Create the release
|
# Create the release
|
||||||
${SOURCES_DIR}/Scripts/developer_scripts/create_internal_release -a ${TMPDIR}/${SOURCES_DIR} -r ${release_name} -n ${release_number}
|
${SOURCES_DIR}/Scripts/developer_scripts/create_internal_release -a ${SOURCES_DIR} -r ${release_name} -n ${release_number}
|
||||||
# Add the SVN revision to version.h
|
# Add the SVN revision to version.h
|
||||||
cd "${release_name}"
|
cd "${release_name}"
|
||||||
sed -i -e "s/define CGAL_SVN_REVISION .*/define CGAL_SVN_REVISION $CGAL_SVN_REVISION/" include/CGAL/version.h
|
sed -i -e "s/define CGAL_SVN_REVISION .*/define CGAL_SVN_REVISION $CGAL_SVN_REVISION/" include/CGAL/version.h
|
||||||
|
|
@ -144,8 +156,8 @@ gzip "${release_name}.tar"
|
||||||
cp "${release_name}.tar.gz" "${HTML_DIR}"
|
cp "${release_name}.tar.gz" "${HTML_DIR}"
|
||||||
echo "${release_name}.tar.gz" > "${HTML_DIR}/LATEST"
|
echo "${release_name}.tar.gz" > "${HTML_DIR}/LATEST"
|
||||||
|
|
||||||
# Send mail and tag
|
# Tag
|
||||||
if [ "$DO_IT" ]; then
|
if [ "$DO_IT" -a -z "$DO_NOT_TAG" ]; then
|
||||||
# mail -s "[automatic] ${release_name} is released" ${MAILTO} <<EOF
|
# mail -s "[automatic] ${release_name} is released" ${MAILTO} <<EOF
|
||||||
#
|
#
|
||||||
#You can fetch it at :
|
#You can fetch it at :
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue