The Corporate CPAN

I have not researched it yet so I might be banging on an open gate or I might be staring out a blind window.

Anyway.

I'd like to have an integrated solution of setting up a corporate PAUSE and CPAN environment. It should be as easy as setting up a Subversion server probably meaning that all the pieces should be distributed by the downstream distributors. (Debian, Fedora, FreeBSD etc...)

Actually I think most of the pieces are out there on CPAN but I have never attempted to set it up as it still seems to be a lot of work.

The problem is that I am doing short-term consulting works now. So every time I would like to have it I don't have time to mess with this. Then when I finished at the client I have other interesting projects, (you know Padre, the Perl IDE :-) and this one fades away.

I'd like to be able to setup a local PAUSE server branded to the company, let the employees sign up - or better yet, connect it to the corporate authentication system[1] - and let them upload packages.

The packages should be indexed - making sure they don't interfere with any other local package or real CPAN package. This could include a check that every module is within the MyCorporate:: namespace.

Then it should build the local CPAN index table which probably includes the real CPAN and the injected local modules either using a local mirror of a mini CPAN or just having the local files and assuming the users will include both the local server and an external CPAN mirror in their configuration.

The package should also provide search web site that can include either only the local packages or even those that are on the public CPAN. This site should also show the pod documentation in a nice format.

If that's there then I'd like to be able to easily setup a local-cpan-smoker to smoke test the newly uploaded local modules and report them to the local-CPAN-Testers database.

That in turn will have the the new CPAN-testers GUI for the local packages, along with the localized version of CPAN Dependencies and any number of our other tools around CPAN.

I know I would like to have this but I also know I have too much on my plate currently. Maybe this blog entry will inspire someone. It would make a very nice lightning talk on YAPC::EU too to show this working...

See the followup: The Corporate CPAN II

[1] The corporate authentication system could be the passwd file of the unix this is running on or the LDAP server as provided by Active Directory or probably other systems as well. [2] Some relevant modules: CPAN::Inject, CPAN::Mini::Inject, CPAN::Mini, CPAN::Search::Lite, CPAN::Mini::Webserver