Re: [PATCH v2 3/7] release.sh: update version files make commit optional

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx>
> ---
>  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@xxxxxxxxxxxxxxx])"
> +	sed -i "s/^AC_INIT.*/$CONF_AC/" ./configure.ac
> +
> +	# ./debian/changelog
> +	sed -i "1s/^/\n/" ./debian/changelog
> +	sed -i "1s/^/ -- Nathan Scott <nathans@xxxxxxxxxx>  `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@xxxxxxxxxx>

--D

> 
> -- 
> 2.47.0
> 
> 




[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux