]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
release.sh: update version files make commit optional
authorAndrey Albershteyn <aalbersh@redhat.com>
Wed, 26 Feb 2025 14:50:28 +0000 (15:50 +0100)
committerAndrey Albershteyn <aalbersh@kernel.org>
Tue, 11 Mar 2025 09:48:03 +0000 (10:48 +0100)
Based on ./VERSION script updates all other files. For
./doc/changelog script asks maintainer to fill it manually as not
all changes goes into changelog.

--no-commit|-n flag is handy when something got into the version commit
and need to be changed manually. Then ./release.sh -c will use fixed
history

Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
release.sh

index 42bee75bb6fde7056c1770157f253eb5f492036d..385607f636d965ad98f0f3115e6f34d9e4042592 100755 (executable)
 
 set -e
 
-. ./VERSION
-
-version=${PKG_MAJOR}.${PKG_MINOR}.${PKG_REVISION}
-date=`date +"%-d %B %Y"`
-
 KUP=0
+COMMIT=1
 
 help() {
        echo "$(basename $0) - prepare xfsprogs release tarball or for-next update"
        printf "\t[--kup|-k] upload final tarball with KUP\n"
+       printf "\t[--no-commit|-n] don't create release commit\n"
+}
+
+update_version() {
+       echo "Updating version files"
+       # doc/CHANGES
+       header="xfsprogs-${version} ($(date +'%d %b %Y'))"
+       sed -i "1s/^/$header\n\t<TODO list user affecting changes>\n\n/" doc/CHANGES
+       $EDITOR doc/CHANGES
+
+       # ./configure.ac
+       CONF_AC="AC_INIT([xfsprogs],[${version}],[linux-xfs@vger.kernel.org])"
+       sed -i "s/^AC_INIT.*/$CONF_AC/" ./configure.ac
+
+       # ./debian/changelog
+       sed -i "1s/^/\n/" ./debian/changelog
+       sed -i "1s/^/ -- Nathan Scott <nathans@debian.org>  `date -R`\n/" ./debian/changelog
+       sed -i "1s/^/\n/" ./debian/changelog
+       sed -i "1s/^/  * New upstream release\n/" ./debian/changelog
+       sed -i "1s/^/\n/" ./debian/changelog
+       sed -i "1s/^/xfsprogs (${version}-1) unstable; urgency=low\n/" ./debian/changelog
 }
 
 while [ $# -gt 0 ]; do
@@ -28,6 +45,9 @@ while [ $# -gt 0 ]; do
                --kup|-k)
                        KUP=1
                        ;;
+               --no-commit|-n)
+                       COMMIT=0
+                       ;;
                --help|-h)
                        help
                        exit 0
@@ -40,6 +60,36 @@ while [ $# -gt 0 ]; do
        shift
 done
 
+if [ -z "$EDITOR" ]; then
+       EDITOR=$(command -v vi)
+fi
+
+if [ $COMMIT -eq 1 ]; then
+       if git diff --exit-code ./VERSION > /dev/null; then
+               $EDITOR ./VERSION
+       fi
+fi
+
+. ./VERSION
+
+version=${PKG_MAJOR}.${PKG_MINOR}.${PKG_REVISION}
+date=`date +"%-d %B %Y"`
+
+if [ $COMMIT -eq 1 ]; then
+       update_version
+
+       git diff --color=always | less -r
+       [[ "$(read -e -p 'All good? [Y/n]> '; echo $REPLY)" == [Nn]* ]] && exit 0
+
+       echo "Commiting new version update to git"
+       git commit --all --signoff --message="xfsprogs: Release v${version}
+
+Update all the necessary files for a v${version} release."
+
+       echo "Tagging git repository"
+       git tag --annotate --sign --message="Release v${version}" v${version}
+fi
+
 echo "Cleaning up"
 make realclean
 rm -rf "xfsprogs-${version}.tar" \
@@ -47,17 +97,6 @@ rm -rf "xfsprogs-${version}.tar" \
        "xfsprogs-${version}.tar.asc" \
        "xfsprogs-${version}.tar.sign"
 
-echo "Updating CHANGES"
-sed -e "s/${version}.*/${version} (${date})/" doc/CHANGES > doc/CHANGES.tmp && \
-       mv doc/CHANGES.tmp doc/CHANGES
-
-echo "Commiting CHANGES update to git"
-git commit --all --signoff --message="xfsprogs: Release v${version}
-
-Update all the necessary files for a v${version} release."
-
-echo "Tagging git repository"
-git tag --annotate --sign --message="Release v${version}" v${version}
 
 echo "Making source tarball"
 make dist
@@ -87,4 +126,6 @@ if [ $KUP -eq 1 ]; then
                pub/linux/utils/fs/xfs/xfsprogs/
 fi;
 
-echo "Done. Please remember to push out tags using \"git push origin v${version}\""
+echo ""
+echo "Done. Please remember to push out tags and the branch."
+printf "\tgit push origin v${version} master:master master:for-next\n"