Message ID | 20250110-update-release-v1-4-61e40b8ffbac@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Update release.sh | expand |
On Fri, Jan 10, 2025 at 12:05:09PM +0100, Andrey Albershteyn wrote: > Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org> > --- > release.sh | 46 +++++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 45 insertions(+), 1 deletion(-) > > diff --git a/release.sh b/release.sh > index c34efcbcdfcaf50a08853e65542e8f16214cfb4e..40ecfaff66c3e9f8d794e7543750bd9579b7c6c9 100755 > --- a/release.sh > +++ b/release.sh > @@ -13,11 +13,13 @@ set -e > > KUP=0 > COMMIT=1 > +LAST_HEAD="" > > 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" > + printf "\t[--last-head|-h] commit of the last release\n" > } > > update_version() { > @@ -48,6 +50,10 @@ while [ $# -gt 0 ]; do > --no-commit|-n) > COMMIT=0 > ;; > + --last-head|-h) > + LAST_HEAD=$2 > + shift > + ;; > --help|-h) > help > exit 0 > @@ -122,7 +128,45 @@ if [ $KUP -eq 1 ]; then > pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-${version}.tar.gz > fi; > > +mail_file=$(mktemp) > +subject="" > +if [ -n "$LAST_HEAD" ]; then > + subject="[ANNOUNCE] xfsprogs $(git describe --abbrev=0) released" > + > + cat << EOF > $mail_file > +Hi folks, > + > +The xfsprogs repository at: > + > + git://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git > + > +has just been updated. > + > +Patches often get missed, so if your outstanding patches are properly reviewed > +on the list and not included in this update, please let me know. > + > +The for-next branch has also been updated to match the state of master. > + > +The new head of the master branch is commit: > + > +$(git log --oneline --format="%H" -1) > + > +New commits: > + > +$(git shortlog --format="[%h] %s" $LAST_HEAD..HEAD) > + > +Code Diffstat: > + > +$(git diff --stat --summary -C -M $LAST_HEAD..HEAD) > +EOF > +fi Looks pretty similar to my git-announce tool. ;) > + > echo "" > -echo "Done. Please remember to push out tags and the branch." > +echo "Done." > +echo "Please remember to push out tags and the branch." > printf "\tgit push origin v${version}\n" > printf "\tgit push origin master\n" > +if [ -n "$LAST_HEAD" ]; then > + echo "Command to send ANNOUNCE email" > + printf "\tneomutt linux-xfs@vger.kernel.org -s \"$subject\" -i $mail_file\n" Note: if you put the headers in $mail_file, like this: cat << EOF > $mail_file To: linux-xfs@vger.kernel.org Subject: $subject Hi folks, ... ENDL then you can do: neomutt -H $mail_file to edit the message and send it out. I also wonder if you'd like a copy of my git-contributors script that spits out a list of emails to cc based on the git diff? --D > +fi > > -- > 2.47.0 > >
On 2025-01-16 14:41:48, Darrick J. Wong wrote: > On Fri, Jan 10, 2025 at 12:05:09PM +0100, Andrey Albershteyn wrote: > > Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org> > > --- > > release.sh | 46 +++++++++++++++++++++++++++++++++++++++++++++- > > 1 file changed, 45 insertions(+), 1 deletion(-) > > > > diff --git a/release.sh b/release.sh > > index c34efcbcdfcaf50a08853e65542e8f16214cfb4e..40ecfaff66c3e9f8d794e7543750bd9579b7c6c9 100755 > > --- a/release.sh > > +++ b/release.sh > > @@ -13,11 +13,13 @@ set -e > > > > KUP=0 > > COMMIT=1 > > +LAST_HEAD="" > > > > 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" > > + printf "\t[--last-head|-h] commit of the last release\n" > > } > > > > update_version() { > > @@ -48,6 +50,10 @@ while [ $# -gt 0 ]; do > > --no-commit|-n) > > COMMIT=0 > > ;; > > + --last-head|-h) > > + LAST_HEAD=$2 > > + shift > > + ;; > > --help|-h) > > help > > exit 0 > > @@ -122,7 +128,45 @@ if [ $KUP -eq 1 ]; then > > pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-${version}.tar.gz > > fi; > > > > +mail_file=$(mktemp) > > +subject="" > > +if [ -n "$LAST_HEAD" ]; then > > + subject="[ANNOUNCE] xfsprogs $(git describe --abbrev=0) released" > > + > > + cat << EOF > $mail_file > > +Hi folks, > > + > > +The xfsprogs repository at: > > + > > + git://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git > > + > > +has just been updated. > > + > > +Patches often get missed, so if your outstanding patches are properly reviewed > > +on the list and not included in this update, please let me know. > > + > > +The for-next branch has also been updated to match the state of master. > > + > > +The new head of the master branch is commit: > > + > > +$(git log --oneline --format="%H" -1) > > + > > +New commits: > > + > > +$(git shortlog --format="[%h] %s" $LAST_HEAD..HEAD) > > + > > +Code Diffstat: > > + > > +$(git diff --stat --summary -C -M $LAST_HEAD..HEAD) > > +EOF > > +fi > > Looks pretty similar to my git-announce tool. ;) > > > + > > echo "" > > -echo "Done. Please remember to push out tags and the branch." > > +echo "Done." > > +echo "Please remember to push out tags and the branch." > > printf "\tgit push origin v${version}\n" > > printf "\tgit push origin master\n" > > +if [ -n "$LAST_HEAD" ]; then > > + echo "Command to send ANNOUNCE email" > > + printf "\tneomutt linux-xfs@vger.kernel.org -s \"$subject\" -i $mail_file\n" > > Note: if you put the headers in $mail_file, like this: > > cat << EOF > $mail_file > To: linux-xfs@vger.kernel.org > Subject: $subject > > Hi folks, > ... > ENDL > > then you can do: > > neomutt -H $mail_file Neat, will update this > > to edit the message and send it out. I also wonder if you'd like a copy > of my git-contributors script that spits out a list of emails to cc > based on the git diff? sure, is it small enough to be a part of this file?
On Mon, Jan 20, 2025 at 01:14:18PM +0100, Andrey Albershteyn wrote: > On 2025-01-16 14:41:48, Darrick J. Wong wrote: > > On Fri, Jan 10, 2025 at 12:05:09PM +0100, Andrey Albershteyn wrote: > > > Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org> > > > --- > > > release.sh | 46 +++++++++++++++++++++++++++++++++++++++++++++- > > > 1 file changed, 45 insertions(+), 1 deletion(-) > > > > > > diff --git a/release.sh b/release.sh > > > index c34efcbcdfcaf50a08853e65542e8f16214cfb4e..40ecfaff66c3e9f8d794e7543750bd9579b7c6c9 100755 > > > --- a/release.sh > > > +++ b/release.sh > > > @@ -13,11 +13,13 @@ set -e > > > > > > KUP=0 > > > COMMIT=1 > > > +LAST_HEAD="" > > > > > > 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" > > > + printf "\t[--last-head|-h] commit of the last release\n" > > > } > > > > > > update_version() { > > > @@ -48,6 +50,10 @@ while [ $# -gt 0 ]; do > > > --no-commit|-n) > > > COMMIT=0 > > > ;; > > > + --last-head|-h) > > > + LAST_HEAD=$2 > > > + shift > > > + ;; > > > --help|-h) > > > help > > > exit 0 > > > @@ -122,7 +128,45 @@ if [ $KUP -eq 1 ]; then > > > pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-${version}.tar.gz > > > fi; > > > > > > +mail_file=$(mktemp) > > > +subject="" > > > +if [ -n "$LAST_HEAD" ]; then > > > + subject="[ANNOUNCE] xfsprogs $(git describe --abbrev=0) released" > > > + > > > + cat << EOF > $mail_file > > > +Hi folks, > > > + > > > +The xfsprogs repository at: > > > + > > > + git://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git > > > + > > > +has just been updated. > > > + > > > +Patches often get missed, so if your outstanding patches are properly reviewed > > > +on the list and not included in this update, please let me know. > > > + > > > +The for-next branch has also been updated to match the state of master. > > > + > > > +The new head of the master branch is commit: > > > + > > > +$(git log --oneline --format="%H" -1) > > > + > > > +New commits: > > > + > > > +$(git shortlog --format="[%h] %s" $LAST_HEAD..HEAD) > > > + > > > +Code Diffstat: > > > + > > > +$(git diff --stat --summary -C -M $LAST_HEAD..HEAD) > > > +EOF > > > +fi > > > > Looks pretty similar to my git-announce tool. ;) > > > > > + > > > echo "" > > > -echo "Done. Please remember to push out tags and the branch." > > > +echo "Done." > > > +echo "Please remember to push out tags and the branch." > > > printf "\tgit push origin v${version}\n" > > > printf "\tgit push origin master\n" > > > +if [ -n "$LAST_HEAD" ]; then > > > + echo "Command to send ANNOUNCE email" > > > + printf "\tneomutt linux-xfs@vger.kernel.org -s \"$subject\" -i $mail_file\n" > > > > Note: if you put the headers in $mail_file, like this: > > > > cat << EOF > $mail_file > > To: linux-xfs@vger.kernel.org > > Subject: $subject > > > > Hi folks, > > ... > > ENDL > > > > then you can do: > > > > neomutt -H $mail_file > > Neat, will update this > > > > > to edit the message and send it out. I also wonder if you'd like a copy > > of my git-contributors script that spits out a list of emails to cc > > based on the git diff? > > sure, is it small enough to be a part of this file? Er.... maybe part of the patch, but it's a python script: --D #!/usr/bin/python3 # List all contributors to a series of git commits. # Copyright(C) 2025 Oracle, All Rights Reserved. # Licensed under GPL 2.0 or later import re import subprocess import io import sys import argparse import email.utils DEBUG = False def backtick(args): '''Generator function that yields lines of a program's stdout.''' if DEBUG: print(' '.join(args)) p = subprocess.Popen(args, stdout = subprocess.PIPE) for line in io.TextIOWrapper(p.stdout, encoding="utf-8"): yield line class find_developers(object): def __init__(self): tags = '%s|%s|%s|%s|%s|%s|%s|%s' % ( 'signed-off-by', 'acked-by', 'cc', 'reviewed-by', 'reported-by', 'tested-by', 'suggested-by', 'reported-and-tested-by') # some tag, a colon, a space, and everything after that regex1 = r'^(%s):\s+(.+)$' % tags self.r1 = re.compile(regex1, re.I) def run(self, lines): addr_list = [] for line in lines: l = line.strip() # emailutils can handle abominations like: # # Reviewed-by: Bogus J. Simpson <bogus@simpson.com> # Reviewed-by: "Bogus J. Simpson" <bogus@simpson.com> # Reviewed-by: bogus@simpson.com # Cc: <stable@vger.kernel.org> # v6.9 # Tested-by: Moo Cow <foo@bar.com> # powerpc m = self.r1.match(l) if not m: continue (name, addr) = email.utils.parseaddr(m.expand(r'\g<2>')) # This last split removes anything after a hash mark, # because someone could have provided an improperly # formatted email address: # # Cc: stable@vger.kernel.org # v6.19+ # # emailutils doesn't seem to catch this, and I can't # fully tell from RFC2822 that this isn't allowed. I # think it is because dtext doesn't forbid spaces or # hash marks. addr_list.append(addr.split('#')[0]) return sorted(set(addr_list)) def main(): parser = argparse.ArgumentParser(description = "List email addresses of contributors to a series of git commits.") parser.add_argument("revspec", nargs = '?', default = None, \ help = "git revisions to process.") parser.add_argument("--delimiter", type = str, default = '\n', \ help = "Separate each email address with this string.") args = parser.parse_args() fd = find_developers() if args.revspec: # read git commits from repo contributors = fd.run(backtick(['git', 'log', '--pretty=medium', args.revspec])) else: # read patch from stdin contributors = fd.run(sys.stdin.readlines()) print(args.delimiter.join(sorted(contributors))) return 0 if __name__ == '__main__': sys.exit(main())
diff --git a/release.sh b/release.sh index c34efcbcdfcaf50a08853e65542e8f16214cfb4e..40ecfaff66c3e9f8d794e7543750bd9579b7c6c9 100755 --- a/release.sh +++ b/release.sh @@ -13,11 +13,13 @@ set -e KUP=0 COMMIT=1 +LAST_HEAD="" 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" + printf "\t[--last-head|-h] commit of the last release\n" } update_version() { @@ -48,6 +50,10 @@ while [ $# -gt 0 ]; do --no-commit|-n) COMMIT=0 ;; + --last-head|-h) + LAST_HEAD=$2 + shift + ;; --help|-h) help exit 0 @@ -122,7 +128,45 @@ if [ $KUP -eq 1 ]; then pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-${version}.tar.gz fi; +mail_file=$(mktemp) +subject="" +if [ -n "$LAST_HEAD" ]; then + subject="[ANNOUNCE] xfsprogs $(git describe --abbrev=0) released" + + cat << EOF > $mail_file +Hi folks, + +The xfsprogs repository at: + + git://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git + +has just been updated. + +Patches often get missed, so if your outstanding patches are properly reviewed +on the list and not included in this update, please let me know. + +The for-next branch has also been updated to match the state of master. + +The new head of the master branch is commit: + +$(git log --oneline --format="%H" -1) + +New commits: + +$(git shortlog --format="[%h] %s" $LAST_HEAD..HEAD) + +Code Diffstat: + +$(git diff --stat --summary -C -M $LAST_HEAD..HEAD) +EOF +fi + echo "" -echo "Done. Please remember to push out tags and the branch." +echo "Done." +echo "Please remember to push out tags and the branch." printf "\tgit push origin v${version}\n" printf "\tgit push origin master\n" +if [ -n "$LAST_HEAD" ]; then + echo "Command to send ANNOUNCE email" + printf "\tneomutt linux-xfs@vger.kernel.org -s \"$subject\" -i $mail_file\n" +fi
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org> --- release.sh | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-)