Difference between revisions of "Release process"

From collectd Wiki
Jump to: navigation, search
(Create initial page.)
 
(Add wiki2changelog.pl)
Line 15: Line 15:
 
# Update the topic in the IRC channel.
 
# Update the topic in the IRC channel.
 
# Make noise (Twitter, Google+, …)
 
# Make noise (Twitter, Google+, …)
 +
 +
== wiki2changelog.pl ==
 +
 +
<source lang="perl">
 +
#!/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";
 +
}
 +
</source>

Revision as of 17:03, 26 February 2015

This page is meant as a rough guide for doing a collectd release.

  1. 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."
  2. Convert the ChangeLog entry to plain-text and add it to the top of ChangeLog. octo has a short Perl script for this.
  3. Increase the version number in version-gen.sh.
  4. Commit and call ./build.sh so autoconf picks up the new version number.
  5. Build tarballs with make distcheck
  6. Upload tarballs; make sure files are world-readable.
  7. Update SHA1SUM and friends.
  8. Change links on the download page and in the left-hand menu.
  9. Convert the ChangeLog entry to HTML and update the News page. octo has a short Perl script for this.
  10. Update the topic in the IRC channel.
  11. 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";
 }