From: Andrey Albershteyn <aalbersh@redhat.com>
To: linux-xfs@vger.kernel.org
Cc: Andrey Albershteyn <aalbersh@kernel.org>
Subject: [PATCH 3/4] release.sh: update version files make commit optional
Date: Fri, 10 Jan 2025 12:05:08 +0100 [thread overview]
Message-ID: <20250110-update-release-v1-3-61e40b8ffbac@kernel.org> (raw)
In-Reply-To: <20250110-update-release-v1-0-61e40b8ffbac@kernel.org>
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
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
---
release.sh | 76 ++++++++++++++++++++++++++++++++++++++++++++++++--------------
1 file changed, 59 insertions(+), 17 deletions(-)
diff --git a/release.sh b/release.sh
index a23adc47efa5163b4e0082050c266481e4051bfb..c34efcbcdfcaf50a08853e65542e8f16214cfb4e 100755
--- a/release.sh
+++ b/release.sh
@@ -11,16 +11,33 @@
set -e
-. ./VERSION
-
-version=${PKG_MAJOR}.${PKG_MINOR}.${PKG_REVISION}
-date=`date +"%-d %B %Y"`
-
KUP=0
+COMMIT=1
help() {
echo "$(basename) - create xfsprogs release"
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
@@ -83,4 +122,7 @@ if [ $KUP -eq 1 ]; then
pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-${version}.tar.gz
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}\n"
+printf "\tgit push origin master\n"
--
2.47.0
next prev parent reply other threads:[~2025-01-10 11:05 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-10 11:05 [PATCH 0/4] Update release.sh Andrey Albershteyn
2025-01-10 11:05 ` [PATCH 1/4] release.sh: add signing and fix outdated commands Andrey Albershteyn
2025-01-16 21:43 ` Darrick J. Wong
2025-01-10 11:05 ` [PATCH 2/4] release.sh: add --kup to upload release tarball to kernel.org Andrey Albershteyn
2025-01-16 22:22 ` Darrick J. Wong
2025-01-20 10:59 ` Andrey Albershteyn
2025-01-10 11:05 ` Andrey Albershteyn [this message]
2025-01-16 22:33 ` [PATCH 3/4] release.sh: update version files make commit optional Darrick J. Wong
2025-01-20 11:53 ` Andrey Albershteyn
2025-01-22 1:45 ` Darrick J. Wong
2025-01-10 11:05 ` [PATCH 4/4] release.sh: generate ANNOUNCE email Andrey Albershteyn
2025-01-16 22:41 ` Darrick J. Wong
2025-01-20 12:14 ` Andrey Albershteyn
2025-01-22 2:02 ` Darrick J. Wong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250110-update-release-v1-3-61e40b8ffbac@kernel.org \
--to=aalbersh@redhat.com \
--cc=aalbersh@kernel.org \
--cc=linux-xfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox