From: Andy Dougherty Date: Mon, 24 Feb 1997 21:06:02 +0000 (-0500) Subject: pumpkin-1.9.pod X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=7b5757d1964feb9addad9bbc8c756ff9b094a9fe;p=p5sagit%2Fp5-mst-13.2.git pumpkin-1.9.pod private-msgid: directory. +=head2 Maintenance and Development Subversions + +As an experiment, starting with version 5.004, subversions _01 through +_49 will be reserved for bug-fix maintenance releases, and subversions +_50 through _99 will be available for unstable development versions. + +The separate bug-fix track is being established to allow us an easy +way to distribute important bug fixes without waiting for the +developers to untangle all the other problems in the current +developer's release. + +Watch for announcements of maintenance subversions in +comp.lang.perl.announce. + =head2 Why such a complicated scheme? Two reasons, really. At least. -First, we need some way to identify releases that are known to -have new features that need testing and exploration. The +First, we need some way to identify and release collections of patches +that are known to have new features that need testing and exploration. The subversion scheme does that nicely while fitting into the C mold. @@ -128,7 +151,16 @@ have tried to follow as I apply patches to the perl sources. =head2 Solve problems as generally as possible -(I still have to think of a good example here.) +Never implement a specific restricted solution to a problem when you +can solve the same problem in a more general, flexible way. + +For example, for dynamic loading to work on some SVR4 systems, we had +to build a shared libperl.so library. In order to build "FAT" binaries +on NeXT 4.0 systems, we had to build a special libperl library. Rather +than continuing to build a contorted nest of special cases, I +generalized the process of building libperl so that NeXT and SVR4 users +could still get their work done, but others could build a shared +libperl if they wanted to as well. =head2 Seek consensus on major changes @@ -142,7 +174,7 @@ that the documentation is in sync with your changes. Be sure to check all the files F and also the F document. Consider writing the appropriate documentation first and then -implementing it to correspond to the documentation. +implementing your change to correspond to the documentation. =head2 Avoid machine-specific #ifdef's @@ -157,7 +189,7 @@ may help out folks on another platform who have the same problem. We should never release a main version without testing it as a subversion first. -=head2 Automate generatation of derivative files +=head2 Automate generation of derivative files The F, F, F, and F files are all automatically generated by perl scripts. In general, don't @@ -192,8 +224,8 @@ bug fixes and documentation improvements that are posted while he or she has the pumpkin, but there might also be larger issues at stake. One of the precepts of the subversion idea is that we shouldn't give -it to anyone unless we have some idea what you're going to do with -it. +the patch pumpkin to anyone unless we have some idea what he or she +is going to do with it. =head2 refresh pod/perltoc.pod @@ -225,7 +257,9 @@ available the same place you found this file. On CPAN, look under my directory F 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 to reproduce Perl's -Configure script. +Configure script. (Those units are for 5.003_07. There have been +changes since then; please contact me if you want more recent +versions, and I will try to point you in the right direction.) Alternatively, do consider if the F<*ish.h> files might be a better place for your changes. @@ -337,7 +371,7 @@ Some additional notes from Larry on this: Don't forget to regenerate perly.c.diff. - byacc perly.y + byacc -d perly.y mv y.tab.c perly.c patch perly.c of mail consisting of people worrying because the command failed. I eventually decided that I would save myself time and effort by manually running C myself rather than answering all the questions and complaints about the failing @@ -420,6 +454,9 @@ diffs against B. If you make changes to Configure, you may want to consider regenerating this diff file to save trouble for the OS/2 maintainer. +You can also consider the OS/2 diffs as reminders of portability +things that need to be fixed in Configure. + =head2 VMS-specific updates If you have changed F, then you may want to update @@ -444,7 +481,7 @@ do something like the following I find the F 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 +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 @@ -483,10 +520,10 @@ shell commands at the top of the patch. Next, I delete all the patch parts of perl5.004_08.pat, leaving just the shell commands. Then, I do the following: - cd perl5.003_07 - sh ../perl5.003_08.pat + cd perl5.004_07 + sh ../perl5.004_08.pat cd .. - makepatch perl5.003_07 perl5.003_08 >> perl5.003_08.pat + makepatch perl5.004_07 perl5.004_08 >> perl5.004_08.pat (Note the append to preserve my shell commands.) Now, my patch will line up with what the end users are going to do. @@ -496,13 +533,13 @@ Now, my patch will line up with what the end users are going to do. It seems obvious, but be sure to test your patch. That is, verify that it produces exactly the same thing as your full distribution. - rm -rf perl5.003_07 - gzip -d -c perl5.003_07.tar.gz | tar -xf - - cd perl5.003_07 - sh ../perl5.003_08.pat - patch -p1 -N < ../perl5.003_08.pat + rm -rf perl5.004_07 + gzip -d -c perl5.004_07.tar.gz | tar -xf - + cd perl5.004_07 + sh ../perl5.004_08.pat + patch -p1 -N < ../perl5.004_08.pat cd .. - gdiff -r perl5.003_07 perl5.003_08 + gdiff -r perl5.004_07 perl5.004_08 where B is GNU diff. Other diff's may also do recursive checking. @@ -976,7 +1013,7 @@ and the full tar file, e.g. F. If you want your patch to appear in the F directory on CPAN, send e-mail to the CPAN master librarian. (Check -out http://www.perl.com/CPAN/CPAN.html). +out http://www.perl.com/CPAN/CPAN.html ). =head1 Help Save the World @@ -1119,4 +1156,4 @@ All opinions expressed herein are those of the authorZ<>(s). =head1 LAST MODIFIED -$Id: pumpkin.pod,v 1.8 1997/02/18 18:19:20 chip Released $ +$Id: pumpkin.pod,v 1.9 1997/02/24 20:37:43 doughera Released $