Skip to content
This repository has been archived by the owner. It is now read-only.
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
bin
 
 
etc
 
 
 
 
 
 
t
 
 
 
 
var
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.pod

CPAN Grep

This is the code behind http://grep.cpan.me. Unless you want to add something you probably want to use the site, not try and install this ;-)

The default development configuration will index a sample CPAN from fakecpan. Indexing the whole CPAN doesn't take long, although you'll need around 8GB of RAM spare to get a decent level of performance.

Quick start

For a very quick development setup you should be able to:

  • Ensure you have Perl 5.14 or later

  • Install redis

    You just need a redis-server binary around, run-test below will start it for you.

  • Run the following:

    cpanm --installdeps .
    tools/run-test
  • Visit http://localhost:5000

  • Hack!

    Starman will pick up changes automatically, so web frontend changes should be picked up right away.

Components

If you want to work on the indexing or other aspects you might need to run these, to start with run-test may well be enough though.

  • cpangrep-index

    Run this to start with:

    bin/cpangrep-index [--cpan_dir /path/to/cpan --slab_dir /data/cpangrep/extract]

    If you omit the --cpan_dir and --slab_dir options you'll get the fakecpan configured in etc/config and shipped with this.

  • WWW::CPANGrep

    The web frontend. Run with:

    starman -Ilib lib/WWW/CPANGrep.pm

    (or other plack server.)

    There's also a version that wraps this in Plack::Debug in debug.psgi.

  • cpangrep-matcher

    Backend workers that do the matching, based on a redis queue. This should be running along with the web frontend, all the time:

    bin/cpangrep-matcher
  • Redis

    A Redis server (or several for the live version) are used for queuing jobs and also resolving matches.

Deployment

Currently the "live" tag refers to the version that is live. To push a new version:

git tag -f live
git push --tags

(See the handler for /githook for how this works.)

About

Search code on CPAN with Regexps. No longer maintained, I suggest using http://grep.metacpan.org/ instead.

Resources

Packages

No packages published
You can’t perform that action at this time.