Message ID | 20250122-update-release-v2-3-d01529db3aa5@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Update release.sh | expand |
On Wed, Jan 22, 2025 at 04:01:29PM +0100, Andrey Albershteyn wrote: > 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 | 75 ++++++++++++++++++++++++++++++++++++++++++++++++-------------- > 1 file changed, 58 insertions(+), 17 deletions(-) > > diff --git a/release.sh b/release.sh > index b036c3241b3f67bfb2435398e6a17ea4c6a6eebe..57ff217b9b6bf62873a149029957fdd9f01b8c38 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,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\n" git push origin v${version} master:master master:for-next per this morning's office hours discussion ;) With that changed, Reviewed-by: "Darrick J. Wong" <djwong@kernel.org> --D > > -- > 2.47.0 > >
diff --git a/release.sh b/release.sh index b036c3241b3f67bfb2435398e6a17ea4c6a6eebe..57ff217b9b6bf62873a149029957fdd9f01b8c38 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,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\n"
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 | 75 ++++++++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 58 insertions(+), 17 deletions(-)