Download - CPAN Workshop, Chicago 2014
![Page 1: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/1.jpg)
Uploading Your First Module
to CPANbrian d foy!
The Perl Review!August 2014, Chicago.pm
![Page 2: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/2.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/3.jpg)
PAUSE
![Page 4: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/4.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/5.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/6.jpg)
Get PAUSE Account
https://pause.perl.org/pause/query?ACTION=request_id
![Page 7: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/7.jpg)
Choose a module name
https://pause.perl.org/pause/query?ACTION=pause_namingmodules
![Page 8: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/8.jpg)
Acme::MyFirstModule::PAUSEID
![Page 9: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/9.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/10.jpg)
Create
![Page 11: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/11.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/12.jpg)
Module::Starter
![Page 13: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/13.jpg)
25,000 Examples
• Look at other distributions as examples!
• See how other people do it!
• Ask them questions
![Page 14: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/14.jpg)
Git
![Page 15: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/15.jpg)
Github
![Page 16: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/16.jpg)
![Page 17: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/17.jpg)
![Page 18: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/18.jpg)
![Page 19: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/19.jpg)
![Page 20: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/20.jpg)
Upload
![Page 21: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/21.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/22.jpg)
Upload
https://pause.perl.org/pause/authenquery?ACTION=add_uri
![Page 23: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/23.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/24.jpg)
Pull request
![Page 25: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/25.jpg)
Fork a repo
![Page 26: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/26.jpg)
Clone it
![Page 27: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/27.jpg)
Send Pull Request
![Page 28: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/28.jpg)
Check sites
![Page 29: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/29.jpg)
CPAN Search
![Page 30: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/30.jpg)
MetaCPAN
![Page 31: CPAN Workshop, Chicago 2014](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/31.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/32.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022052506/55757b0cd8b42adb7e8b4bca/html5/thumbnails/33.jpg)
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]