summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorAllen Byrne <50328838+byrnHDF@users.noreply.github.com>2023-07-16 04:36:46 (GMT)
committerGitHub <noreply@github.com>2023-07-16 04:36:46 (GMT)
commitcac778a4c33e9f34eb4825fd82b892e01ca56406 (patch)
tree2b2175f8e8fca683c3ba43b651314e736350c10c /bin
parent9938fc7f518f120c8cfcea8ac20cff6ba1e2a4d1 (diff)
downloadhdf5-cac778a4c33e9f34eb4825fd82b892e01ca56406.zip
hdf5-cac778a4c33e9f34eb4825fd82b892e01ca56406.tar.gz
hdf5-cac778a4c33e9f34eb4825fd82b892e01ca56406.tar.bz2
Merge changes from develop (#3237)
to support official and snapshot releases from Github.
Diffstat (limited to 'bin')
-rwxr-xr-xbin/bbrelease339
-rwxr-xr-xbin/release57
2 files changed, 39 insertions, 357 deletions
diff --git a/bin/bbrelease b/bin/bbrelease
deleted file mode 100755
index c59e2e5..0000000
--- a/bin/bbrelease
+++ /dev/null
@@ -1,339 +0,0 @@
-#!/bin/sh
-#
-# Copyright by The HDF Group.
-# All rights reserved.
-#
-# This file is part of HDF5. The full HDF5 copyright notice, including
-# terms governing use, modification, and redistribution, is contained in
-# the COPYING file, which can be found at the root of the source code
-# distribution tree, or in https://www.hdfgroup.org/licenses.
-# If you do not have access to either file, you may request a copy from
-# help@hdfgroup.org.
-#
-
-# Make a release of hdf5.
-#
-# NOTE:
-# This script differs from bin/release in that this has an added
-# --revision option to create private releases with the code revision
-# hash in the version strings.
-#
-# This script can probably be merged into the original release script in
-# the future.
-
-# Function definitions
-#
-# Print Usage page
-USAGE()
-{
-cat << EOF
-Usage: $0 -d <dir> [-h] [--private] [--revision [--branch BRANCHNAME]] <methods> ...
- -d DIR The name of the directory where the release(s) should be
- placed.
- --branch BRANCHNAME This is to get the correct version of the branch name from the
- repository. BRANCHNAME for v1.8 should be hdf5_1_8.
- -h print the help page.
- --private Make a private release with today's date in version information.
- --revision Make a private release with the code revision number in version information.
- This allows --branch to be used for the file name.
- --branch BRANCHNAME This is to get the correct version of the branch name from the
- repository. BRANCHNAME for v1.8 should be hdf5_1_8.
-
-This must be run at the top level of the source directory.
-The other command-line options are the names of the programs to use
-for compressing the resulting tar archive (if none are given then
-"tar" is assumed):
-
- tar -- use tar and don't do any compressing.
- gzip -- use gzip with "-9" and append ".gz" to the output name.
- bzip2 -- use bzip2 with "-9" and append ".bz2" to the output name.
- zip -- convert all text files to DOS style and form a zip file for Windows use.
-
-An md5 checksum is produced for each archive created and stored in the md5 file.
-
-Examples:
-
- $ bin/release -d /tmp
- /tmp/hdf5-1.8.13-RELEASE.txt
- /tmp/hdf5-1.8.13.md5
- /tmp/hdf5-1.8.13.tar
-
- $ bin/release -d /tmp gzip
- /tmp/hdf5-1.8.13-RELEASE.txt
- /tmp/hdf5-1.8.13.md5
- /tmp/hdf5-1.8.13.tar.gz
-
- $ bin/release -d /tmp tar gzip zip
- /tmp/hdf5-1.8.13-RELEASE.txt
- /tmp/hdf5-1.8.13.md5
- /tmp/hdf5-1.8.13.tar
- /tmp/hdf5-1.8.13.tar.gz
- /tmp/hdf5-1.8.13.tar.zip
-
-EOF
-
-}
-
-# Function name: tar2zip
-# Convert the release tarball to a Windows zipball.
-#
-# Steps:
-# 1. untar the tarball in a temporary directory;
-# Note: do this in a temporary directory to avoid changing
-# the original source directory which may be around.
-# 2. convert all its text files to DOS (LF-CR) style;
-# 3. form a zip file which is usable by Windows users.
-#
-# Parameters:
-# $1 version
-# $2 release tarball
-# $3 output zipball file name
-#
-# Returns 0 if successful; 1 otherwise
-#
-tar2zip()
-{
- if [ $# -ne 3 ]; then
- echo "usage: tar2zip <tarfilename> <zipfilename>"
- return 1
- fi
- ztmpdir=/tmp/tmpdir$$
- mkdir -p $ztmpdir
- version=$1
- tarfile=$2
- zipfile=$3
-
- # step 1: untar tarball in ztmpdir
- (cd $ztmpdir; tar xf -) < $tarfile
- # sanity check
- if [ ! -d $ztmpdir/$version ]; then
- echo "untar did not create $ztmpdir/$version source dir"
- # cleanup
- rm -rf $ztmpdir
- return 1
- fi
- # step 2: convert text files
- # There maybe a simpler way to do this.
- # options used in unix2dos:
- # -k Keep the date stamp
- # -q quiet mode
- # grep redirect output to /dev/null because -q or -s are not portable.
- find $ztmpdir/$version | \
- while read inf; do \
- if file $inf | grep "$inf\: .*text" > /dev/null 2>&1 ; then \
- unix2dos -q -k $inf; \
- fi\
- done
- # step 3: make zipball
- # -9 maximum compression
- # -y Store symbolic links as such in the zip archive
- # -r recursive
- # -q quiet
- (cd $ztmpdir; zip -9 -y -r -q $version.zip $version)
- mv $ztmpdir/$version.zip $zipfile
-
- # cleanup
- rm -rf $ztmpdir
-}
-
-# This command must be run at the top level of the hdf5 source directory.
-# Verify this requirement.
-if [ ! \( -f configure.ac -a -f bin/bbrelease \) ]; then
- echo "$0 must be run at the top level of the hdf5 source directory"
- exit 1
-fi
-
-# Defaults
-DEST=releases
-VERS=`perl bin/h5vers`
-VERS_OLD=
-test "$VERS" || exit 1
-verbose=yes
-release_date=`date +%F`
-today=`date +%Y%m%d`
-pmode='no'
-revmode='no'
-tmpdir="../#release_tmp.$$" # tmp work directory
-CPPLUS_RM_NAME=cpplus_RM
-
-# Restore previous Version information
-RESTORE_VERSION()
-{
- if [ X-${VERS_OLD} != X- ]; then
- echo restoring version information back to $VERS_OLD
- rm -f config/lt_vers.am
- cp $tmpdir/lt_vers.am config/lt_vers.am
- bin/h5vers -s $VERS_OLD
- VERS_OLD=
- fi
-}
-
-
-# Command-line arguments
-while [ -n "$1" ]; do
- arg=$1
- shift
- case "$arg" in
- -d)
- DEST=$1
- shift
- ;;
- -h)
- USAGE
- exit 0
- ;;
- --private)
- pmode=yes
- ;;
- --revision)
- revmode=yes
- ;;
- --branch)
- BRANCHNAME=$1
- shift
- ;;
- -*)
- echo "Unknown switch: $arg" 1>&2
- USAGE
- exit 1
- ;;
- *)
- methods="$methods $arg"
- ;;
- esac
-done
-
-# Default method is tar
-if [ "X$methods" = "X" ]; then
- methods="tar"
-fi
-
-# Create the temporary work directory.
-if mkdir $tmpdir; then
- echo "temporary work directory for release. "\
- "Can be deleted after release completes." > $tmpdir/README
-else
- echo "Failed to mkdir tmpdir($tmpdir)"
- exit 1
-fi
-
-# setup restoration in case of abort.
-trap RESTORE_VERSION 0
-
-if [ X$pmode = Xyes ]; then
- VERS_OLD=$VERS
- # Copy old version of config/lt_vers.am, since it's hard to
- # "undo" changes to it.
- cp config/lt_vers.am $tmpdir
- # Set version information to m.n.r-of$today.
- # (h5vers does not correctly handle just m.n.r-$today.)
- VERS=`echo $VERS | sed -e s/-.*//`-of$today
- echo Private release of $VERS
- bin/h5vers -s $VERS
-fi
-
-if [ X$revmode = Xyes ]; then
- VERS_OLD=$VERS
- echo "Save old version $VERS_OLD for restoration later."
- # Copy old version of config/lt_vers.am, since it's hard to
- # "undo" changes to it.
- cp config/lt_vers.am $tmpdir
- if [ "${BRANCHNAME}" = "" ]; then
- BRANCHNAME=`git symbolic-ref -q --short HEAD`
- fi
- revision=`git rev-parse --short HEAD`
- # Set version information to m.n.r-r$revision.
- # (h5vers does not correctly handle just m.n.r-$today.)
- VERS=`echo $VERS | sed -e s/-.*//`-$revision
- echo Private release of $VERS
- HDF5_VERS=hdf5-$BRANCHNAME-$revision
- echo file base of $HDF5_VERS
- bin/h5vers -s $VERS
- # use a generic directory name for revision releases
- HDF5_IN_VERS=hdfsrc
-else
- # Store hdf5-$VERS ("hdf5-1.7.51", e.g.) to a variable to avoid typos
- HDF5_VERS=hdf5-$VERS
- # directory name matches tar file name for non-revision releases
- HDF5_IN_VERS=$HDF5_VERS
-fi
-
-test "$verbose" && echo "Releasing $HDF5_VERS to $DEST" 1>&2
-if [ ! -d $DEST ]; then
- echo " Destination directory $DEST does not exist" 1>&2
- exit 1
-fi
-
-# Create a symlink to the source so files in the tarball have the prefix
-# we want (gnu's --transform isn't portable)
-ln -s `pwd` $tmpdir/$HDF5_IN_VERS || exit 1
-
-# Save a backup copy of Makefile if exists.
-test -f Makefile && mv Makefile $tmpdir/Makefile.x
-cp -p Makefile.dist Makefile
-
-# Update README.md and release_docs/RELEASE.txt with release information in
-# line 1.
-for f in README.md release_docs/RELEASE.txt; do
- echo "HDF5 version $VERS released on $release_date" >$f.x
- sed -e 1d $f >>$f.x
- mv $f.x $f
- # Make sure new files are of the right access mode
- chmod 644 $f
-done
-
-# Create the tar file
-test "$verbose" && echo " Running tar..." 1>&2
-(cd "$tmpdir" && exec tar -ch --exclude-vcs -f "$HDF5_VERS.tar" "./$HDF5_IN_VERS" || exit 1 )
-
-# Compress
-MD5file=$HDF5_VERS.md5
-cp /dev/null $DEST/$MD5file
-for comp in $methods; do
- case $comp in
- tar)
- cp -p $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.tar
- (cd $DEST; md5sum $HDF5_VERS.tar >> $MD5file)
- ;;
- gzip)
- test "$verbose" && echo " Running gzip..." 1>&2
- gzip -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.gz
- (cd $DEST; md5sum $HDF5_VERS.tar.gz >> $MD5file)
- ;;
- bzip2)
- test "$verbose" && echo " Running bzip2..." 1>&2
- bzip2 -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.bz2
- (cd $DEST; md5sum $HDF5_VERS.tar.bz2 >> $MD5file)
- ;;
- zip)
- test "$verbose" && echo " Creating zip ball..." 1>&2
- tar2zip $HDF5_IN_VERS $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.zip 1>&2
- (cd $DEST; md5sum $HDF5_VERS.zip >> $MD5file)
- ;;
- *)
- echo "***Error*** Unknown method $comp"
- exit 1
- ;;
- esac
-done
-
-# Copy the RELEASE.txt to the release area.
-cp release_docs/RELEASE.txt $DEST/$HDF5_VERS-RELEASE.txt
-
-# Remove distributed Makefile and restore previous Makefile if existed.
-rm -f Makefile
-test -f $tmpdir/Makefile.x && mv $tmpdir/Makefile.x Makefile
-
-# Restore OLD version information, then no need for trap.
-if [ X$pmode = Xyes ] || [ X$revmode = Xyes ]; then
- echo "Restore the original version $VERS_OLD"
- RESTORE_VERSION
- trap 0
-fi
-
-# Remove temporary things
-rm -rf $tmpdir
-
-echo "DONE"
-
-exit 0
diff --git a/bin/release b/bin/release
index ad4b7b5..ea75c19 100755
--- a/bin/release
+++ b/bin/release
@@ -19,14 +19,14 @@
USAGE()
{
cat << EOF
-Usage: $0 -d <dir> [--docver BRANCHNAME] [-h] [--private] <methods> ...
+Usage: $0 -d <dir> [-h] [--private] [--revision [--branch BRANCHNAME]] <methods> ...
-d DIR The name of the directory where the release(s) should be
placed.
- --docver BRANCHNAME This is added for 1.8 and beyond to get the correct
- version of documentation files from the hdf5docs
+ --branch BRANCHNAME This is to get the correct version of the branch name from the
repository. BRANCHNAME for v1.8 should be hdf5_1_8.
-h print the help page.
--private Make a private release with today's date in version information.
+ --revision Make a private release with the code revision number in version information.
This must be run at the top level of the source directory.
The other command-line options are the names of the programs to use
@@ -407,8 +407,8 @@ verbose=yes
release_date=`date +%F`
today=`date +%Y%m%d`
pmode='no'
+revmode='no'
tmpdir="../#release_tmp.$$" # tmp work directory
-DOC_URL=https://git@bitbucket.hdfgroup.org/scm/hdffv/hdf5doc.git
CPPLUS_RM_NAME=cpplus_RM
MAINT_MODE_ENABLED=""
@@ -449,8 +449,11 @@ while [ -n "$1" ]; do
--private)
pmode=yes
;;
- --docver)
- DOCVERSION=$1
+ --revision)
+ revmode=yes
+ ;;
+ --branch)
+ BRANCHNAME=$1
shift
;;
-*)
@@ -490,12 +493,34 @@ if [ X$pmode = Xyes ]; then
# (h5vers does not correctly handle just m.n.r-$today.)
VERS=`echo $VERS | sed -e s/-.*//`-of$today
echo Private release of $VERS
-else
bin/h5vers -s $VERS
fi
-# Store hdf5-$VERS ("hdf5-1.7.51", e.g.) to a variable to avoid typos
-HDF5_VERS=hdf5-$VERS
+if [ X$revmode = Xyes ]; then
+ VERS_OLD=$VERS
+ echo "Save old version $VERS_OLD for restoration later."
+ # Copy old version of config/lt_vers.am, since it's hard to
+ # "undo" changes to it.
+ cp config/lt_vers.am $tmpdir
+ if [ "${BRANCHNAME}" = "" ]; then
+ BRANCHNAME=`git symbolic-ref -q --short HEAD`
+ fi
+ revision=`git rev-parse --short HEAD`
+ # Set version information to m.n.r-r$revision.
+ # (h5vers does not correctly handle just m.n.r-$today.)
+ VERS=`echo $VERS | sed -e s/-.*//`-$revision
+ echo Private release of $VERS
+ HDF5_VERS=hdf5-$BRANCHNAME-$revision
+ echo file base of $HDF5_VERS
+ bin/h5vers -s $VERS
+ # use a generic directory name for revision releases
+ HDF5_IN_VERS=hdfsrc
+else
+ # Store hdf5-$VERS ("hdf5-1.7.51", e.g.) to a variable to avoid typos
+ HDF5_VERS=hdf5-$VERS
+ # directory name matches tar file name for non-revision releases
+ HDF5_IN_VERS=$HDF5_VERS
+fi
test "$verbose" && echo "Releasing $HDF5_VERS to $DEST" 1>&2
if [ ! -d $DEST ]; then
@@ -505,7 +530,7 @@ fi
# Create a symlink to the source so files in the tarball have the prefix
# we want (gnu's --transform isn't portable)
-ln -s `pwd` $tmpdir/$HDF5_VERS || exit 1
+ln -s `pwd` $tmpdir/$HDF5_IN_VERS || exit 1
# Save a backup copy of Makefile if exists.
test -f Makefile && mv Makefile $tmpdir/Makefile.x
@@ -521,14 +546,9 @@ for f in README.md release_docs/RELEASE.txt; do
chmod 644 $f
done
-# develop is different than branches.
-if [ "${DOCVERSION}" ]; then
- DOC_URL="$DOC_URL -b ${DOCVERSION}"
-fi
-
# Create the tar file
test "$verbose" && echo " Running tar..." 1>&2
-(cd "$tmpdir" && exec tar -ch --exclude-vcs -f "$HDF5_VERS.tar" "./$HDF5_VERS" || exit 1 )
+(cd "$tmpdir" && exec tar -ch --exclude-vcs -f "$HDF5_VERS.tar" "./$HDF5_IN_VERS" || exit 1 )
# Compress
SHA256=$HDF5_VERS.sha256
@@ -561,7 +581,7 @@ for comp in $methods; do
;;
zip)
test "$verbose" && echo " Creating zip ball..." 1>&2
- tar2zip $HDF5_VERS $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.zip 1>&2
+ tar2zip $HDF5_IN_VERS $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.zip 1>&2
(cd $DEST; sha256sum $HDF5_VERS.zip >> $SHA256)
;;
cmake-zip)
@@ -607,7 +627,8 @@ rm -f Makefile
test -f $tmpdir/Makefile.x && mv $tmpdir/Makefile.x Makefile
# Restore OLD version information, then no need for trap.
-if [ X$pmode = Xyes ]; then
+if [ X$pmode = Xyes ] || [ X$revmode = Xyes ]; then
+ echo "Restore the original version $VERS_OLD"
RESTORE_VERSION
trap 0
fi