13% of CPAN distributions don't have a test report on Windows
Barbie recently created a new page listing all the CPAN distributions without a single Test report.
There are 257 distributions with not report at all and there are 3,487 distributions without any report on Windows (Win32).
Given that currently there are 26,547 distributions on CPAN that represents 13% of all the distributions.
Not bad.
Especially if we compare with some of the other platforms:
GNU/Linux 483
Mac OS X 2,662
NetBSD 2,962
Windows (Win32) 3,487
Windows (Cygwin) 9,983
...
AIX 25,500
...
On those pages, there are a couple of possible reasons why these distributions have no reporst, but I wonder, maybe we could track down a small number of distributions that are the dependencies of most of these modules causing the lack of test. Then those could be either fixed or avoided depending on the situation.
I've already written about the comparative lack of test reports from Windows, as compared other platforms. I'm still not really sure why this is.
http://leonerds-code.blogspot.co.uk/2012/07/dear-perl-users-on-windows.html
@PEVANS, Thanks for that link.
In the last 4 weeks I have been running CPAN smoking using CPAN::Reporter::Smoker on two copies of Strawberry Perl on a Windows XP running in a VirtualBox.
Every few hours I notice at least one of them is stuck. Then I spend a 5-20 minutes checking which distribution caused the problem and if the problem happens on both versions of Perl. Sometimes I even try to figure out which test causes the problem. In most of the cases I report it via RT.
In several cases I got quick and positive response from the authors. Of course in some of those cases the reaction was to declare Windows to be unsupported. I think even that is better than getting stuck and not understanding why. (I just wish there was a field in the META files declaring that the distribution does not support Windows.)
I'd be happy to run all you modules through the smoker now, but I am not sure if it can be done easily using CPAN::Reporter::Smoker.
So I tried a few from that noreports list:
AnyEvent::TermKey depends on ExtUtils::PkgConfig which cannot be installed as I don't have pkg-config.
I see you have a bunch of IO-Async-* distributions. I had that whole names space disabled. Probably by mistake though now I tried to install IO::Async now and it got stuck. I changed my distroprefs now to exclude only IO-Async-0 but of course all the distributions depending on it will be excluded. Report sent to RT.
Please let me know when you have a newer version on CPAN that you think solved the issues on Windows or that you want me to test something to narrow down the problem. I am willing to do some manual work in the hope that this can be fixed. (Even though I don't need that module and I am far from being a Window expert. I only smoke on it.)
IO::Termios depends on IO::Tty which cannot be installed on Windows.
Net::Async::IRC also depends on IO::Async. I assume all the Net::Async::* modules depend on it so I did not try each one of them.
Good luck to us :)
I run an ActivePerl smoker and have done so for months now. It ---> never gets stuck
"Smoker: Finished all available dists. Sleeping for 458 seconds."
So, if 13% of all dists don't have a report, then that's because they are either entirely unsuited to Windows, blocked by my disabled.yml [2], have dependencies that don't work on windows, or are so badly written they manage to not even get a proper test report out.
[1] In case this wasn't obvious from the sentence itself: Stop complaining while smoking on Strawberry; or debug Strawberry, since the getting stuck has nothing to do with Windows itself.
[2] https://github.com/wchristian/perl16_smoker/blob/master/cpan/prefs/disabled.yml
Oh, ffs, blogs.perl.org, don't interpret my comment as HTML. The first sentence in the previous post ends with me pointing out that my smoker has actually run through CPAN multiple times now without getting stuck and is displaying this right now:
"Smoker: Finished all available dists. Sleeping for 458 seconds."
Finding the ones that block would be the best way to start bugging Strawberry, though. I'm seeing the same behavior.
Then it comes to Windows I prefer to rely on code.activestate.com/ppm/. I had problem with my package hanging on Windows before, and it can happen again in the future. If it will happen, I won't get any reports from cpantesters, so won't fix the problem. ActiveState usually tries to build the package in a day or two after upload, so I just have to go to their site and check results. They are also using some weird compiler, so it helps me to improve portability of the C code.
I just set up two Windows 7 smokers tonight that will be smoking when I don't need them for something else. Currently, testing on 5.12.1 and 5.16.2 but I'll be replacing 5.12.1 with 5.14.3 soon.