This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
No need for D and d flags in pod.lst - source is fixed, and contains the target
authorNicholas Clark <nick@ccl4.org>
Tue, 21 Jun 2011 09:46:00 +0000 (11:46 +0200)
committerNicholas Clark <nick@ccl4.org>
Tue, 21 Jun 2011 09:46:00 +0000 (11:46 +0200)
As the edited perldelta is now always pod/perldelta.pod (instead of a file with
version numbers in it), we don't need a 'D' flag to mark it. As perldelta.pod
contains within itself the number of the version it refers to, we can use that
to infer the 'd' flag for the target filename.

This simplifies the release manager's tasklist for version bumping.

Porting/release_managers_guide.pod
pod.lst
pod/buildtoc

index f155391..d93d21a 100644 (file)
@@ -938,12 +938,7 @@ version numbers.  Then commit the move and the new file.
 Now you need to update various tables of contents related to perldelta,
 most of which can be generated automatically.
 
-Edit F<pod.lst>: add the new entry, flagged as 'd', and unflag the previous
-entry from being 'd'; for example:
-
-    -d perl5101delta                Perl changes in version 5.10.1
-    +d perl5102delta                Perl changes in version 5.10.2
-    +  perl5101delta                Perl changes in version 5.10.1
+Edit F<pod.lst>: add the new entry
 
 Manually create a temporary link to the new delta file; normally this is
 done from the Makefile, but the Makefile is updated by buildtoc, and
diff --git a/pod.lst b/pod.lst
index 7e8d832..7891e84 100644 (file)
--- a/pod.lst
+++ b/pod.lst
@@ -4,8 +4,6 @@
 # g    - other autogenerated pods
 # a    - for auxiliary documentation
 # number - indent by
-# D    - this version's perldelta
-# d    - copied to this name
 
 h Overview
 
@@ -140,8 +138,8 @@ h Miscellaneous
   perldoc              Look up Perl documentation in Pod format
 
   perlhist             Perl history records
-D perldelta            Perl changes since previous version
-d perl5150delta                Perl changes in version 5.15.0
+  perldelta            Perl changes since previous version
+  perl5150delta                Perl changes in version 5.15.0
   perl5140delta                Perl changes in version 5.14.0
   perl51311delta       Perl changes in version 5.13.11
   perl51310delta       Perl changes in version 5.13.10
index 1512711..9e1245d 100644 (file)
@@ -117,13 +117,28 @@ if ($Verbose) {
   print "I will be building $_\n" foreach keys %Build;
 }
 
+my $delta_target;
+
+{
+    my $source = 'perldelta.pod';
+    open my $fh, '<', "pod/$source" or my_die "Can't open pod/$source: $!";
+    local $/;
+    my $contents = <$fh>;
+    my @want =
+       $contents =~ /perldelta - what is new for perl v5\.(\d+)\.(\d+)\n/;
+    die "Can't extract version from pod/$source" unless @want;
+    $delta_target = "perl5$want[0]$want[1]delta.pod";
+
+    # This way round so that keys can act as a MANIFEST skip list
+    # Targets will always be in the pod directory. Currently we can only cope
+    # with sources being in the same directory.
+    $Copies{$delta_target} = $source;
+}
 
 # process pod.lst
 
 open my $master, '<', $masterpodfile or my_die "Can't open $masterpodfile: $!";
 
-my ($delta_source, $delta_target);
-
 foreach (<$master>) {
   next if /^\#/;
 
@@ -146,15 +161,8 @@ foreach (<$master>) {
     $flags{indent} = $1 if $flags =~ s/(\d+)//;
     $flags{toc_omit} = 1 if $flags =~ tr/o//d; 
     $flags{aux} = 1 if $flags =~ tr/a//d;
+    $flags{perlpod_omit} = "$filename.pod" eq $delta_target;
 
-    if ($flags =~ tr/D//d) {
-      $flags{manifest_omit} = 1;
-      $delta_source = "$filename.pod";
-    }
-    if ($flags =~ tr/d//d) {
-      $flags{perlpod_omit} = 1;
-      $delta_target = "$filename.pod";
-    }
     $Generated{"$filename.pod"}++ if $flags =~ tr/g//d;
 
     if ($flags =~ tr/r//d) {
@@ -175,18 +183,6 @@ foreach (<$master>) {
     my_die "Malformed line: $_" if $1 =~ tr/A-Z//;
   }
 }
-if (defined $delta_source) {
-  if (defined $delta_target) {
-    # This way round so that keys can act as a MANIFEST skip list
-    # Targets will aways be in the pod directory. Currently we can only cope
-    # with sources being in the same directory.
-    $Copies{$delta_target} = $delta_source;
-  } else {
-    my_die "delta source defined but not target";
-  }
-} elsif (defined $delta_target) {
-  my_die "delta target defined but not source";
-}
 
 close $master;