summaryrefslogtreecommitdiffstats
path: root/release.sh
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2023-06-30 22:38:51 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2023-06-30 22:38:51 +0000
commit5d64e8a26388e2abbf6a6585d17392d6e944ae7b (patch)
tree4eae47918df5f83f14e05bede9c361237a7dc089 /release.sh
parentReleasing debian version 2.4+really2.4-3. (diff)
downloadnvme-cli-5d64e8a26388e2abbf6a6585d17392d6e944ae7b.tar.xz
nvme-cli-5d64e8a26388e2abbf6a6585d17392d6e944ae7b.zip
Merging upstream version 2.5.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'release.sh')
-rwxr-xr-xrelease.sh123
1 files changed, 0 insertions, 123 deletions
diff --git a/release.sh b/release.sh
deleted file mode 100755
index b4ae81c..0000000
--- a/release.sh
+++ /dev/null
@@ -1,123 +0,0 @@
-#!/bin/bash
-
-usage() {
- echo "Usage: release.sh [-d] VERSION"
- echo ""
- echo "The script does all necessary steps to create a new release."
- echo ""
- echo " -d: no documentation update"
- echo " -n: dry run"
- echo ""
- echo "Note: The version number needs to be exactly"
- echo " '^v[\d]+.[\d]+(.[\d\]+(-rc[0-9]+)?$'"
- echo ""
- echo "example:"
- echo " release.sh v2.1-rc0 # v2.1 release candidate 0"
- echo " release.sh v2.1 # v2.1 release"
-}
-
-build_doc=true
-dry_run=false
-
-while getopts "dn" o; do
- case "${o}" in
- d)
- build_doc=false
- ;;
- n)
- dry_run=true
- ;;
- *)
- usage
- ;;
- esac
-done
-shift $((OPTIND-1))
-
-VERSION=${1:-}
-
-if [ -z "$VERSION" ] ; then
- usage
- exit 1
-fi
-
-# expected version regex
-re='^v([0-9]+\.[0-9]+(\.[0-9]+)?)(-rc[0-9]+)?$'
-
-# use the version string provided from the command line for nvme-cli
-if [[ "$VERSION" =~ ${re} ]]; then
- echo "nvme-cli: valid version $VERSION string"
-
- # remove the leading 'v'
- ver="${VERSION#v}"
-else
- echo "nvme-cli: invalid version string ${VERSION}"
- exit 1
-fi
-
-# extract the vesion string from libnvme by using the ref
-# defined in libnvme.wrap.
-libnvme_ref=$(sed -n "s/revision = \([0-9a-z]\+\)/\1/p" subprojects/libnvme.wrap)
-libnvme_VERSION=$(git -C subprojects/libnvme describe "${libnvme_ref}")
-if [[ "${libnvme_VERSION}" =~ ${re} ]]; then
- echo "libnvme: valid version ${libnvme_VERSION} string"
-
- # remove the leading 'v'
- libnvme_ver="${libnvme_VERSION#v}"
-else
- echo "libnvme: invalid version string ${libnvme_VERSION}"
- exit 1
-fi
-
-if [[ -n $(git status -s) ]]; then
- echo "tree is dirty."
- if [[ "${dry_run}" = false ]]; then
- exit 1
- fi
-fi
-
-if [ "$(git rev-parse --abbrev-ref HEAD)" != "master" ] ; then
- echo "currently not on master branch. abort."
- exit 1
-fi
-
-# update all docs
-doc_dir=""
-if [ -d "Documentation" ]; then
- doc_dir="Documentation"
-elif [ -d "doc" ]; then
- doc_dir="doc"
-else
- echo "documenation directory not found"
- exit 1
-fi
-
-# update meson.build
-sed -i -e "0,/[ \t]version: /s/\([ \t]version: \).*/\1\'$ver\',/" meson.build
-sed -i -e "s/\(dependency('libnvme', version: '>=\)\([\.1-9]\+\)/\1$libnvme_ver/" meson.build
-if [[ "${dry_run}" = false ]]; then
- git add meson.build
- git commit -s -m "build: Update version to $VERSION"
-fi
-
-if [ "$build_doc" = true ]; then
- # update documentation
- ./$doc_dir/update-docs.sh
- if [[ "${dry_run}" = false ]]; then
- git add $doc_dir
- git commit -s -m "doc: Regenerate all docs for $VERSION"
- fi
-fi
-
-if [[ "${dry_run}" = true ]]; then
- exit 0
-fi
-
-git tag -s -m "Release $VERSION" "$VERSION"
-git push --dry-run origin "$VERSION"^{}:master tag "$VERSION"
-
-read -p "All good? Ready to push changes to remote? [Yy]" -n 1 -r
-echo
-if [[ $REPLY =~ ^[Yy]$ ]]; then
- git push origin "$VERSION"^{}:master tag "$VERSION"
-fi