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.

Popular ebooks on perlybook.org in week 1/2013

Here are the most popular ebooks from Dec 28 2012 to Jan 3 2013:

Release
  1. DBI
  2. Bread-Board
  3. Test-Simple

deb.perl.it - bridging CPAN and Debian → step1

After more then a year of silence I've managed to resurrect the Debian::Apt::PM and new Perl indexes are available for both i386 and amd64 platforms.

For now the web site can be used to find out if a Perl module is packaged for Debian with which version or not at all. Ex.:

cpan-debian-CPAN-pm.png
http://deb.perl.it/debian/cpan-deb/#q=CPAN

In the future I can add Ubuntu repositories too, but those are quite huge to process.

Greetings to Perl - Italy and big thank you for providing hostname for this project!

(cross-posted)

Announcing Marpa's Scanless interface

[ This is cross-posted from the new home of the Ocean of Awareness blog. ]

Marpa::R2's Scanless interface is now out of beta and available in full release on CPAN. This interface allows Marpa to be used without the need to create a separate lexer (scanner), and increases Marpa's level of "whipitupitude". Here's what a simple calculator looks like in the Scanless interface:

:start ::= Script
Script ::= Expression+ separator => comma action => do_script
comma ~ [,]
Expression ::=
    Number
    | '(' Expression ')' action => do_parens assoc => group
   || Expression '**' Expression action => do_pow assoc => right
   || Expression '*' Expression action => do_multiply
    | Expression '/' Expression action => do_divide
   || Expression '+' Expression action => do_add
    | Expression '-' Expression action => do_subtract
Number ~ [\d]+
 
:discard ~ whitespace
whitespace ~ [\s]+
# allow comments
:discard ~ <hash comment>
<hash comment> ~ <terminated hash comment> | <unterminated
   final hash comment>
<terminated hash comment> ~ '#' <hash comment body> <vertical space char>
<unterminated final hash comment> ~ '#' <hash comment body>
<hash comment body> ~ <hash comment char>*
<vertical space char> ~ [\x{A}\x{B}\x{C}\x{D}\x{2028}\x{2029}]
<hash comment char> ~ [^\x{A}\x{B}\x{C}\x{D}\x{2028}\x{2029}]

50% of the new CPAN uploads lack a repository link

I just checked the 1000 most recent CPAN uploads. 504 of them did not have a link to the repository of their source code. I was quite surprised by this. After all we are talking about open source code where having a link to a public version contol system can increase cooperation.

So I put together an article on how to add the repository link to the META files. It is very simple in all the 4 major packaging systems.

I hope this article helps, and more CPAN authors will include this information in their distributions.

(I know that META CPAN just moved, and it might not have been fully updated, but I also checked the number of packages without a license field and it was 169 out of tha 1,000 quite similar to the number I saw a week ago when I wrote about the CPAN uploads without license in the META files. So I think this is quite close to the correct number.)

Swiss Perl Workshop 1

We are happy to announce Swiss Perl Workshop 1!

The event happens on Friday, 22 March 2013. In Switzerland.

It is a one day workshop, starting approximately at 10 am and ending roughly at 5 pm, followed by a social event.

If you are in the area, please reserve the date and stay tuned for updates. :-)

Perl 5 Porters Weekly: December 24-December 31, 2012

Welcome to Perl 5 Porters Weekly, a summary of the email traffic of the perl5-porters email list. Usually I go Monday to Sunday, but just to keep things tidy, we'll make this the final summary of 2012 by including the 31st.

Topics for this week include:

  • cPanel version of "Storable 2.39_01" breaks backwards compatibility
  • Please separate fixes to spelling from changes to code layout in patches
  • Term::ANSIColor 4.01 released

w00t! First CPAN upload of 2013!

According to metacpan.org, MooX-ClassAttribute-0.001 was the first upload of 2013! Yay!

A self-parsing and self-lexing grammar

[ This is cross-posted from the new home of the Ocean of Awareness blog. ]

In a previous post, I showed a self-parsing grammar, written in Marpa's new BNF interface. That grammar was in a tradition going back to the 70's. Following the tradition, I cheated a bit. That grammar required, but did not include, a lexer to make a prepass over its input.

This post contains a self-parsing and self-lexing grammar, the one for Marpa's forthcoming Scanless interface. This grammar is about as self-contained as a grammar can get, short of being encoded into a Universal Turing machine.

Many readers will prefer to be introduced to the Scanless interface by way of a simpler example, but based on the response to the previous post I know there are others who share my fascination with self-description and self-exemplification. And there is something to be said for reading an example that is a final authority on itself.

MetaCPAN is Moving Today (Dec 31, 2012)

This is just a quick note to let everyone know that MetaCPAN is moving to a new hosting sponsor today (Dec 31st). Our old hosting relationship with speedchilli.com has unfortunately come to an end. We've been quite grateful for and more than satisfied with their sponsorship over the last 1.5 years or so. Having the hardware and bandwidth which speedchilli freely made available to us was instrumental in the early days. (Initially everything was running off a tiny instance in the Rackspace cloud. It wasn't much, but it was all we could afford after passing the hat around). Having speedchill sponsor us allowed everyone who contributes to MetaCPAN create something truly special.

Perl 5 Porters Weekly: December 17-December 23, 2012

Happy New Year! Welcome to Perl 5 Porters Weekly, a summary of the email traffic of the perl5-porters email list.

Topics this week include:

  • perl 5.17.7 is now available
  • Solaris smoke testers wanted
  • Parrot 4.11.0 "All together - Happy Birthday Lovebird" Released!
  • successful s///e clobbers $! on MSWin32
  • JROBINSON grant report, #13
  • POSIX wrapper for strptime()
  • Is this a known unicode bug in 5.16.2?

YAPC::Europe 2013 in Kiev, week minus 32. First results

Dear readers,

This Sunday post is the last one before the new 2013 year begins. So, a beautiful chance to have an opportunity to list some results that we achieved during the year and share some plans for the next one.

Graphing CPAN author's number of distributions over time

Script: graph-cpan-dists-over-time

One glaring deficiency: does not take PAUSE deletions into account (is there a MetaCPAN API for this?) Thus, the number of actual dists on the graph is monotonically increasing and might be higher than the number of actual dists on CPAN.

Generated graph is still rough and number of authors is limited at three because I'm too lazy to tweak the sample script from Chart::Lines.

Sample graph:
.

Enjoy and feel free to improve on it.

Test

tesing

17.4% of CPAN uploads have no license in the META files

I just checked the 1000 most recent CPAN uploads and 174 of them did not have a license.That's 17.4%.

According to the history of the metayml_has_license metric of CPANTS, there has been a constant improvement since 2003, but I feel it is still too high.
Especially if you take in account how easy it is to add license to the META files.

What about making a New Year's resolution to add the license key to each one of your modules?

Moving my Catalyst Apps from Apache/FCGI to Nginx/Starman

Recently I had to move all my projects to a new server and decided to give Nginx and Starman a chance.

The Nginx config is rather simple.

my Catalyst Application is located at /var/www/MyApp

The indirect benefits for Perl on LinkedIn

In response to one of my posts about the Advanced Perl Users Group, @belden asked me how I find LinkedIn useful:

belden-twitter.png

A better LinkedIn makes the world a slightly better place for me. Our ill-defined, disparate, and disperse community has many parts that can be improved and I spend a couple of minutes each morning moderating some LinkedIn stuff. Other people help out in other sites. There are a couple of things that I'd like to encourage.

I want to recruiters to see that CPAN Developer's Group badge and ask candidates why they don't have it. Even if that means the person only ever uploaded one module, that means they've gone through the process once, which I think is the biggest obstacle to sharing. Once they get over that hump, even if just to get the badge, they are a slightly better Perler. And, it's all about a long journey where each step makes them slightly better. If they are hiring better Perlers, I'm dealing with better Perlers when I show up.

Zotero/Perl integration

Zotero is in my opinion the best solution to citation management available. It's a firefox/xulrunner based solution for collecting and maintaining bibliographic data and it's associated full text. Zotero has a cloud based API but also an internal (largely undocumented) Javascript API. I find the JS API much more interesting than the cloud API due to having total control over my data (and works offline etc etc...).

Two frustrations I've had with a lack of good alternative to the msword integration code, and problems with interacting with the internals of a running firefox/xulrunner. I finally cracked open mozrepl, and the cpan module MozRepl and prototyped a bidirectional bridge between Zotero and perl.

The code is here, and should be a useful start for anyone who wants to do any bibliographic data mangling in perl. I'm not going to publish it to CPAN until I work out how to test it properly.

Refactoring When Tests Are Failing

Today I'm working on some code. That's not surprising. It's also not surprising that the person I'm working on the code with is on holiday until the new year starts. Before he left, he made some significant changes to optimize our code, but for one subsystem he didn't have the time to apply his changes. This means that we have 7 tests failing out of 397. In a quick check we found there were plenty of conflicts between his code and mine and my work was generating even more conflicts. This meant we had two choices for how to deal with this while he was gone:

  1. I could continue my work with passing tests and deal with even more conflicts when he returns
  2. I could merge his code, deal with some failing tests. get rid of the conflicts and have a much faster code base

Personal end-of-year report for 2012

Previous end-of-year report for 2011. Previous quarterly report: Apr-Jul 2012.

2012 is my most productive year yet in my "CPAN career": 943 releases (compared to 495 in 2011). That's about 2.5 releases per day! So far I have about 215 distributions under my account, almost half of them (96) are new modules in 2012. The reasons the number of distributions is high include: Perinci modules family being split into many distributions (and then some, to avoid recursive dependencies problems that I seem to keep bumping into), the various Task distributions, and also the fact that releasing CPAN modules is so darn fun! A little too much fun, I'm afraid.

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.