Difference between revisions of "Release process"

From collectd Wiki
Jump to: navigation, search
(Add wiki2html.pl)
m
 
(4 intermediate revisions by 3 users not shown)
Line 5: Line 5:
 
#* Write from a user's point of view. For example: <span style="color: darkgreen;">"Support for recent versions of ''gcrypt'' has been added."</span> rather than <span style="color: maroon;">"don't enable gcrypt thread callbacks when gcrypt recent enough"</span>.
 
#* Write from a user's point of view. For example: <span style="color: darkgreen;">"Support for recent versions of ''gcrypt'' has been added."</span> rather than <span style="color: maroon;">"don't enable gcrypt thread callbacks when gcrypt recent enough"</span>.
 
#* Write in the past tense, use passive form. For example: "Support for X has been added.", "The Y option has been added."
 
#* Write in the past tense, use passive form. For example: "Support for X has been added.", "The Y option has been added."
# Convert the ChangeLog entry to plain-text and add it to the top of {{GitFile|ChangeLog}}. [[User:Octo|octo]] has a short Perl script for this.
+
# Convert the ChangeLog entry to plain-text and add it to the top of {{GitFile|ChangeLog}}. See [[#wiki2changelog.pl]] below.
 
# Increase the version number in {{GitFile|version-gen.sh}}.
 
# Increase the version number in {{GitFile|version-gen.sh}}.
 
# Commit and call <code>./build.sh</code> so autoconf picks up the new version number.
 
# Commit and call <code>./build.sh</code> so autoconf picks up the new version number.
 +
# Tag the commit with <code>git tag --sign collectd-X.Y.Z</code> or <code>git tag --sign collectd-X.Y.Z-rc0</code>
 
# Build tarballs with <code>make distcheck</code>
 
# Build tarballs with <code>make distcheck</code>
 
# Upload tarballs; make sure files are world-readable.
 
# Upload tarballs; make sure files are world-readable.
# Update <code>SHA1SUM</code> and friends.
+
# Update <code>SHA256SUM</code> and friends.
 
# Change links on the download page and in the left-hand menu.
 
# Change links on the download page and in the left-hand menu.
# Convert the ChangeLog entry to HTML and update the ''News'' page. [[User:Octo|octo]] has a short Perl script for this.
+
# Convert the ChangeLog entry to HTML and update the ''News'' page. See [[#wiki2html.pl]] below.
 +
# Update the [https://github.com/collectd/collectd/releases releases page] on github.
 
# Update the topic in the IRC channel.
 
# Update the topic in the IRC channel.
 
# Make noise (Twitter, Google+, …)
 
# Make noise (Twitter, Google+, …)
Line 69: Line 71:
 
   }
 
   }
 
</source>
 
</source>
 +
 +
[[Category:Development]]

Latest revision as of 15:38, 19 March 2020

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. See #wiki2changelog.pl below.
  3. Increase the version number in version-gen.sh.
  4. Commit and call ./build.sh so autoconf picks up the new version number.
  5. Tag the commit with git tag --sign collectd-X.Y.Z or git tag --sign collectd-X.Y.Z-rc0
  6. Build tarballs with make distcheck
  7. Upload tarballs; make sure files are world-readable.
  8. Update SHA256SUM and friends.
  9. Change links on the download page and in the left-hand menu.
  10. Convert the ChangeLog entry to HTML and update the News page. See #wiki2html.pl below.
  11. Update the releases page on github.
  12. Update the topic in the IRC channel.
  13. 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";
  }