Release process
From collectd Wiki
This page is meant as a rough guide for doing a collectd release.
- Start writing a ChangeLog. This is easiest when writing the changelog in the wiki, e.g. at Version 5.4.
- I usually get a list of all commits (
git log collectd-5.4.1..collectd-5.4
), go through this commit-by-commit. - Write from a user's point of view. For example: "Support for recent versions of gcrypt has been added." rather than "don't enable gcrypt thread callbacks when gcrypt recent enough".
- Write in the past tense, use passive form. For example: "Support for X has been added.", "The Y option has been added."
- I usually get a list of all commits (
- Convert the ChangeLog entry to plain-text and add it to the top of ChangeLog. See #wiki2changelog.pl below.
- Increase the version number in version-gen.sh.
- Commit and call
./build.sh
so autoconf picks up the new version number. - Tag the commit with
git tag --sign collectd-X.Y.Z
orgit tag --sign collectd-X.Y.Z-rc0
- Build tarballs with
make distcheck
- Upload tarballs; make sure files are world-readable.
- Update
SHA256SUM
and friends. - Change links on the download page and in the left-hand menu.
- Convert the ChangeLog entry to HTML and update the News page. See #wiki2html.pl below.
- Update the releases page on github.
- Update the topic in the IRC channel.
- Make noise (Twitter, Google+, …)
wiki2changelog.pl
#!/usr/bin/perl
use strict;
use warnings;
while (<>)
{
s#'''##g;
s#''##g;
s#<code>([^<]+)</code>#"$1"#g;
s#\[\[[^\|\]]+\|([^\]]+)\]\]#$1#g;
s#{{Plugin\|([^}]+)}}#plugin($1)#ge;
s/{{Issue\|([^}]+)}}/#$1/g;
print "\t$_";
}
sub plugin
{
$_ = lc ($_[0]);
s/\s/_/g;
return "$_ plugin";
}
wiki2html.pl
#!/usr/bin/perl
use strict;
use warnings;
while (<>)
{
chomp;
s#^\* ##;
s#'''([^']+)'''#<strong>$1</strong>#g;
s#''([^']+)''#<em>$1</em>#g;
s#\[\[([^\|\]]+)\|([^\]]+)\]\]#<a href="/wiki/index.php/$1">$2</a>#g;
s#{{Plugin\|([^}]+)}}#<a href="/wiki/index.php/Plugin:$1">$1 plugin</a>#g;
s#{{Issue\|([^}]+)}}#<a href="https://github.com/collectd/collectd/issues/$1">\#$1</a>#g;
print "$_<br />\n";
}