Filtering CPAN results by release date

When is the last time you used a CPAN distribution whose last release date was more than five years ago? I don't mean just in hacking around or for research purposes. I'm talking about something that mattered, that lived somewhere other than your development machine and could be seen/used by other people. Even if you have an answer for me, it's certainly going to be the single exception to a vastly superior rule, no?

For the vast majority of my searches, I really couldn't give a fluff about anything last released in 2007 or earlier. I'm not advocating removal or anything (or am I?) but the language and its developers move on. Shouldn't CPAN?

I can’t be the only one to think that it would be a HUGE and immediate benefit to every single developer in the Perl community (new or ninja) to be able to filter any CPAN search based on the latest release date of a distribution (or the parent distribution in the case of a module). Am I crazy? Why hasn't this been done?

If it hasn't and someone doesn't do it before I'm finished with my current project, I'm going to sit down and see about finally figuring out the MetaCPAN API. It looks incredibly powerful (certainly powerful enough to handle something like this) but I have a limited space in my brain reserved for search syntaxes and that's all used up by perlre and Google.

Oh to be able to use perl regular expressions and Google search operators into MetaCPAN's search box... Now there's a search engine I'd like to use...

name:({Class Package Module Object} -^(Devel|Acme))        \
nsexclude:{Devel Acme}                                     \
distupdate:"after 2009"                                    \
abstract:(accessor mutator data config)                    \
-cpanauthor:billg                                          \
-depends:{M(o|oo|ouse|oose) Catalyst Dancer Mojolicious}

9 Comments

I'm all for adding the date filter, but CPAN modules differ in their bitrotting properties. I have no problems using old modules if they are, for example, algorithm-oriented and the algorithms are still current. For example, except for dzilification, I haven't touched my Lingua::ID::{Nums2Words,Words2Nums} since 1999 and it still works fine.

I really couldn’t give a fluff about anything last released in 2007 or earlier.

Your loss. :-)

I've been trying to find MJD's classic comment about "dead" vs "finished", is someone's memory or google-foo better than mine?

Yes, that’s it. It’s what I was thinking of when I wrote my comment, too.

But note that the module to which MJD refers (Text::Template) has still seen a release in the past 5 years.

Even if it is "finished" feature-wise, it's rare for a module that's actually being used by people to not need a release for a whole five year period. Downstream dependencies change, Perl changes; these changes can introduce bugs, and also opportunities for improvements.

Old modules, even without code changes, would deserve a new release to get proper metadata (META.yml/META.json).

I have more fear in CPAN authors that ever published a single module and disappeared with no further updates.

I was going to post a link to this, but you beat me to it. That talk mentions several things that are increasingly wrong with Perl.

metacpan uses ElasticSearch which uses Lucene.

So https://metacpan.org/search?q=template+file.date%3A%5B2012+TO+NOW%5D just works. See http://lucene.apache.org/core/oldversioneddocs/versions/291/queryparsersyntax.html for more and http://api.metacpan.org/file/_mapping for available fields.

Leave a comment

About Jay Allen

user-pic Long-time perl and Movable Type developer. Principal of Endevver (http://endevver.com). Former MT Product Manager at Six Apart. Co-founder and Board Member of the Open Melody Software Group (http://openmelody.org)