CPAN Workshop, Chicago 2014

33
Uploading Your First Module to CPAN brian d foy The Perl Review August 2014, Chicago.pm

description

Upload your first module to the Comprehensive Perl Archive Network, interact with it in Github, and send and merge pull requests from co-maintainers.

Transcript of CPAN Workshop, Chicago 2014

Page 1: CPAN Workshop, Chicago 2014

Uploading Your First Module

to CPANbrian d foy!

The Perl Review!August 2014, Chicago.pm

Page 2: CPAN Workshop, Chicago 2014

Tonight’s Goals• Create a PAUSE account!

• Create a basic module!

• Set up a git repo!

• Create a Github account!

• Upload a module!

• Send a pull request!

• Merge a pull request

Page 3: CPAN Workshop, Chicago 2014

PAUSE

Page 4: CPAN Workshop, Chicago 2014

PAUSE

• You upload through PAUSE!http://pause.perl.org!

• The Perl Authors Upload Server!

• This is a stepping stone to CPAN

Page 5: CPAN Workshop, Chicago 2014

Indexing

• PAUSE indexes and creates data files for the CPAN clients!

• Only the latest distributions get into it!

• People have permissions for namespaces

Page 6: CPAN Workshop, Chicago 2014

Get PAUSE Account

https://pause.perl.org/pause/query?ACTION=request_id

Page 7: CPAN Workshop, Chicago 2014

Choose a module name

https://pause.perl.org/pause/query?ACTION=pause_namingmodules

Page 8: CPAN Workshop, Chicago 2014

Acme::MyFirstModule::PAUSEID

Page 9: CPAN Workshop, Chicago 2014

Permissions• You can upload a namespace

someone else already uses!

• But PAUSE will ignore it!

• A good name goes a long way!

• We have general advice on names!https://pause.perl.org/pause/query?ACTION=pause_namingmodules

Page 10: CPAN Workshop, Chicago 2014

Create

Page 11: CPAN Workshop, Chicago 2014

Create the distro

• There are modules that can help you!

• Module::Starter!

• Distribution::Cooker!

• h2xs (comes with Perl)!

• many others

Page 12: CPAN Workshop, Chicago 2014

Module::Starter

Page 13: CPAN Workshop, Chicago 2014

25,000 Examples

• Look at other distributions as examples!

• See how other people do it!

• Ask them questions

Page 14: CPAN Workshop, Chicago 2014

Git

Page 15: CPAN Workshop, Chicago 2014

Github

Page 16: CPAN Workshop, Chicago 2014
Page 17: CPAN Workshop, Chicago 2014
Page 18: CPAN Workshop, Chicago 2014
Page 19: CPAN Workshop, Chicago 2014
Page 20: CPAN Workshop, Chicago 2014

Upload

Page 21: CPAN Workshop, Chicago 2014

Upload early & often

• You don’t have to be perfect!

• … or even good!

• Other people can help as soon as possible!

• CPAN Testers can send you feedback

Page 22: CPAN Workshop, Chicago 2014

Upload

https://pause.perl.org/pause/authenquery?ACTION=add_uri

Page 23: CPAN Workshop, Chicago 2014

Now, break it

• Insert a mistake in your module!

• Ensure the tests pass!

• Bump the version number!

• Reupload!

• Push changes up to Github

Page 24: CPAN Workshop, Chicago 2014

Pull request

Page 25: CPAN Workshop, Chicago 2014

Fork a repo

Page 26: CPAN Workshop, Chicago 2014

Clone it

Page 27: CPAN Workshop, Chicago 2014

Send Pull Request

Page 28: CPAN Workshop, Chicago 2014

Check sites

Page 29: CPAN Workshop, Chicago 2014

CPAN Search

Page 30: CPAN Workshop, Chicago 2014

MetaCPAN

Page 31: CPAN Workshop, Chicago 2014

Lots more

• PAUSE lets you add co-maintainers!

• You can take over existing modules!

• You can help with other people’s modules

Page 32: CPAN Workshop, Chicago 2014

Publicize your module

• Don’t be shy!

• Write something on blogs.perl.org!

• Tweet it, plus it, facebook it!

• Give a lightning talk

Page 33: CPAN Workshop, Chicago 2014

Getting help

• For help with PAUSE issues, write to [email protected]!

• One of the PAUSE volunteer admins can help you!

• For general module questions, you might try [email protected]!

• For CPAN Search issues, try [email protected]