Add some polish to the release process

This commit is contained in:
Adam Spiers 2019-06-25 20:04:11 +01:00
parent 42ed9ed942
commit e647c53af1
2 changed files with 36 additions and 18 deletions

View file

@ -11,22 +11,22 @@ First read the official information for maintainers of GNU software:
Release procedure Release procedure
----------------- -----------------
- Set a shell variable to the version to be released, e.g. if the - Ensure configure.ac contains the number of the new unreleased
final step of this document was carried out after the previous version. This should follow Semantic Versioning as described at:
release was published:
version=$( git describe --match v* --abbrev=0 )
- Ensure NEWS contains the latest changes, and that any new
contributors have been added to THANKS.
- git commit -m "Prepare NEWS and THANKS for $version release"
- Ensure configure.ac contains the new version number.
This should follow Semantic Versioning as described at:
http://semver.org/ http://semver.org/
- To make the following steps easier, set the $version shell variable
to the same version number as above, e.g.
version=$( tools/get-version ) && echo $version
- Ensure NEWS contains the latest changes, and that any new
contributors have been added to THANKS. If necessary, commit
any additions:
git commit -m "Prepare NEWS and THANKS for $version release"
- Check CPAN distribution will work via Module::Build: - Check CPAN distribution will work via Module::Build:
- Generate stow, chkstow, and lib/Stow.pm via: - Generate stow, chkstow, and lib/Stow.pm via:
@ -51,22 +51,26 @@ Release procedure
carried out after the previous release was published, but carried out after the previous release was published, but
if not: if not:
git commit -m "Bump version to X.Y.Z" git commit -m "Bump version to $version"
- Ensure all changes are committed to git. - Ensure all changes are committed to git.
- Run make distcheck and ensure that everything looks good. - Run make distcheck and ensure that everything looks good.
It should generate the distribution files for you. It should generate the distribution files for you.
- Tag the current git HEAD with the new version number:
git tag -s $version -m "Release $version"
- Run the tests on various Perl versions via Docker: - Run the tests on various Perl versions via Docker:
./build-docker.sh ./build-docker.sh
./test-docker.sh ./test-docker.sh
Obviously if there are any failures, they will need to be fixed
first, and then repeat the above steps.
- At this point we have a release candidate. Tag the current git HEAD
with the new version number:
git tag -s $version -m "Release $version"
- Run ./Build dist - Run ./Build dist
- Upload the resulting Stow-v7.8.9.tar.gz to CPAN via https://pause.perl.org/ - Upload the resulting Stow-v7.8.9.tar.gz to CPAN via https://pause.perl.org/

14
tools/get-version Executable file
View file

@ -0,0 +1,14 @@
#!/usr/bin/perl -w
use strict;
open(CONF, "configure.ac") or die "Couldn't open configure.ac: $!\n";
while (<CONF>) {
if (/^AC_INIT\(\[stow\], \[(.+?)\]/) {
print "$1\n";
exit 0;
}
}
exit 1;