By Shlomi Fish

Most people who are actively developing using Perl are familiar with
sites for searching CPAN (the Comprehensive Perl Archive Network)
such as search.cpan.org
and kobesearch.cpan.org.
These sites provide a simple search bar where users can search for keywords
or key phrases, and find a list of results. These sites also feature
pages for the various CPAN distributions, the various authors, and the
individual pages of documentation inside the modules.

Recently, Andy Lester started the
“Rethinking
CPAN” mailing list
and wrote a
Perlbuzz post titled “Rethinking the interface to CPAN”
, where he gave
the case that the current resources may be inadequate for the process
of selecting a module on CPAN. For a long time, there was an intermittent
discussion and some brain-storming, but very little code (if any) has been
written. This has all changed with
CPANHQ.

So what is CPANHQ? As documented in
the first
and only wiki page it has so far
(which I wrote a few days ago),
“CPANHQ aims to be a community-driven, meta-data-enhanced alternative to
such sites as http://search.cpan.org/
and http://kobesearch.cpan.org/.
Currently, the functionality is very basic, but we have great ambitions.”

I learned about CPANHQ by overhearing a conversation on Freenode’s #perl
channel. I joined the effort, and made several enhancements to the
Catalyst and
DBIx-Class-based
code. The functionality is still very basic.

Some of the plans and ideas we have for CPANHQ, which may be translated into
code in the future are:

  1. The code is and will remain open-source, which makes it easy for people to
    contribute to.

  2. We plan to have most of the current features of search.cpan.org and
    kobesearch.cpan.org including pages for authors, distributions, and individual
    modules and their documentation.

  3. CPANHQ was already enhanced with some jQuery
    and jQuery UI JavaScript
    goodness, and we plan to add more of it to make the user experience better.

  4. The site aims to be more integrated than the many separate CPAN-related
    sites today: search.cpan.org, CPAN Forum, AnnoCPAN, CPAN Ratings, CPANTS,
    CPAN Dependencies, etc. By putting everything under one roof, we can provide
    a better user experience than the many sites with very loose integration.

  5. We plan to enhance the site based on meta-data as provided by both the module
    authors (in the META.yml file and the users of the site.

    For example, we have already added support for the META.yml’s
    keywords
    which allow authors to tag modules, and we plan to support
    user-tags too.

  6. CPANHQ will be very community-driven. People would be able to open user
    accounts there, which will allow them to contribute content to the site,
    such as tags/labels, comments, wiki pages, chatter, etc.

The CPANHQ wiki page
contains more ideas and insights. Like I said, the current functionality is
incredibly basic, but we hope that with enough help, time and dedication,
we can create an attractive and engaging interface to CPAN, to make
finding a module on CPAN faster, easier and more fun.

In the meantime, you can look at the
screenshots
we have of the interface so far, or clone the github repositories,
and set up a local web-interface.


Shlomi Fish has been writing using Perl, about Perl and for Perl, since 1996,
when he started working for a web-design shop, and discovered Perl and UNIX,
which he’s been in love with ever since. He initiated and is maintaining
many CPAN modules and
contributed to many other Perl and non-Perl related projects.