SlideShare a Scribd company logo
Intro / Preface
● Augustina Ragwitz
– Perl Developer since 2007
– First YAPC in 2012 (Madison)
● Currently at MediaMath in NYC
(we're hiring)
● auggy@cpan.org
irc.perl.org: auggy
freenode irc: mmmpork
twitter: @mmmpork
Why Am I Giving This Talk?
● I just made my first contributions
● Share what I've learned
● Encourage y'all to contribute!
Perl Wants You!
Open Source Software is Free!
● But there is a cost...
Open Source Software is like
Public Radio
● Ok, more like Public Access TV...
Pay your dues!
Contribute!
● Or just do it cuz it's fun
Start Small
● GOAL: Get familiar with the patching
process first!
● Small code patches
● Documentation
● Unit Tests
Remember...
● Working in a new code base requires
context!
● Don't be intimidated!
Talk to the Community!
● A lot of communication happens on IRC
● If you're not familiar with IRC →
● Server is irc.perl.org
● Check documentation for irc channel info
● Or ask in #perl-help or #p5p
Where can I contribute to Perl?
● Any module on CPAN is fair game –
http://www.metacpan.org
● Perl core is managed through P5P (Perl 5
Porters)
Perl Core (Perl 5 Porters)
● http://dev.perl.org
● p5p mailing list
– perl5-porters-subscribe@perl.org
● irc channel: #p5p on irc.perl.org
Get your name in it!
● Pumpkings – a rotating group of individuals
responsible for cobbling together changes
nd releasing new Perl versions
● Patches go into new versions of Perl
● Submit a patch and get immortalized!
– Your name goes into the release doc
Wow that sounds cool!
Sooo, now what?
● Look for things that are easy to contribute!
● Easy = small fixes for learning the patching
process
Easy Contributions
● Perl Core != C programming
● Documentation
● Patch supporting scripts
● Improve unit test coverage
● Some bugs are tagged in RT
https://rt.perl.org/rt3/Public/Bug/Display.html?id=116469
● Check the todo list:
http://perl5.git.perl.org/perl.git/blob/HEAD:/Porting/todo.pod
How to contribute to Perl Core
● Pretty well documented here -
– http://perldoc.perl.org/perlhack.html
● Perlbug + tips
– http://perldoc.perl.org/perlbug.html
● And here's a short walkthrough
CPAN
● The Comprehensive Perl Archive Network
● AKA the place where modules live
● Basically, an index that maps a module
name to a file archive location
● http://www.metacpan.org - provides
additional metadata not found in cpan.org
PAUSE
● Perl Authors Upload Server
● Where the file archives live (that CPAN
points to)
● Anyone can get an account
– Only really need one to upload an archive
● http://pause.perl.org
CPAN Testers
● Goal: Test CPAN modules with as many
versions and configurations of Perl as
possible on as many platforms as possible
● http://www.cpantesters.org
● http://stats.cpantesters.org
What should I contribute to CPAN?
● File a bug
● Improve documentation on a module you
struggled to use
– Especially if you got help from the author!
● If you had to make local changes to make it
work, submit the patch!
Alright, that sounds good!
How do I get started?
Disclaimer
● All processes demonstrated here are my
preference
– TIMTOWTDI FTW!
● Module maintainers will have their own
preferences.
● Check with the maintainer before following
these steps to submit a patch.
Submit a Patch to CPAN
● You need the following:
– The location of the source code repository
– Where the author wants patches submitted
Find the Repo
● Some modules on Metacpan have
repository info
● Check Module documentation
● Git::CPAN::Patch
● Download the source tarball (last resort)
Where to Submit the Patch
● GitHub, BitBucket, SourceForge... if the
author has specified the bugtracker
● Otherwise, use RT
RT
● http://rt.cpan.org
● Send email to bug-acme-
auggy@rt.cpan.org
● Use RT if:
– The author says to, or
– You can't find any bugtracker info in the
module
● You can attach your patch to the RT!
GitHub
● http://github.com
● Pull request is probably sufficient for
submitting your patch
● Optional: Create an RT ticket
How do I write a patch that's likely
to get merged?
● Don't submit a large complex patch
● Each issue should be its own commit
● Each commit should have a clear commit
message
● Be consistent, stick to the author's style
● Update documentation when appropriate
● Write tests to support your changes
● Include a changelog entry
OK so how do I submit my patch!?
● Download the source code
● Make your changes
● Submit the code
What happens when I submit a
patch?
● If the author accepts your change, they
merge it into their repository and release
the code!
● If your change is rejected, the author will
comment on the pull request or the RT
ticket
– Don't give up!!
– Talk it out with the author
– Use the feedback to fix your patch
How do I know my patch was
submitted?
● RT responds with an email
– If you don't get an email, wait a couple of
days and resubmit
● GitHub shows your pull request
– If you don't hear anything, submit an RT
ticket
What if the author doesn't respond,
at all?
● Send email to modules@perl.org
– Use this resource after several attempts to
contact the author
– State a log of your attempts to contact the
author
– If the author is unresponsive, you could
end up being the maintainer
● Fork!
– This is Open Source after all...
Collaboration is fun!
● Fun to work on interesting things!
● Get others excited about your ideas... or
get excited about someone else's!
● Good feeling to help out others
● Learn new things about programming!
● Even people who aren't using Perl at work
contribute because it's FUN!
Q&A

More Related Content

PDF
Python debuggers slides
PDF
Go at Skroutz
PPTX
Taiko_Gauge_PPT
PDF
Behaviour Testing and Continuous Integration with Drupal
PDF
PDF
Idiomatic R for Rosetta Code (2013)
PDF
Hacktoberfest - An Open Source Story
PDF
Building Command Line Tools with Golang
Python debuggers slides
Go at Skroutz
Taiko_Gauge_PPT
Behaviour Testing and Continuous Integration with Drupal
Idiomatic R for Rosetta Code (2013)
Hacktoberfest - An Open Source Story
Building Command Line Tools with Golang

What's hot (20)

PDF
Porting 100k Lines of Code to TypeScript
PPTX
Proxying DBI with DBD::Gofer and App::Staticperl
PDF
From git to forge
PDF
Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020
PDF
Debugging (Django) application in PyCharm
PPTX
Developing Rich Internet Applications with Perl and JavaScript
PDF
Extract Method Refactoring Workshop (2016)
PDF
Coding Dojo: Mars Rover (2014)
PDF
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
PPTX
Integração Contínua com PHPCI
PDF
Git grep cpan
PDF
Improving your code design using Java
PDF
Jumping in Jakarta Open Source Project Everything nobody tells you
PDF
It is easy contributing to Open Source - ECLIPSE CON 2020
PDF
Coding Dojo: Bank OCR Outside-In (2015)
ODP
Besut Kode - Workshop 1
PPTX
First Pull Request - Sergio Ocon - ManageIQ Design Summit 2016
ODP
Greetings from SlackBuilds.org
PDF
Release & Iterate Faster: Stop Manual Testing
PDF
Software Craftsmanship Journeyman Tour (2013)
Porting 100k Lines of Code to TypeScript
Proxying DBI with DBD::Gofer and App::Staticperl
From git to forge
Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020
Debugging (Django) application in PyCharm
Developing Rich Internet Applications with Perl and JavaScript
Extract Method Refactoring Workshop (2016)
Coding Dojo: Mars Rover (2014)
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
Integração Contínua com PHPCI
Git grep cpan
Improving your code design using Java
Jumping in Jakarta Open Source Project Everything nobody tells you
It is easy contributing to Open Source - ECLIPSE CON 2020
Coding Dojo: Bank OCR Outside-In (2015)
Besut Kode - Workshop 1
First Pull Request - Sergio Ocon - ManageIQ Design Summit 2016
Greetings from SlackBuilds.org
Release & Iterate Faster: Stop Manual Testing
Software Craftsmanship Journeyman Tour (2013)
Ad

Viewers also liked (18)

PPT
Itinerari de la Natura: El Cap de l´Horta
DOCX
Viatge fí de_curs_-_coses_per_a_portar
DOC
Principles of management+lecture two
PPT
Lecture 5
PDF
Test tepsi
PPSX
BallrodPICTURES
PPT
John Williams: Miguel Baidal
DOC
Instruments electrónics samuel
DOC
Agenda 21 decàleg 2010
DOCX
Wedding schedule
PDF
ballrodBOOK
PPTX
RFID FMI Presentation Ognyan Angelov
PDF
Challenge.me
PPTX
NPMG Databases Presentation
PPT
Mvc training
PDF
Natura. Adrea H. Ceip Voramar
PDF
Manual eedp
PDF
Academic vocabulary in use- Cambridge
Itinerari de la Natura: El Cap de l´Horta
Viatge fí de_curs_-_coses_per_a_portar
Principles of management+lecture two
Lecture 5
Test tepsi
BallrodPICTURES
John Williams: Miguel Baidal
Instruments electrónics samuel
Agenda 21 decàleg 2010
Wedding schedule
ballrodBOOK
RFID FMI Presentation Ognyan Angelov
Challenge.me
NPMG Databases Presentation
Mvc training
Natura. Adrea H. Ceip Voramar
Manual eedp
Academic vocabulary in use- Cambridge
Ad

Similar to Perl wants you (20)

PDF
CPAN Workshop, Chicago 2014
ODP
Things I Learned From Having Users
ODP
30 Minutes To CPAN
PDF
Create and upload your first Perl module to CPAN
PDF
Modern Perl for the Unfrozen Paleolithic Perl Programmer
ODP
The Perl Community
PDF
PDF
PPTX
CPAN Curation
ODP
Perl - laziness, impatience, hubris, and one liners
PDF
What's new In Perl?
PDF
Authoring CPAN modules
PDF
What's new in Perl 5.12?
PDF
Perl 101
KEY
PDF
The_Perl_Review_0_6
PDF
The_Perl_Review_0_6
PDF
Introduction to writing readable and maintainable Perl
PDF
Introduction to Writing Readable and Maintainable Perl (YAPC::EU 2011 Version)
PDF
Continuing Evolution of Perl: Highlights of ActivePerl 5.14
CPAN Workshop, Chicago 2014
Things I Learned From Having Users
30 Minutes To CPAN
Create and upload your first Perl module to CPAN
Modern Perl for the Unfrozen Paleolithic Perl Programmer
The Perl Community
CPAN Curation
Perl - laziness, impatience, hubris, and one liners
What's new In Perl?
Authoring CPAN modules
What's new in Perl 5.12?
Perl 101
The_Perl_Review_0_6
The_Perl_Review_0_6
Introduction to writing readable and maintainable Perl
Introduction to Writing Readable and Maintainable Perl (YAPC::EU 2011 Version)
Continuing Evolution of Perl: Highlights of ActivePerl 5.14

Recently uploaded (20)

PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Approach and Philosophy of On baking technology
PPTX
A Presentation on Artificial Intelligence
PDF
Electronic commerce courselecture one. Pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Cloud computing and distributed systems.
PDF
Machine learning based COVID-19 study performance prediction
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Empathic Computing: Creating Shared Understanding
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Approach and Philosophy of On baking technology
A Presentation on Artificial Intelligence
Electronic commerce courselecture one. Pdf
Review of recent advances in non-invasive hemoglobin estimation
Chapter 3 Spatial Domain Image Processing.pdf
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
“AI and Expert System Decision Support & Business Intelligence Systems”
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Cloud computing and distributed systems.
Machine learning based COVID-19 study performance prediction
Spectral efficient network and resource selection model in 5G networks
The Rise and Fall of 3GPP – Time for a Sabbatical?
Mobile App Security Testing_ A Comprehensive Guide.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
CIFDAQ's Market Insight: SEC Turns Pro Crypto
The AUB Centre for AI in Media Proposal.docx
Empathic Computing: Creating Shared Understanding

Perl wants you

  • 1. Intro / Preface ● Augustina Ragwitz – Perl Developer since 2007 – First YAPC in 2012 (Madison) ● Currently at MediaMath in NYC (we're hiring) ● auggy@cpan.org irc.perl.org: auggy freenode irc: mmmpork twitter: @mmmpork
  • 2. Why Am I Giving This Talk? ● I just made my first contributions ● Share what I've learned ● Encourage y'all to contribute!
  • 4. Open Source Software is Free! ● But there is a cost...
  • 5. Open Source Software is like Public Radio ● Ok, more like Public Access TV...
  • 6. Pay your dues! Contribute! ● Or just do it cuz it's fun
  • 7. Start Small ● GOAL: Get familiar with the patching process first! ● Small code patches ● Documentation ● Unit Tests
  • 8. Remember... ● Working in a new code base requires context! ● Don't be intimidated!
  • 9. Talk to the Community! ● A lot of communication happens on IRC ● If you're not familiar with IRC → ● Server is irc.perl.org ● Check documentation for irc channel info ● Or ask in #perl-help or #p5p
  • 10. Where can I contribute to Perl? ● Any module on CPAN is fair game – http://www.metacpan.org ● Perl core is managed through P5P (Perl 5 Porters)
  • 11. Perl Core (Perl 5 Porters) ● http://dev.perl.org ● p5p mailing list – perl5-porters-subscribe@perl.org ● irc channel: #p5p on irc.perl.org
  • 12. Get your name in it! ● Pumpkings – a rotating group of individuals responsible for cobbling together changes nd releasing new Perl versions ● Patches go into new versions of Perl ● Submit a patch and get immortalized! – Your name goes into the release doc
  • 13. Wow that sounds cool! Sooo, now what? ● Look for things that are easy to contribute! ● Easy = small fixes for learning the patching process
  • 14. Easy Contributions ● Perl Core != C programming ● Documentation ● Patch supporting scripts ● Improve unit test coverage ● Some bugs are tagged in RT https://rt.perl.org/rt3/Public/Bug/Display.html?id=116469 ● Check the todo list: http://perl5.git.perl.org/perl.git/blob/HEAD:/Porting/todo.pod
  • 15. How to contribute to Perl Core ● Pretty well documented here - – http://perldoc.perl.org/perlhack.html ● Perlbug + tips – http://perldoc.perl.org/perlbug.html ● And here's a short walkthrough
  • 16. CPAN ● The Comprehensive Perl Archive Network ● AKA the place where modules live ● Basically, an index that maps a module name to a file archive location ● http://www.metacpan.org - provides additional metadata not found in cpan.org
  • 17. PAUSE ● Perl Authors Upload Server ● Where the file archives live (that CPAN points to) ● Anyone can get an account – Only really need one to upload an archive ● http://pause.perl.org
  • 18. CPAN Testers ● Goal: Test CPAN modules with as many versions and configurations of Perl as possible on as many platforms as possible ● http://www.cpantesters.org ● http://stats.cpantesters.org
  • 19. What should I contribute to CPAN? ● File a bug ● Improve documentation on a module you struggled to use – Especially if you got help from the author! ● If you had to make local changes to make it work, submit the patch!
  • 20. Alright, that sounds good! How do I get started?
  • 21. Disclaimer ● All processes demonstrated here are my preference – TIMTOWTDI FTW! ● Module maintainers will have their own preferences. ● Check with the maintainer before following these steps to submit a patch.
  • 22. Submit a Patch to CPAN ● You need the following: – The location of the source code repository – Where the author wants patches submitted
  • 23. Find the Repo ● Some modules on Metacpan have repository info ● Check Module documentation ● Git::CPAN::Patch ● Download the source tarball (last resort)
  • 24. Where to Submit the Patch ● GitHub, BitBucket, SourceForge... if the author has specified the bugtracker ● Otherwise, use RT
  • 25. RT ● http://rt.cpan.org ● Send email to bug-acme- auggy@rt.cpan.org ● Use RT if: – The author says to, or – You can't find any bugtracker info in the module ● You can attach your patch to the RT!
  • 26. GitHub ● http://github.com ● Pull request is probably sufficient for submitting your patch ● Optional: Create an RT ticket
  • 27. How do I write a patch that's likely to get merged? ● Don't submit a large complex patch ● Each issue should be its own commit ● Each commit should have a clear commit message ● Be consistent, stick to the author's style ● Update documentation when appropriate ● Write tests to support your changes ● Include a changelog entry
  • 28. OK so how do I submit my patch!? ● Download the source code ● Make your changes ● Submit the code
  • 29. What happens when I submit a patch? ● If the author accepts your change, they merge it into their repository and release the code! ● If your change is rejected, the author will comment on the pull request or the RT ticket – Don't give up!! – Talk it out with the author – Use the feedback to fix your patch
  • 30. How do I know my patch was submitted? ● RT responds with an email – If you don't get an email, wait a couple of days and resubmit ● GitHub shows your pull request – If you don't hear anything, submit an RT ticket
  • 31. What if the author doesn't respond, at all? ● Send email to modules@perl.org – Use this resource after several attempts to contact the author – State a log of your attempts to contact the author – If the author is unresponsive, you could end up being the maintainer ● Fork! – This is Open Source after all...
  • 32. Collaboration is fun! ● Fun to work on interesting things! ● Get others excited about your ideas... or get excited about someone else's! ● Good feeling to help out others ● Learn new things about programming! ● Even people who aren't using Perl at work contribute because it's FUN!
  • 33. Q&A