Then I needed an updated version of Test::Harness for a new module I wanted to try. When I built Test-Harness-2.26 and installed it, it caused the 5.6.1 installation to be overwritten with built-in modules from the 5.6.0 installation. This broke my 5.6.1 install, and I have not been able to repair it without resorting to backups.
The moral of the story is that now that 5.8.0 has been out for a while, updating modules in 5.6.1 has become risky. Make sure you make a backup of your perl tree before installing new modules!
This incident has triggered my migration to 5.8.0. So far 5.8.0 is working fairly well, except that several of the older, lesser maintained CPAN modules are now failing their tests.
My experience has left me with an uneasy feeling. My perception is that CPAN now has more cruft that won't work in 5.8.0, and that CPAN has at least one dangerous module that will kill a 5.6.0/5.6.1 install. Protecting myself would involve backing up 270MB of already-installed perl before each module install.
Email to the module author has gone unanswered for over a week, so I don't have much hope there.
It should work perfectly the first time! - toma
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Module installation can be harmful
by diotalevi (Canon) on Oct 09, 2002 at 10:02 UTC | |
Upgrades have consequences. I can't speak for the 5.6.0 -> 5.6.1 Test::Harness problem but I do recall that you cannot just upgrade to 5.8.0 and expect compiled modules to work. Some binary APIs were changed or something - it's in the ChangeList or somewhere prominent that I know I read about it. All that means is that if you upgrade to 5.8 you can expect to have to somehow conspire for either all the compiled stuff to get recompiled or just install them over again. In addition to that - keep in mind that any fool can upload new things to CPAN. People can't overwrite each other's work but there's nothing to stop someone from sending /new/ things up. This means there's some inherant trust issues regarding modules from CPAN. You have to trust that the author is both cluefull and benign. I do place a lot of trust in the various authors who publish to CPAN. The only alternative is to either audit all the code I download or just not download it. Both are fairly poor alternatives. There is one mitigating factor: CPAN testers. There's already a great bunch of people out there downloading and trying new versions on their various machines. There's at least a chance that any problems will be at least noticed if not caught by these folks. If you follow the URL I just posted then you'll also notice an archived e-mail list of testing results. Those results are gathered back into CPAN proper and are visible when viewing the CPAN archive from search.cpan.org. This leaves with some options - you can either approach CPAN with the appropriate wariness and use the tools provided (CPAN tester's results, is it a common module, ChangeLog info on incompatible changes) or you can continue to operate in a fantasy land where every new change and tweak is backwards compatible and is bug free.
| [reply] [d/l] |
by toma (Vicar) on Oct 10, 2002 at 06:16 UTC | |
I didn't expect perl 5.8 to have binary compatibility with perl 5.6.X. One of the challenges with testing is trying things on the many different versions of systems. Imagine CPAN test results as a table, where the rows of the table are the modules, and the columns of the table are all the possible configurations of perl, I think that only a very small percentage of the table is filled in. It's a really great project and I hope that the table continues to become more filled-in. Yet I'm not sure that the cpan testers would have found this particular problem with an automated CPAN testing process. The module passed its tests. It just broke perl when I installed it. In a response to chromatic's node below, I have included more details about what happened. I don't expect every module to be backwards compatible. But if a pure perl module is in the core, and passes its tests, I don't expect it to break perl itself when it is installed. For the most part, my expectation has been met. I think that there is a big challenge to make a transition such as 5.6.0/1 to 5.6.8 work smoothly, and perhaps some modules have trouble with this. It should work perfectly the first time! - toma | [reply] |
|
Re: Module installation can be harmful
by PodMaster (Abbot) on Oct 09, 2002 at 09:38 UTC | |
Have you talked to schwern (he maintains it) about this? (you should, i'd like to hear what he has to say about it, maybe it's inadvertent) I noticed that CGI.pm-2.81 cheerfully installs itself into the \perl\lib directory, overwriting whatever version of CGI came where, which was a bit unexpected. Bummer.
____________________________________________________ | [reply] |
by Anonymous Monk on Oct 09, 2002 at 10:39 UTC | |
It was a bug in CPAN in 5.005_03. The bug was not discovered until after 5.6.0 was out and people were being forcibly upgraded. It was fixed in the 5.6.1 release. Upgrading CPAN.pm first would have solved it. | [reply] |
by PodMaster (Abbot) on Oct 09, 2002 at 11:30 UTC | |
____________________________________________________ | [reply] |
by demerphq (Chancellor) on Oct 09, 2002 at 13:29 UTC | |
|
Re: Module installation can be harmful
by chromatic (Archbishop) on Oct 09, 2002 at 18:02 UTC | |
This does sound extremely fishy. Were you sharing module directories between your 5.6.0 and 5.6.1 installations? I'd recommend reporting this to perl-qa@perl.org, with as much relevant information as you can provide. | [reply] |
by toma (Vicar) on Oct 10, 2002 at 05:51 UTC | |
I installed Test::Harness because it seemed to need to be updated in order to install another module that merlyn recommended to me in the CB. I was able to reproduce this problem by going to a backup and running the module install again. Here is a transcript of what I did and what happened:
It should work perfectly the first time! - toma | [reply] [d/l] |
|
Re: Module installation can be harmful
by John M. Dlugosz (Monsignor) on Oct 11, 2002 at 18:34 UTC | |
| [reply] |