Building a Catalyst extension for CPAN

Here are the needed steps to get your extension to Catalyst to CPAN so that the world can use it and contribute to it.

Check if it already exists

Use and Google to find out if it already exists or can be implemented with an adaptor class.

Create your module(s)

Create the actual modules. This is the creative part, rest is just work.

Ask for comments on #catalyst IRC channel

Not a required step, but it is a good idea to ask for comments from other developers.

Join #catalyst on

Ask for git access

Ask for git access on #catalyst-dev IRC channel. You should have your ssh public key ready. Ask for a new repository, and specify a one-line description of your module.

Take CatalystX::Starter for base

CatalystX::Starter will give you a reasonable template distribution you can add to git. You then just add lib/ and write the tests. It even already comes with a skeleton test app!

# to install
cpan CatalystX::Starter
catalystx-starter 'Catalyst::Controller::MYMODULE'
cd Catalyst-Controller-MYMODULE
git init
mv gitignore .gitignore
git add .gitignore *
git commit -m "From CatalystX::Starter."

Setup the git remote origin and do the first push

git remote add origin ssh://
git push origin master
# The following 2 lines are so that you can simply "git push" and "git pull"
#  - removing this directory and doing a new clone would do the same
git config branch.master.remote origin
git config branch.master.merge refs/heads/master

Get a PAUSE account

Go to and request an account. It's free of charge.

Prepare your module for distribution

Create tests, documentation. Run "perl Makefile.PL" to create a Makefile. Then run "make", "make test", "make manifest" and "make dist" to make a distribution package.

Upload (finally!)

Upload the module using PAUSE.

My tags:
Popular tags:
Powered by Catalyst
Powered by MojoMojo Hosted by Shadowcat - Managed by Nordaaker