A maintenance checklist helps release work stay consistent.

maintenance-checklist A small checklist turns release readiness into data the program can summarize.

Maintenance Checklist

docs_done
maintenance_checklist.pl
Replay: real traced execution (multi-file project)
use strict;
use warnings;

my $docs_done = 1;
my @checks = ("tests", "version", "changelog");
push @checks, "docs" if $docs_done;

my $required = 4;
my $done = scalar @checks;
my $ready = $done == $required ? "yes" : "no";
my $summary = join(",", @checks);

print "docs_done=$docs_done\n";
print "done=$done\n";
print "required=$required\n";
print "ready=$ready\n";
print "summary=$summary\n";
use strict;
use warnings;

my $docs_done = 0;
my @checks = ("tests", "version", "changelog");
push @checks, "docs" if $docs_done;

my $required = 4;
my $done = scalar @checks;
my $ready = $done == $required ? "yes" : "no";
my $summary = join(",", @checks);

print "docs_done=$docs_done\n";
print "done=$done\n";
print "required=$required\n";
print "ready=$ready\n";
print "summary=$summary\n";
  1. $docs_done ← 1, @checks ← 3, $required ← 4, $done ← 4, $ready ← yes

    4my $docs_done→ 1 = 1; #@docs_done=05my @checks→ 3 = ("tests", "version", "changelog");6push @checks→ 4, "docs" if $docs_done1;78my $required→ 4 = 4;9my $done→ 4 = scalar @checks4;10my $ready→ yes = $done4 == $required4 ? "yes" : "no";11my $summary→ tests,version,changelog,docs = join(",", @checks4);1213print "docs_done=$docs_done1\n";14print "done=$done4\n";15print "required=$required4\n";16print "ready=$readyyes\n";17print "summary=$summarytests,version,changelog,docs\n";
    outputdocs_done=1
    done=4
    required=4
    ready=yes
    summary=tests,version,changelog,docs
  1. $docs_done ← 0, @checks ← 3, $required ← 4, $done ← 3, $ready ← no

    4my $docs_done→ 0 = 0;5my @checks→ 3 = ("tests", "version", "changelog");6push @checks3, "docs" if $docs_done0;78my $required→ 4 = 4;9my $done→ 3 = scalar @checks3;10my $ready→ no = $done3 == $required4 ? "yes" : "no";11my $summary→ tests,version,changelog = join(",", @checks3);1213print "docs_done=$docs_done0\n";14print "done=$done3\n";15print "required=$required4\n";16print "ready=$readyno\n";17print "summary=$summarytests,version,changelog\n";
    outputdocs_done=0
    done=3
    required=4
    ready=no
    summary=tests,version,changelog