A changelog groups release notes by the kind of user-visible change.

changelog-entries Short categories make a changelog easier to scan during upgrades.

Changelog Entries

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

my $kind = "fixed";
my %headings = (
    added   => "Added",
    fixed   => "Fixed",
    removed => "Removed",
);
my $heading = $headings{$kind};
my $entry = "$heading: update parser behavior";

print "kind=$kind\n";
print "heading=$heading\n";
print "entry=$entry\n";
use strict;
use warnings;

my $kind = "added";
my %headings = (
    added   => "Added",
    fixed   => "Fixed",
    removed => "Removed",
);
my $heading = $headings{$kind};
my $entry = "$heading: update parser behavior";

print "kind=$kind\n";
print "heading=$heading\n";
print "entry=$entry\n";
use strict;
use warnings;

my $kind = "removed";
my %headings = (
    added   => "Added",
    fixed   => "Fixed",
    removed => "Removed",
);
my $heading = $headings{$kind};
my $entry = "$heading: update parser behavior";

print "kind=$kind\n";
print "heading=$heading\n";
print "entry=$entry\n";
  1. $kind ← fixed, %headings ← 3, $heading ← Fixed, $entry ← Fixed: update parser behavior

    4my $kind→ fixed = "fixed"; #@kind="added", "removed"5my %headings→ 3 = (6    added   => "Added",7    fixed   => "Fixed",8    removed => "Removed",9);10my $heading→ Fixed = $headings{$kind}Fixed;11my $entry→ Fixed: update parser behavior = "$headingFixed: update parser behavior";1213print "kind=$kindfixed\n";14print "heading=$headingFixed\n";15print "entry=$entryFixed: update parser behavior\n";
    outputkind=fixed
    heading=Fixed
    entry=Fixed: update parser behavior
  1. $kind ← added, %headings ← 3, $heading ← Added, $entry ← Added: update parser behavior

    4my $kind→ added = "added";5my %headings→ 3 = (6    added   => "Added",7    fixed   => "Fixed",8    removed => "Removed",9);10my $heading→ Added = $headings{$kind}Added;11my $entry→ Added: update parser behavior = "$headingAdded: update parser behavior";1213print "kind=$kindadded\n";14print "heading=$headingAdded\n";15print "entry=$entryAdded: update parser behavior\n";
    outputkind=added
    heading=Added
    entry=Added: update parser behavior
  1. $kind ← removed, %headings ← 3, $heading ← Removed, $entry ← Removed: update parser behavior

    4my $kind→ removed = "removed";5my %headings→ 3 = (6    added   => "Added",7    fixed   => "Fixed",8    removed => "Removed",9);10my $heading→ Removed = $headings{$kind}Removed;11my $entry→ Removed: update parser behavior = "$headingRemoved: update parser behavior";1213print "kind=$kindremoved\n";14print "heading=$headingRemoved\n";15print "entry=$entryRemoved: update parser behavior\n";
    outputkind=removed
    heading=Removed
    entry=Removed: update parser behavior