diff --git a/Makefile b/Makefile index f0ff595..3a94b3c 100644 --- a/Makefile +++ b/Makefile @@ -79,11 +79,12 @@ release: ## Create a new tag for release. @echo "WARNING: This operation will create s version tag and push to github" @set -e; \ read -p "Version? (provide the next x.y.z semver) : " TAG; \ + chmod +x scripts/generate_version.sh; \ + bash scripts/generate_version.sh $${TAG}; \ git checkout -b release-$${TAG}; \ - echo "$${TAG}" > tosfs/VERSION; \ git log --pretty=format:"%h - %s (%an, %ad)" --date=short > HISTORY.md; \ poetry version $${TAG}; \ - git add tosfs/VERSION HISTORY.md pyproject.toml; \ + git add tosfs/version.py HISTORY.md pyproject.toml; \ git commit -m "release: version $${TAG} 🚀"; \ echo "creating git tag : $${TAG}"; \ git tag $${TAG}; \ diff --git a/scripts/generate_version.sh b/scripts/generate_version.sh new file mode 100755 index 0000000..825f571 --- /dev/null +++ b/scripts/generate_version.sh @@ -0,0 +1,85 @@ +#!/usr/bin/env bash + +# This file is used to generate the annotation of package info that +# records the user, url, revision and timestamp. + +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +set -e + +unset LANG +unset LC_CTYPE + +version=$1 +if [ -z "$version" ]; then + version=$(poetry version -s) +fi + +pushd . + +bin=`dirname "$0"` +PROJECT_ROOT=`cd "$bin"/.. >/dev/null; pwd` + +user=$(whoami | sed -n -e "s/\\\/\\\\\\\\/p") +if [ "$user" == "" ] +then + user=$(whoami) +fi +date=$(date) +cwd=$(pwd) + +if [ -x "$(command -v git)" ]; then + revision=$(git log -1 --no-show-signature --pretty=format:"%H" || true) + repoUrl=$(git config --get remote.origin.url) +fi + +if [ -z "${revision}" ]; then + echo "[WARN] revision info is empty! either we're not in VCS or VCS commands failed." >&2 + revision="Unknown" + repoUrl="file://$cwd" +fi + +popd + +cat >"$PROJECT_ROOT/tosfs/version.py" <