You will need a working C<git> installation, checkout of the perl
git repository and perl commit bit. For information about working
-with perl and git, see F<pod/perlrepository.pod>.
+with perl and git, see F<pod/perlgit.pod>.
If you are not yet a perl committer, you won't be able to make a
release. Have a chat with whichever evil perl porter tried to talk
I<You MAY SKIP this step for SNAPSHOT>
-Similarly, monitor the smoking of core tests, and try to fix.
-See L<http://doc.procura.nl/smoke/index.html> for a summary.
+Similarly, monitor the smoking of core tests, and try to fix. See
+L<http://doc.procura.nl/smoke/index.html> for a summary. See also
+L<http://www.nntp.perl.org/group/perl.daily-build.reports/> which has
+the raw reports.
=item *
scan the source directory looking for likely candidates. The command line
arguments are the old and new version numbers, and -s means scan:
- $ Porting/bump-perl-version -s 5.10.0 5.10.1 > /tmp/scan
+ $ ./perl -Ilib Porting/bump-perl-version -s 5.10.0 5.10.1 > /tmp/scan
This produces a file containing a list of suggested edits, e.g.:
grepping for '5.10.0' or whatever, so it will generate false positives. Be
careful not change text like "this was fixed in 5.10.0"! Then run:
- $ Porting/bump-perl-version -u < /tmp/scan
+ $ ./perl -Ilib Porting/bump-perl-version -u < /tmp/scan
which will update all the files shown.
$ git log --pretty=fuller v5.13.2..HEAD | \
perl Porting/checkAUTHORS.pl --who -
+Look at the previous L<perldelta> for how to write the opening
+paragraph of the Acknowledgements section. To get the amount of
+changed files and number of lines use this command:
+
+ $ git diff --shortstat v5.13.8..v5.13.9 | \
+ ./perl -Ilib -nE 'my ($files, $insert, $delete) = /(\d+)/ga; say "$files files and ", $insert + $delete, " lines changed"'
+
+Making sure to round off the number of lines changed.
+
Re-read the perldelta to try to find any embarrassing typos and thinkos;
remove any C<TODO> or C<XXX> flags; update the "Known Problems" section
with any serious issues for which fixes are not going to happen now; and
Also, you may want to generate and view an HTML version of it to check
formatting, e.g.
- $ perl pod/pod2html pod/perldelta.pod > /tmp/perldelta.html
+ $ ./perl -Ilib ext/Pod-Html/pod2html pod/perldelta.pod > /tmp/perldelta.html
Another good HTML preview option is http://search.cpan.org/pod2html
Edit the version number in the new C<< 'Module::CoreList' => 'X.YZ' >>
entry, as that is likely to reflect the previous version number.
-Also edit Module::CoreList's new version number in its F<Changes> file and
-in its F<META.yml> file.
+Also edit Module::CoreList's new version number in its F<Changes>
+file.
+
+You should also add the version you're about to release to the
+L<Module::CoreList/CAVEATS> section which enumerates the perl releases
+that Module::CoreList covers.
In addition, if this is a final release (rather than a release candidate):
Check that the manifest is sorted and correct:
- $ make manisort
$ make distclean
$ git clean -xdf # This shouldn't be necessary if distclean is correct
$ perl Porting/manicheck
- $ git status
- XXX manifest _sorting_ is now checked with make test_porting
-
-Commit MANIFEST if it has changed:
+If manicheck turns up anything wrong, update MANIFEST and begin this step again.
+ $ ./configure -des -Dusedevel
+ $ make test_porting
$ git commit -m 'Update MANIFEST' MANIFEST
=item *
Run the Installation Verification Procedure utility:
- $ bin/perlivp
+ $ ./perl utils/perlivp
...
All tests successful.
$
Bootstrap the CPAN client on the clean install:
- $ bin/perl -MCPAN -e'shell'
+ $ bin/perl -MCPAN -e "shell"
-(Use C<... -e "shell"> instead on Win32. You probably also need a set of
-Unix command-line tools available for CPAN to function correctly without
+If you're running this on Win32 you probably also need a set of Unix
+command-line tools available for CPAN to function correctly without
Perl alternatives like LWP installed. Cygwin is an obvious choice.)
=item *
Check that your perl can run this:
- $ bin/perl -lwe 'use Inline C => "int f() { return 42;} "; print f'
+ $ bin/perl -lwe "use Inline C => q[int f() { return 42;}]; print f"
42
$
-(Use C<... -lwe "use ..."> instead on Win32.)
-
=item *
Bootstrap the CPANPLUS client on the clean install:
Then check that the smoke tests pass (particularly on Win32). If not, go
back and fix things.
+Note that for I<BLEAD> releases this may not be practical. It takes a
+long time for the smokers to catch up, especially the Win32
+smokers. This is why we have a RC cycle for I<MAINT> releases, but for
+I<BLEAD> releases sometimes the best you can do is to plead with
+people on IRC to test stuff on their platforms, fire away, and then
+hope for the best.
=item *
=item *
+I<You MUST SKIP this step for SNAPSHOT or BLEAD release>
+
Disarm the F<patchlevel.h> change; for example,
static const char * const local_patches[] = {