Add some polish to the release process
This commit is contained in:
parent
42ed9ed942
commit
e647c53af1
2 changed files with 36 additions and 18 deletions
|
@ -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
14
tools/get-version
Executable 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;
|
Loading…
Reference in a new issue