cpan workshop, chicago 2014

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

Upload: brian-d-foy

Post on 08-Jun-2015

954 views

Category:

Technology


0 download

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

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]