From: "Darrick J. Wong" <djwong@kernel.org>
To: Andrey Albershteyn <aalbersh@redhat.com>
Cc: linux-xfs@vger.kernel.org, Andrey Albershteyn <aalbersh@kernel.org>
Subject: Re: [PATCH 3/4] release.sh: update version files make commit optional
Date: Tue, 21 Jan 2025 17:45:50 -0800 [thread overview]
Message-ID: <20250122014550.GK1611770@frogsfrogsfrogs> (raw)
In-Reply-To: <7y44gkonyin7lptiwq4g7ladfdf7eqv7n7chlfmz3pmilkki34@vcman5v2yckh>
On Mon, Jan 20, 2025 at 12:53:05PM +0100, Andrey Albershteyn wrote:
> On 2025-01-16 14:33:18, Darrick J. Wong wrote:
> > On Fri, Jan 10, 2025 at 12:05:08PM +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 | 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
> >
> > I wonder if it would be sensible to try nano as well? Probably most
> > systems have a vi of some kind, or a nano of some kind, but they
> > probably don't lack both.
>
> I added this only to make line below '$EDITOR ./VERSION' spit out
> some more meaningful error. Probably this would be even better to
> just change 'command -v vi' to 'vi'.
>
> >
> > > +
> > > +if [ $COMMIT -eq 1 ]; then
> > > + if git diff --exit-code ./VERSION > /dev/null; then
> > > + $EDITOR ./VERSION
> > > + fi
> > > +fi
> >
> > Er... what does this do? If something has changed VERSION, then we pop
> > it open in an editor before sourcing it?
>
> ops, right, that's should be if edit if not modified.
>
> *without --no-commit* Starting from clean repo -> open ./VERSION to
> let maintaner update version -> update version in all other places
> -> commit
>
> >
> > Also, do you want to update debian/changelog at the same time? Normally
> > Debian maintainers use dch(1) to create the changelog entry, but it's
> > basically this:
> >
> > rm -f /tmp/whatever
> > debdate="$(date '+%a, %d %b %Y %T %z')"
> > cat > /tmp/whatever << ENDL
> > xfsprogs ($version) unstable; urgency=low
> >
> > * New upstream release
> >
> > -- Nathan Scott <nathans@debian.org> $debdate
> >
> > ENDL
> > cat debian/changelog >> /tmp/whatever
> > cat /tmp/whatever > debian/changelog
> > rm -f /tmp/whatever
> >
> > (I can also send a patch atop your series to do that, if you'd rather I
> > go mess with the debian stuff)
>
> I do, above in update_version()
Oops, I didn't recognize that it was backwards changelog.
--D
> >
> > > +
> > > +. ./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"
> >
> > I think you can do that all in one push, e.g.
> >
> > git push origin v6.13.0 master
>
> Yup, seems to work, will change it
>
> --
> - Andrey
>
>
next prev parent reply other threads:[~2025-01-22 1:45 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 ` [PATCH 3/4] release.sh: update version files make commit optional Andrey Albershteyn
2025-01-16 22:33 ` Darrick J. Wong
2025-01-20 11:53 ` Andrey Albershteyn
2025-01-22 1:45 ` Darrick J. Wong [this message]
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=20250122014550.GK1611770@frogsfrogsfrogs \
--to=djwong@kernel.org \
--cc=aalbersh@kernel.org \
--cc=aalbersh@redhat.com \
--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