From 8a364dd086df040af0bef02515f90841e0a8dc88 Mon Sep 17 00:00:00 2001 From: Allen Byrne <50328838+byrnHDF@users.noreply.github.com> Date: Tue, 18 Jul 2023 06:27:54 -0500 Subject: Merge changes from develop (#3238) * Merge changes from develop * Add last snapshot name * Merge bbrelease into release --- .gitattributes | 1 - .github/workflows/release-files.yml | 34 ++-- .github/workflows/release.yml | 97 +++++++---- .github/workflows/tarball.yml | 2 +- bin/bbrelease | 339 ------------------------------------ bin/release | 67 ++++--- 6 files changed, 136 insertions(+), 404 deletions(-) delete mode 100755 bin/bbrelease diff --git a/.gitattributes b/.gitattributes index a1a7f8f..52722da 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,5 +1,4 @@ * text=auto !eol -bin/bbrelease -text bin/genparser -text bin/switch_maint_mode -text c++/src/H5OcreatProp.cpp -text diff --git a/.github/workflows/release-files.yml b/.github/workflows/release-files.yml index 0f483d4..d7d95b3 100644 --- a/.github/workflows/release-files.yml +++ b/.github/workflows/release-files.yml @@ -53,7 +53,7 @@ jobs: commit_sha: ${{ inputs.file_sha }} tag: "${{ inputs.use_tag }}" force_push_tag: true - message: "Latest snapshot" + message: "Latest snapshot-1.12" if: ${{ inputs.use_environ == 'snapshots' }} # Print result using the action output. @@ -114,13 +114,19 @@ jobs: name: tgz-ubuntu-2204-binary path: ${{ github.workspace }} + - name: Store snapshot name + run: | + echo "${{ steps.get-file-base.outputs.FILE_BASE }}" > ./last-file.txt + - name: PreRelease tag - id: create_release + id: create_prerelease + if: ${{ (inputs.use_environ == 'snapshots') }} uses: softprops/action-gh-release@v1 with: tag_name: "${{ inputs.use_tag }}" prerelease: true files: | + last-file.txt ${{ steps.get-file-base.outputs.FILE_BASE }}.doxygen.zip ${{ steps.get-file-base.outputs.FILE_BASE }}.tar.gz ${{ steps.get-file-base.outputs.FILE_BASE }}.zip @@ -129,14 +135,22 @@ jobs: ${{ steps.get-file-base.outputs.FILE_BASE }}-win_vs2022.zip if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` - - name: Store Release url - run: | - echo "${{ steps.create_release.outputs.upload_url }}" > ./upload_url - -# - uses: actions/upload-artifact@v3 -# with: -# path: ./upload_url -# name: upload_url + - name: Release tag + id: create_release + if: ${{ (inputs.use_environ == 'release') }} + uses: softprops/action-gh-release@v1 + with: + tag_name: "${{ inputs.use_tag }}" + prerelease: false + #body_path: ${{ github.workspace }}-CHANGELOG.txt + files: | + ${{ steps.get-file-base.outputs.FILE_BASE }}.doxygen.zip + ${{ steps.get-file-base.outputs.FILE_BASE }}.tar.gz + ${{ steps.get-file-base.outputs.FILE_BASE }}.zip + ${{ steps.get-file-base.outputs.FILE_BASE }}-osx12.tar.gz + ${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204.tar.gz + ${{ steps.get-file-base.outputs.FILE_BASE }}-win_vs2022.zip + if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` - name: List files for the space (Linux) run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 26c08a9..75352a0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,14 +9,6 @@ on: type: string required: false default: snapshot-1.12 - use_environ: - description: 'Environment to locate files' - type: choice - required: true - default: snapshots - options: - - snapshots - - release permissions: contents: read @@ -26,38 +18,83 @@ permissions: jobs: log-the-inputs: runs-on: ubuntu-latest + outputs: + rel_tag: ${{ steps.get-tag-name.outputs.RELEASE_TAG }} steps: - - run: | - echo "Tag: $TAG" - echo "Environment: $ENVIRONMENT" - env: - TAG: ${{ inputs.tag }} - ENVIRONMENT: ${{ inputs.environment }} - - call-workflow-tarball: + - name: Get tag name + id: get-tag-name + env: + TAG: ${{ inputs.use_tag }} + run: echo "RELEASE_TAG=$TAG" >> $GITHUB_OUTPUT + +# tarball.yml will be used for releases when pre-tag actions are implemented +# call-workflow-tarball: +# needs: log-the-inputs +# uses: ./.github/workflows/tarball.yml +# with: +# use_tag: ${{ inputs.use_tag }} +# use_environ: release + + create-files-ctest: needs: log-the-inputs - uses: ./.github/workflows/tarball.yml - with: - use_tag: ${{ inputs.use_tag }} - use_environ: ${{ inputs.use_environ }} + runs-on: ubuntu-latest + outputs: + file_base: ${{ steps.set-file-base.outputs.FILE_BASE }} + steps: + - name: Set file base name + id: set-file-base + run: | + FILE_NAME_BASE=$(echo "${{ needs.log-the-inputs.outputs.rel_tag }}") + echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT + shell: bash + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v3 + with: + path: hdfsrc + + - name: Zip Folder + run: | + zip -r ${{ steps.set-file-base.outputs.FILE_BASE }}.zip ./hdfsrc + tar -zcvf ${{ steps.set-file-base.outputs.FILE_BASE }}.tar.gz ./hdfsrc + + - name: List files in the repository + run: | + ls -l ${{ github.workspace }} + ls $GITHUB_WORKSPACE + + # Save files created by release script + - name: Save tgz-tarball + uses: actions/upload-artifact@v3 + with: + name: tgz-tarball + path: ${{ steps.set-file-base.outputs.FILE_BASE }}.tar.gz + if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` + + - name: Save zip-tarball + uses: actions/upload-artifact@v3 + with: + name: zip-tarball + path: ${{ steps.set-file-base.outputs.FILE_BASE }}.zip + if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` call-workflow-ctest: - needs: call-workflow-tarball + needs: create-files-ctest uses: ./.github/workflows/cmake-ctest.yml with: - file_base: ${{ needs.call-workflow-tarball.outputs.file_base }} - use_tag: ${{ inputs.use_tag }} - use_environ: ${{ inputs.use_environ }} + file_base: ${{ needs.create-files-ctest.outputs.file_base }} call-workflow-release: - needs: [call-workflow-tarball, call-workflow-ctest] + #needs: [call-workflow-tarball, call-workflow-ctest] + needs: [log-the-inputs, create-files-ctest, call-workflow-ctest] permissions: contents: write # In order to allow tag creation uses: ./.github/workflows/release-files.yml with: - file_base: ${{ needs.call-workflow-tarball.outputs.file_base }} - file_branch: ${{ needs.call-workflow-tarball.outputs.file_branch }} - file_sha: ${{ needs.call-workflow-tarball.outputs.file_sha }} - use_tag: ${{ inputs.use_tag }} - use_environ: ${{ inputs.use_environ }} + file_base: ${{ needs.create-files-ctest.outputs.file_base }} + file_branch: ${{ needs.log-the-inputs.outputs.rel_tag }} + file_sha: ${{ needs.log-the-inputs.outputs.rel_tag }} + use_tag: ${{ needs.log-the-inputs.outputs.rel_tag }} + use_environ: release diff --git a/.github/workflows/tarball.yml b/.github/workflows/tarball.yml index cc9a535..1f1ad24 100644 --- a/.github/workflows/tarball.yml +++ b/.github/workflows/tarball.yml @@ -115,7 +115,7 @@ jobs: if: ${{ (inputs.use_environ == 'snapshots') && (needs.check_commits.outputs.has_changes == 'true') }} run: | cd "$GITHUB_WORKSPACE/hdfsrc" - bin/bbrelease -d $GITHUB_WORKSPACE --branch ${{ needs.check_commits.outputs.branch_ref }} --revision gzip zip + bin/release -d $GITHUB_WORKSPACE --branch ${{ needs.check_commits.outputs.branch_ref }} --revision gzip zip shell: bash - name: Create release file base name 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 [-h] [--private] [--revision [--branch BRANCHNAME]] ... - -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 " - 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 9435657..d9e4f7b 100755 --- a/bin/release +++ b/bin/release @@ -19,14 +19,14 @@ USAGE() { cat << EOF -Usage: $0 -d [--docver BRANCHNAME] [-h] [--private] ... +Usage: $0 -d [-h] [--private] [--revision [--branch BRANCHNAME]] ... -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 @@ -193,19 +193,19 @@ tar2cmakezip() fi # step 2: add batch file for building CMake on window - (cd $cmziptmpsubdir; echo "ctest -S HDF5config.cmake,BUILD_GENERATOR=VS2013 -C Release -V -O hdf5.log" > build-VS2013-32.bat; chmod 755 build-VS2013-32.bat) - (cd $cmziptmpsubdir; echo "ctest -S HDF5config.cmake,BUILD_GENERATOR=VS201364 -C Release -V -O hdf5.log" > build-VS2013-64.bat; chmod 755 build-VS2013-64.bat) (cd $cmziptmpsubdir; echo "ctest -S HDF5config.cmake,BUILD_GENERATOR=VS2015 -C Release -V -O hdf5.log" > build-VS2015-32.bat; chmod 755 build-VS2015-32.bat) (cd $cmziptmpsubdir; echo "ctest -S HDF5config.cmake,BUILD_GENERATOR=VS201564 -C Release -V -O hdf5.log" > build-VS2015-64.bat; chmod 755 build-VS2015-64.bat) (cd $cmziptmpsubdir; echo "ctest -S HDF5config.cmake,BUILD_GENERATOR=VS2017 -C Release -V -O hdf5.log" > build-VS2017-32.bat; chmod 755 build-VS2017-32.bat) (cd $cmziptmpsubdir; echo "ctest -S HDF5config.cmake,BUILD_GENERATOR=VS201764 -C Release -V -O hdf5.log" > build-VS2017-64.bat; chmod 755 build-VS2017-64.bat) (cd $cmziptmpsubdir; echo "ctest -S HDF5config.cmake,BUILD_GENERATOR=VS2019 -C Release -V -O hdf5.log" > build-VS2019-32.bat; chmod 755 build-VS2019-32.bat) (cd $cmziptmpsubdir; echo "ctest -S HDF5config.cmake,BUILD_GENERATOR=VS201964 -C Release -V -O hdf5.log" > build-VS2019-64.bat; chmod 755 build-VS2019-64.bat) + (cd $cmziptmpsubdir; echo "ctest -S HDF5config.cmake,BUILD_GENERATOR=VS2022 -C Release -V -O hdf5.log" > build-VS2022-32.bat; chmod 755 build-VS2022-32.bat) + (cd $cmziptmpsubdir; echo "ctest -S HDF5config.cmake,BUILD_GENERATOR=VS202264 -C Release -V -O hdf5.log" > build-VS2022-64.bat; chmod 755 build-VS2022-64.bat) # step 3: add LIBAEC.tar.gz, ZLib.tar.gz and cmake files cp /mnt/scr1/pre-release/hdf5/CMake/LIBAEC.tar.gz $cmziptmpsubdir cp /mnt/scr1/pre-release/hdf5/CMake/ZLib.tar.gz $cmziptmpsubdir - cp /mnt/scr1/pre-release/hdf5/CMake/HDF5Examples-2.0.1-Source.zip $cmziptmpsubdir + cp /mnt/scr1/pre-release/hdf5/CMake/HDF5Examples-2.0.3-Source.zip $cmziptmpsubdir cp /mnt/scr1/pre-release/hdf5/CMake/hdf5_plugins-1_12_2.zip $cmziptmpsubdir cp $cmziptmpsubdir/$version/config/cmake/scripts/CTestScript.cmake $cmziptmpsubdir cp $cmziptmpsubdir/$version/config/cmake/scripts/HDF5config.cmake $cmziptmpsubdir @@ -297,7 +297,7 @@ tar2cmaketgz() # step 3: add LIBAEC.tar.gz, ZLib.tar.gz and cmake files cp /mnt/scr1/pre-release/hdf5/CMake/LIBAEC.tar.gz $cmgztmpsubdir cp /mnt/scr1/pre-release/hdf5/CMake/ZLib.tar.gz $cmgztmpsubdir - cp /mnt/scr1/pre-release/hdf5/CMake/HDF5Examples-2.0.1-Source.tar.gz $cmgztmpsubdir + cp /mnt/scr1/pre-release/hdf5/CMake/HDF5Examples-2.0.3-Source.tar.gz $cmgztmpsubdir cp /mnt/scr1/pre-release/hdf5/CMake/hdf5_plugins-1_12_2.tar.gz $cmgztmpsubdir cp $cmgztmpsubdir/$version/config/cmake/scripts/CTestScript.cmake $cmgztmpsubdir cp $cmgztmpsubdir/$version/config/cmake/scripts/HDF5config.cmake $cmgztmpsubdir @@ -376,7 +376,7 @@ tar2hpccmaketgz() # step 3: add LIBAEC.tar.gz, ZLib.tar.gz and cmake files cp /mnt/scr1/pre-release/hdf5/CMake/LIBAEC.tar.gz $cmgztmpsubdir cp /mnt/scr1/pre-release/hdf5/CMake/ZLib.tar.gz $cmgztmpsubdir - cp /mnt/scr1/pre-release/hdf5/CMake/HDF5Examples-2.0.1-Source.tar.gz $cmgztmpsubdir + cp /mnt/scr1/pre-release/hdf5/CMake/HDF5Examples-2.0.3-Source.tar.gz $cmgztmpsubdir cp /mnt/scr1/pre-release/hdf5/CMake/hdf5_plugins-1_12_2.tar.gz $cmgztmpsubdir cp $cmgztmpsubdir/$version/config/cmake/scripts/CTestScript.cmake $cmgztmpsubdir cp $cmgztmpsubdir/$version/config/cmake/scripts/HDF5config.cmake $cmgztmpsubdir @@ -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 -- cgit v0.12