utils: Provide a release script

Support making releases of libcamera by introducing a helper script
which will facilitate the increment of any release version, along with
generating an associated tag.

Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Kieran Bingham 2022-10-01 00:28:26 +01:00
parent 1bd14fc895
commit fc46d09123

46
utils/release.sh Executable file
View file

@ -0,0 +1,46 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-or-later
# Prepare a project release
set -e
# Abort if we are not within the project root or the tree is not clean.
if [ ! -e utils/gen-version.sh ] || [ ! -e .git ]; then
echo "This release script must be run from the root of libcamera git tree."
exit 1
fi
if ! git diff-index --quiet HEAD; then
echo "Tree must be clean to release."
exit 1
fi
# Identify current version components
version=$(./utils/gen-version.sh)
# Decide if we are here to bump major, minor, or patch release.
case $1 in
major|minor|patch)
bump=$1;
;;
*)
echo "You must specify the version bump level: (major, minor, patch)"
exit 1
;;
esac
new_version=$(./utils/semver bump "$bump" "$version")
echo "Bumping $bump"
echo " Existing version is: $version"
echo " New version is : $new_version"
# Patch in the version to our meson.build
sed -i -E "s/ version : '.*',/ version : '$new_version',/" meson.build
# Commit the update
git commit meson.build -esm "libcamera v$new_version"
# Create a tag from that commit
git show -s --format=%B | git tag "v$new_version" -s -F -