to perl5-porters-request@perl.org .
+Archives of the list are held at:
+
+ http://www.rosat.mpe-garching.mpg.de/mailing-lists/perl-porters/
+
=head1 How are Perl Releases Numbered?
Perl version numbers are floating point numbers, such as 5.004.
are not official releases. They may contain unstable experimental
features, and are subject to rapid change. Such developer
sub-versions are numbered with sub-version numbers. For example,
-version 5.004_04 is the 4'th developer version built on top of
-5.004. It might include the _01, _02, and _03 changes, but it
-also might not. Sub-versions are allowed to be subversive.
+version 5.003_04 is the 4'th developer version built on top of
+5.003. It might include the _01, _02, and _03 changes, but it
+also might not. Sub-versions are allowed to be subversive. (But see
+the next section for recent changes.)
These sub-versions can also be used as floating point numbers, so
you can do things such as
developers to untangle all the other problems in the current
developer's release.
+Trial releases of bug-fix maintenance releases are announced on
+perl5-porters. Trial releases use the new subversion number (to avoid
+testers installing it over the previous release) and include a 'local
+patch' entry in patchlevel.h.
+
Watch for announcements of maintenance subversions in
comp.lang.perl.announce.
Here are the steps I go through to prepare a patch & distribution.
-Lots of it could doubtless be automated but isn't.
+Lots of it could doubtless be automated but isn't. The Porting/makerel
+(make release) perl script does now help automate some parts of it.
=head2 Announce your intentions
changed any documentation in any module or pod file, change to the
F<pod> directory and run C<make toc>.
+=head2 run installhtml to check the validity of the pod files
+
=head2 update patchlevel.h
Don't be shy about using the subversion number, even for a relatively
obtaining and running metaconfig is in the F<U/README> file that comes
with Perl's metaconfig units. Perl's metaconfig units should be
available the same place you found this file. On CPAN, look under my
-directory F<id/ANDYD/> for a file such as F<5.003_07-02.U.tar.gz>.
+directory F<authors/id/ANDYD/> for a file such as F<5.003_07-02.U.tar.gz>.
That file should be unpacked in your main perl source directory. It
contains the files needed to run B<metaconfig> to reproduce Perl's
Configure script. (Those units are for 5.003_07. There have been
Make sure the MANIFEST is up-to-date. You can use dist's B<manicheck>
program for this. You can also use
- perl -MExtUtils::Manifest -e fullcheck
+ perl -w -MExtUtils::Manifest=fullcheck -e fullcheck
-to do half the job. This will make sure everything listed in MANIFEST
-is included in the distribution. dist's B<manicheck> command will
-also list extra files in the directory that are not listed in
-MANIFEST.
+Both commands will also list extra files in the directory that are not
+listed in MANIFEST.
The MANIFEST is normally sorted, with one exception. Perl includes
both a F<Configure> script and a F<configure> script. The
installperl
installman
keywords.pl
- lib/splain
myconfig
opcode.pl
perly.fixer
than answering all the questions and complaints about the failing
command.
-=head2 global.sym and interp.sym
+=head2 global.sym, interp.sym and perlio.sym
Make sure these files are up-to-date. Read the comments in these
files and in perl_exp.SH to see what to do.
Be sure to update the F<Changes> file. Try to include both an overall
summary as well as detailed descriptions of the changes. Your
-audience will include bother developers and users, so describe
+audience will include other developers and users, so describe
user-visible changes (if any) in terms they will understand, not in
code like "initialize foo variable in bar function".
tar cf perl5.004_08.tar perl5.004_08
gzip --best perl5.004_08.tar
+These steps, with extra checks, are automated by the Porting/makerel
+script.
+
=head2 Making a new patch
I find the F<makepatch> utility quite handy for making patches.
You can obtain it from any CPAN archive under
-http://www.perl.com/CPAN/authors/Johan_Vromans/ . The only
-difference between my version and the standard one is that I have mine
-do a
+http://www.perl.com/CPAN/authors/Johan_Vromans/ . There are a couple
+of differences between my version and the standard one. I have mine do
+a
# Print a reassuring "End of Patch" note so people won't
# wonder if their mailer truncated patches.
print "\n\nEnd of Patch.\n";
-at the end. That's because I used to get questions from people asking if
-their mail was truncated.
+at the end. That's because I used to get questions from people asking
+if their mail was truncated.
+
+It also writes Index: lines which include the new directory prefix
+(change Index: print, approx line 294 or 310 depending on the version,
+to read: print PATCH ("Index: $newdir$new\n");). That helps patches
+work with more POSIX conformant patch programs.
Here's how I generate a new patch. I'll use the hypothetical
5.004_07 to 5.004_08 patch as an example.
=over 4
-=item Win95, WinNT, and Win32 support
-
-We need to get something into the distribution for 32-bit Windows.
-I'm tired of all the private e-mail questions I get, and I'm saddened
-that so many folks keep trying to reinvent the same wheel.
-
=item MacPerl
-Get some of the Macintosh stuff folded back into the main
-distribution.
+Get some of the Macintosh stuff folded back into the main distribution.
=item gconvert replacement
=back
-=head1 AUTHOR
-
-Andy Dougherty <doughera@lafcol.lafayette.edu>.
+=head1 AUTHORS
-Additions by Chip Salzenberg <chip@perl.com>.
+Original author: Andy Dougherty doughera@lafcol.lafayette.edu .
+Additions by Chip Salzenberg chip@perl.com and
+Tim Bunce Tim.Bunce@ig.co.uk .
All opinions expressed herein are those of the authorZ<>(s).
=head1 LAST MODIFIED
-$Id: pumpkin.pod,v 1.10 1997/04/16 20:46:47 doughera Released $
+$Id: pumpkin.pod,v 1.13 1997/08/28 18:26:40 doughera Released $