-
Notifications
You must be signed in to change notification settings - Fork 577
Extensive CPAN breakage from two code removal projects #22517
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Try-Tiny contained some tests for smartmatch which would fail on 5.41.3, and it's at the very top of the cpan river; I've done a release for this to fix the tests, so if you try again you should see a substantial improvement (certainly everything in the Moose ecosystem depends on Try::Tiny, so many of those distributions should disappear from the failure list now). |
@karenetheridge, thanks very much for that. I also see that @atoomic has released a new version of Clone which was the missing prerequisite most often cited in the |
Swift action on the part of several CPAN distribution maintainers has greatly alleviated the problems we were facing just two days ago. As a consequence, I no longer feel that we need to consider reverting either of the two big code removal projects or postponing Tuesday's scheduled release of perl-5.41.3, nor do we need a code freeze in advance of that release. I say this on the basis of data gathered yesterday in comparison to similar data gathered last month and earlier this month. I often try to install a monthly dev release, then install Task::CPAN::Reporter against that The distros I test include (i) approximately 500 from the top of the CPAN River; (ii) most of my own CPAN distros; (iii) a list of reverse dependencies on Variable::Magic chosen because that module is particularly sensitive to changes in Perl's internals. Note: When testing the CPAN River, I do not customarily test distributions that are shipped with core. Hence, the data reported below does not detect or report the current failures in the CPAN distribution itself. These tests were conducted on FreeBSD-13; there are a handful of distros which FAIL on that platform but PASS on Linux. Month-to-Month Comparisons
Tuesday's dev release will trigger a new round of "testing all of CPAN" on the part of some of our heavy-duty CPANtesters. I fully expect that there will be a lot of new failures for distributions farther down the CPAN River, e.g., distros that, for whatever reason, bundled their own copies of Test::More. Such failures are of concern not just for themselves, but also for the fact that their reverse dependencies cease to be reachable in dependency-order automated testing. So while the pre-5.41.3 crisis is mostly past, we will soon have a lot of storm damage to clean up. |
|
It should be noted that Canary-Stability continues to PASS on CPANtesters; see: A small patch to common::sense gets it working on blead: |
Marc disgusts RT, so I do not think he'll notice. The fact that Canary::Stability itself works does not take away the fact that using it will cause build failures. See https://metacpan.org/release/MLEHMANN/JSON-XS-4.03/source/Makefile.PL#L3 |
re File::HomeDir::Tiny and ' as a package separator: I did garu/App-cpanminus-reporter#42 and dagolden/Path-Tiny#294 and genehack/app-gitgot#78 |
I have several distributions that I know are broken by the smartmatch change that haven't been detected by the usual mechanisms yet. I'm worried the problem is larger than we might think it is. |
Can you name them? (I've been keeping an off-list log and would like to add them if needed.) |
Now that 5.41.3 is out (and 5.41.4 is just a few days away), have we got an updated list of known-affected distributions? |
Just ask, "Is this particular distribution dependent on DBIx::Class, Type::Tiny, or common::sense?" (Type::Tiny's author has been working on a fix, but as yet there has been no CPAN release.) |
Smart::Match, Syntax-Infix-Smartmatch (working on a fix, but that depends on #22612), threads-lite, SmartMatch-Sugar |
Syntax-Infix-Smartmatch has been fixed. |
Type::Tiny has now seen a stable release containing the fix. It might be possible to get a new DBIx::Class fix out, given that the fix is a simple change in a test file. We would need someone with a good relationship with the author to request a release. Re common::sense, this module is not widely used and its upstream users have alternate implementations, but it might also be possible to persuade this author to accept a patch fix. What else is of concern? |
We've reverted the removal of apostrophe as a package separator, and we have a separate ticket for the given/when/switch/smartmatch failures. So we don't need to keep this ticket open. Closing now. |
We are experiencing considerable "Blead Breaks CPAN (BBC)" breakage on blead. This has already been reported on the Perl 5 Porters mailing list (thread starting here, and as already reported as breakage of individual CPAN distributions: Mojolicious; CPAN; and DBIx::Class.
The two most likely sources of this breakage are commits which implemented two long-scheduled removals of deprecated code. I'll refer to these as "apostrophe in name removal" (#22303) and "given/when/switch/smartmatch" (#22370). I believe a strong case can be made for reverting at least one of these two changes -- but first let me sketch the scope of the breakage.
Blead Breakage as of Aug 16 2024
Yesterday I built and installed an unthreaded
perl
on Debian GNU/Linux 12 (bookworm). This was built at v5.41.2-289-gc85d5a6718:If this had been a monthly dev release, I would have next installed Task::CPAN::Reporter against that
perl
and proceeded to attempt to install over 600 CPAN distributions, mostly in "CPAN River" order, and generated reports for CPANtesters.org. When I did this after the perl-5.41.2 release in July, out of 607 distros I got only 19 which were logged as anything other thantest PASS
in~/.cpanreporter/reports-sent.db
.This was not a monthly dev release, and I did not want results from this run reported to CPANtesters. So I merely attempted to install the same 600+ distributions against c85d5a6 and logged all the output from
./bin/cpan
. The process stalled several times, had to be restarted and never completed entirely. I was, however, able to glean a list of failing distros from the top of the CPAN river (though listed here in AUTHOR/distro order):Analysis
Caveats: I have not thoroughly analyzed the reasons for the breakage on a distro-by-distro basis. I suspect that most are due to "apostrophe in name removal" and a smaller number are due to given/when/switch/smartmatch. Some of these distros could have broken in the past month even before the "apostrophe" changes were applied to blead.
Nonetheless, that's a lot of patching and CPAN-releasing to be done. Some of the distros listed there have been mainstays in production for more than 25 years. And trying to conduct two major code removals in one production cycle -- not to mention in a single monthly development cycle -- is a recipe for a lot of resentment directed toward the Porters. Yes, there have been times when we made changes which we knew would generate "a lot" of CPAN breakage (say, up to 100 distros) and we organized to quickly submit patches upstream. But here we have breakage of over 150 distros -- and that's just at the top of the CPAN river and from a presumably quite diligent subset of all CPAN authors.
Suggestions
Delay the perl-5.41.3 release scheduled for Tuesday, August 20 until we have a more thorough understanding of the scope of the breakage, have come to a consensus as to how to proceed, and have a plan to communicate with affected CPAN authors.
Consider reverting the commits associated with one or the other or both of the two removal projects. Complicating factor: Some CPAN authors have already begun to issue new release to deal with the breakage, and some of those distros that ship with core have already been synched into blead. (I have a branch which can serve as a proof-of-concept for reversion of the "apostrophe" problem.)
The text was updated successfully, but these errors were encountered: