5797
Comment: refs to things which will break when we update perl; general tidying
|
6070
libmodule-corelist-perl and other dual-lived modules; debian/released-versions
|
Deletions are marked like this. | Additions are marked like this. |
Line 107: | Line 107: |
* libmodule-corelist-perl will need updating to track the data added for the new release. * Check other dual-lived modules which have changed in case updates are needed (but that is less likely) * Make sure the new version number is added to debian/released-versions |
Some notes/TODO relating to perl interpreter maintenance.
5.14 is in unstable, repository at http://anonscm.debian.org/gitweb/?p=perl/perl.git
Perl 5.14 changes: http://perldoc.perl.org/perldelta.html#Incompatible-Changes
5.16 is in experimental, repository at http://anonscm.debian.org/gitweb/?p=perl/perl.git
Work related to Perl 5.16
Perl 5.16 transition bugs: http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=perl-5.16-transition;users=debian-perl@lists.debian.org
How to install perl 5.16 from experimental: http://people.debian.org/~dom/perl/test/perl-5.16.1-setup.txt.asc
Rebuilding packages
The main complication is that we need unofficial binNMUs of the perlapi-* and libperl reverse dependencies so that they can be used as build dependencies for rebuilding the rest.
The scripts at http://svn.debian.org/viewsvn/pkg-perl/scripts/perl-5.10-transition/perlapi.out?view=markup can be used to determine the necessary binNMUs; the order also matters because the dependencies form a chain.
Example: libdevel-caller-perl is needed by libdevel-lexalias-perl, libpadwalker-perl is needed by libdevel-caller-perl etc.
- set up an sbuild chroot with Perl 5.12 (note that debconf-english may need to be installed manually in place of debconf-i18n so that build-essential stays installable)
- convert an up to date perlapi.out into sbuild commands like
- sbuild -c exp -d unstable --make-binNMU="Rebuild for Perl 5.12" --binNMU=1 libgoo-canvas-perl_0.06-1
- upload the results into an unofficial repository (reprepro is a good tool; maybe the Alioth web space should be used to push these out to public?)
- file bugs for any failures
- once all the necessary binNMUs are uploaded, proceed to test rebuild all the arch:all packages (lib*-perl is a first approximation)
note that testing on i386 instead of amd64 would be better, as the use64bitint changes in 5.12 only affect 32-bit architectures -> better test coverage
- a 32-bit chroot and the schroot Personality option should be good enough on an amd64 host
Other issues
- BTS:
- categorizing and triaging bugs
- I think usertags could help here, we just need a sensible list
- closing invalid bugs
- Eugene has done a lot of this already, but I think there are still plenty left
- forwarding triaged bugs upstream if they're present on unmodified bleadperl
- we could definitely do better here; I'm personally erring much too often on the side of "I'll write a patch first" and then forgetting about it
- OTOH upstream has explicitly stated that documentation bugs should come with patches
- fixing the `real' Debian-specific bugs
- this is often hard because perl is such a core package in Debian and needs to change conservatively
examples: (495394)
- categorizing and triaging bugs
- Debian-specific patches (debian/patches/debian/*)
- document what they do, why they are needed etc.
- + possibly create one `divergence bug' per patch in the BTS to track this?
- ideally, find a way to drop them or integrate them upstream
- upstream has quite high standards so quick hacks usually don't make it in
- specific notes:
debian/cpan_config_path may be obsolete with 5.14? It looks like upstream CPAN no longer tries to write a CPAN::Config file if it doesn't exist already, but falls back to CPAN::?MyConfig under $HOME.
- document what they do, why they are needed etc.
- Alioth infrastructure:
- sending git commits to the PTS
- mailing list setup, spam filtering, moderation
- anything still needed?
- project web pages and other documentation
- other than maybe a basic jumping off point pointing to the wiki, PTS etc, what sort of things would go here?
- general peer review
- getting git commits via mail should help here
git-dpm use
Reverting a patch
git dpm checkout-patched git log <search for commit hash of patch to revert> - also note short log message git rebase -i <commit hash>^ The commit in question should be listed first. Delete it. git dpm dch
Other
General patch management: http://anonscm.debian.org/gitweb/?p=perl/perl.git;a=blob;f=debian/README.source
Upstream support policy
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2011-04/msg00352.html
5.10 (in squeeze) will be desupported by upstream at the release of 5.14. According to my reading of that announcement this will effectively end security support for 5.10 at the same time (since 5.10.0 was released more than three years ago).
Package maintenance policies
- We only apply patches which have already been applied in bleadperl if at all possible, or at least have been forwarded upstream
- should this include dual-lived modules?
Bug tagging notes
We should probably define some useful usertags. Some initial thoughts:
- Things fixed upstream: tag which (major?) version. Suggested name: fixed-upstream-$maj_ver
- or only on CPAN: fixed-upstream-cpan
- Divergence bugs (see above) for all Debian-specific patches:
- probably different sub-categories?
New upstream release checklist
These are some things to consider when uploading (even a point release) new upstream version to unstable)
- Bump major version trigger? (probably only for incompatible APIs)
libperl-apireference-perl will need to be updated as it has explicit references to each version of perl (eg: 647122)
libpar-packer-perl will need a binNMU (551356)
libdevel-cover-perl will need a binNMU (562214)
- libclass-xsaccessor-perl will need a binNMU (Add dependency on same upstream version of perl to make sure #define PERL_CORE never breaks things.)
- libmodule-corelist-perl will need updating to track the data added for the new release.
- Check other dual-lived modules which have changed in case updates are needed (but that is less likely)
- Make sure the new version number is added to debian/released-versions