perl
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
Porting/release_managers_guide.pod view on Meta::CPAN
that you've ever done, make sure that your name is listed in the section
entitled C<THE KEEPERS OF THE PUMPKIN>.
I<If you're making a BLEAD-FINAL release>, also update the "SELECTED
RELEASE SIZES" section with the output of
F<Porting/perlhist_calculate.pl>.
Be sure to commit your changes:
$ git commit -m 'Add new release to perlhist' pod/perlhist.pod
=for checklist skip BLEAD-POINT
=head3 update patchlevel.h
I<You MUST SKIP this step for a BLEAD-POINT release>
Update F<patchlevel.h> to add a C<-RC1>-or-whatever string; or, if this is
a final release, remove it. For example:
static const char * const local_patches[] = {
NULL
+ ,"RC1"
#ifdef PERL_GIT_UNCOMMITTED_CHANGES
,"uncommitted-changes"
#endif
Be sure to commit your change:
$ git commit -m 'Bump version to RCnnn' patchlevel.h
=head3 run makemeta to update META files
$ ./perl -Ilib Porting/makemeta
Be sure to commit any changes (if applicable):
$ git status # any changes?
$ git commit -m 'Update META files' META.*
=head3 build, test and check a fresh perl
Build perl, then make sure it passes its own test suite, and installs:
$ git clean -xdf
$ ./Configure -des -Dprefix=/tmp/perl-5.X.Y-pretest
# or if it's an odd-numbered version:
$ ./Configure -des -Dusedevel -Dprefix=/tmp/perl-5.X.Y-pretest
$ make test install
Check that the output of C</tmp/perl-5.X.Y-pretest/bin/perl -v> and
C</tmp/perl-5.X.Y-pretest/bin/perl -V> are as expected,
especially as regards version numbers, patch and/or RC levels, and @INC
paths. Note that as they have been built from a git working
directory, they will still identify themselves using git tags and
commits. (Note that for an odd-numbered version, perl will install
itself as C<perl5.X.Y>). C<perl -v> will identify itself as:
This is perl 5, version X, subversion Y (v5.X.Y (v5.XX.Z-NNN-gdeadbeef))
where 5.X.Z is the latest tag, NNN the number of commits since this tag,
and C<< deadbeef >> commit of that tag.
Then delete the temporary installation.
=head3 create the release tag
Create the I<annotated> tag identifying this release (e.g.):
$ git tag v5.11.0 -m 'First release of the v5.11 series!'
It is B<VERY> important that from this point forward, you not push
your git changes to the Perl master repository. If anything goes
wrong before you publish your newly-created tag, you can delete
and recreate it. Once you push your tag, we're stuck with it
and you'll need to use a new version number for your release.
Verify that your tag is annotated:
$ git show v5.X.Y
The output must look similar to the following:
tag v5.X.Y
Tagger: Jesse Vincent <jesse@bestpractical.com>
Date: Fri Oct 2 16:29:56 2009 -0400
=head3 build the tarball
Before you run the following, you might want to install 7-Zip (the
C<p7zip-full> package under Debian or the C<p7zip> port on MacPorts) or
the AdvanceCOMP suite (e.g. the C<advancecomp> package under Debian,
or the C<advancecomp> port on macports - 7-Zip on Windows is the
same code as AdvanceCOMP, so Windows users get the smallest files
first time). These compress about 5% smaller than gzip and bzip2.
Over the lifetime of your distribution this will save a lot of
people a small amount of download time and disk space, which adds
up.
In order to produce the C<xz> tarball, XZ Utils are required. The C<xz>
utility is included with most modern UNIX-type operating systems and
is available for Cygwin. A Windows port is available from
L<https://tukaani.org/xz/>.
B<IMPORTANT>: if you are on OS X, you must export C<COPYFILE_DISABLE=1>
to prevent OS X resource files from being included in your tarball. After
creating the tarball following the instructions below, inspect it to ensure
you don't have files like F<._foobar>.
Create a tarball. Use the C<-s> option to specify a suitable suffix for
the tarball and directory name:
$ cd root/of/perl/tree
$ perl Porting/makerel -x -s RC1 # for a release candidate
$ perl Porting/makerel -x # for the release itself
This creates the directory F<../perl-x.y.z-RC1> or similar, copies all
the MANIFEST files into it, sets the correct permissions on them, then
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.568 second using v1.00-cache-2.02-grep-82fe00e-cpan-1925d2aa809 )