SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Porting 100k Lines of Code to TypeScript
Porting 100k Lines of Code to TypeScriptPorting 100k Lines of Code to TypeScript
Porting 100k Lines of Code to TypeScriptTiny
 
Proxying DBI with DBD::Gofer and App::Staticperl
Proxying DBI with DBD::Gofer and App::StaticperlProxying DBI with DBD::Gofer and App::Staticperl
Proxying DBI with DBD::Gofer and App::Staticperlnohuhu
 
Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020
Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020
Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020César Hernández
 
Debugging (Django) application in PyCharm
Debugging (Django) application in PyCharmDebugging (Django) application in PyCharm
Debugging (Django) application in PyCharmpavelkoci
 
Developing Rich Internet Applications with Perl and JavaScript
Developing Rich Internet Applications with Perl and JavaScriptDeveloping Rich Internet Applications with Perl and JavaScript
Developing Rich Internet Applications with Perl and JavaScriptnohuhu
 
Extract Method Refactoring Workshop (2016)
Extract Method Refactoring Workshop (2016)Extract Method Refactoring Workshop (2016)
Extract Method Refactoring Workshop (2016)Peter Kofler
 
Coding Dojo: Mars Rover (2014)
Coding Dojo: Mars Rover (2014)Coding Dojo: Mars Rover (2014)
Coding Dojo: Mars Rover (2014)Peter Kofler
 
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...Geshan Manandhar
 
Integração Contínua com PHPCI
Integração Contínua com PHPCIIntegração Contínua com PHPCI
Integração Contínua com PHPCIThiago Paes
 
Git grep cpan
Git grep cpanGit grep cpan
Git grep cpancPanel
 
Improving your code design using Java
Improving your code design using JavaImproving your code design using Java
Improving your code design using JavaRoan Brasil Monteiro
 
Jumping in Jakarta Open Source Project Everything nobody tells you
Jumping in Jakarta Open Source Project  Everything nobody tells youJumping in Jakarta Open Source Project  Everything nobody tells you
Jumping in Jakarta Open Source Project Everything nobody tells youRoan Brasil Monteiro
 
It is easy contributing to Open Source - ECLIPSE CON 2020
It is easy contributing to Open Source - ECLIPSE CON 2020It is easy contributing to Open Source - ECLIPSE CON 2020
It is easy contributing to Open Source - ECLIPSE CON 2020César Hernández
 
Coding Dojo: Bank OCR Outside-In (2015)
Coding Dojo: Bank OCR Outside-In (2015)Coding Dojo: Bank OCR Outside-In (2015)
Coding Dojo: Bank OCR Outside-In (2015)Peter Kofler
 
First Pull Request - Sergio Ocon - ManageIQ Design Summit 2016
First Pull Request - Sergio Ocon - ManageIQ Design Summit 2016First Pull Request - Sergio Ocon - ManageIQ Design Summit 2016
First Pull Request - Sergio Ocon - ManageIQ Design Summit 2016ManageIQ
 
Greetings from SlackBuilds.org
Greetings from SlackBuilds.orgGreetings from SlackBuilds.org
Greetings from SlackBuilds.org55020
 
Release & Iterate Faster: Stop Manual Testing
Release & Iterate Faster: Stop Manual TestingRelease & Iterate Faster: Stop Manual Testing
Release & Iterate Faster: Stop Manual TestingDrew Hannay
 
Software Craftsmanship Journeyman Tour (2013)
Software Craftsmanship Journeyman Tour (2013)Software Craftsmanship Journeyman Tour (2013)
Software Craftsmanship Journeyman Tour (2013)Peter Kofler
 

La actualidad más candente (20)

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

Destacado

Itinerari de la Natura: El Cap de l´Horta
Itinerari de la Natura: El Cap de l´Horta   Itinerari de la Natura: El Cap de l´Horta
Itinerari de la Natura: El Cap de l´Horta Paquivoramar
 
Viatge fí de_curs_-_coses_per_a_portar
Viatge fí de_curs_-_coses_per_a_portarViatge fí de_curs_-_coses_per_a_portar
Viatge fí de_curs_-_coses_per_a_portarPaquivoramar
 
Principles of management+lecture two
Principles of management+lecture twoPrinciples of management+lecture two
Principles of management+lecture twoazzatahaalamin
 
BallrodPICTURES
BallrodPICTURESBallrodPICTURES
BallrodPICTURESballrod
 
John Williams: Miguel Baidal
John Williams: Miguel BaidalJohn Williams: Miguel Baidal
John Williams: Miguel BaidalPaquivoramar
 
Instruments electrónics samuel
Instruments electrónics samuelInstruments electrónics samuel
Instruments electrónics samuelPaquivoramar
 
Agenda 21 decàleg 2010
Agenda 21 decàleg  2010Agenda 21 decàleg  2010
Agenda 21 decàleg 2010Paquivoramar
 
Wedding schedule
Wedding scheduleWedding schedule
Wedding scheduleKhun Ben
 
ballrodBOOK
ballrodBOOKballrodBOOK
ballrodBOOKballrod
 
RFID FMI Presentation Ognyan Angelov
RFID FMI Presentation Ognyan AngelovRFID FMI Presentation Ognyan Angelov
RFID FMI Presentation Ognyan AngelovOgnyan Angelov
 
NPMG Databases Presentation
NPMG Databases PresentationNPMG Databases Presentation
NPMG Databases PresentationOgnyan Angelov
 
Mvc training
Mvc trainingMvc training
Mvc trainingxioxu
 
Natura. Adrea H. Ceip Voramar
Natura. Adrea H. Ceip VoramarNatura. Adrea H. Ceip Voramar
Natura. Adrea H. Ceip VoramarPaquivoramar
 

Destacado (18)

Itinerari de la Natura: El Cap de l´Horta
Itinerari de la Natura: El Cap de l´Horta   Itinerari de la Natura: El Cap de l´Horta
Itinerari de la Natura: El Cap de l´Horta
 
Viatge fí de_curs_-_coses_per_a_portar
Viatge fí de_curs_-_coses_per_a_portarViatge fí de_curs_-_coses_per_a_portar
Viatge fí de_curs_-_coses_per_a_portar
 
Principles of management+lecture two
Principles of management+lecture twoPrinciples of management+lecture two
Principles of management+lecture two
 
Lecture 5
Lecture 5Lecture 5
Lecture 5
 
Test tepsi
Test tepsiTest tepsi
Test tepsi
 
BallrodPICTURES
BallrodPICTURESBallrodPICTURES
BallrodPICTURES
 
John Williams: Miguel Baidal
John Williams: Miguel BaidalJohn Williams: Miguel Baidal
John Williams: Miguel Baidal
 
Instruments electrónics samuel
Instruments electrónics samuelInstruments electrónics samuel
Instruments electrónics samuel
 
Agenda 21 decàleg 2010
Agenda 21 decàleg  2010Agenda 21 decàleg  2010
Agenda 21 decàleg 2010
 
Wedding schedule
Wedding scheduleWedding schedule
Wedding schedule
 
ballrodBOOK
ballrodBOOKballrodBOOK
ballrodBOOK
 
RFID FMI Presentation Ognyan Angelov
RFID FMI Presentation Ognyan AngelovRFID FMI Presentation Ognyan Angelov
RFID FMI Presentation Ognyan Angelov
 
Challenge.me
Challenge.meChallenge.me
Challenge.me
 
NPMG Databases Presentation
NPMG Databases PresentationNPMG Databases Presentation
NPMG Databases Presentation
 
Mvc training
Mvc trainingMvc training
Mvc training
 
Natura. Adrea H. Ceip Voramar
Natura. Adrea H. Ceip VoramarNatura. Adrea H. Ceip Voramar
Natura. Adrea H. Ceip Voramar
 
Manual eedp
Manual eedpManual eedp
Manual eedp
 
Academic vocabulary in use- Cambridge
Academic vocabulary in use- CambridgeAcademic vocabulary in use- Cambridge
Academic vocabulary in use- Cambridge
 

Similar a Perl wants you

Getting Started Contributing to Apache Spark – From PR, CR, JIRA, and Beyond
Getting Started Contributing to Apache Spark – From PR, CR, JIRA, and BeyondGetting Started Contributing to Apache Spark – From PR, CR, JIRA, and Beyond
Getting Started Contributing to Apache Spark – From PR, CR, JIRA, and BeyondDatabricks
 
LCE12: Intro Training: Upstreaming 101
LCE12: Intro Training: Upstreaming 101LCE12: Intro Training: Upstreaming 101
LCE12: Intro Training: Upstreaming 101Linaro
 
Getting started contributing to Apache Spark
Getting started contributing to Apache SparkGetting started contributing to Apache Spark
Getting started contributing to Apache SparkHolden Karau
 
Contributing to Apache Airflow | Journey to becoming Airflow's leading contri...
Contributing to Apache Airflow | Journey to becoming Airflow's leading contri...Contributing to Apache Airflow | Journey to becoming Airflow's leading contri...
Contributing to Apache Airflow | Journey to becoming Airflow's leading contri...Kaxil Naik
 
Getting big without getting fat, in perl
Getting big without getting fat, in perlGetting big without getting fat, in perl
Getting big without getting fat, in perlDean Hamstead
 
LCA13: Upstreaming 101
LCA13: Upstreaming 101LCA13: Upstreaming 101
LCA13: Upstreaming 101Linaro
 
Upstreaming 1013
Upstreaming 1013Upstreaming 1013
Upstreaming 1013Linaro
 
Passing the Joel Test in the PHP World (phpbnl10)
Passing the Joel Test in the PHP World (phpbnl10)Passing the Joel Test in the PHP World (phpbnl10)
Passing the Joel Test in the PHP World (phpbnl10)Lorna Mitchell
 
Adopting language server for apache camel feedback from a java/Eclipse plugi...
Adopting language server for apache camel  feedback from a java/Eclipse plugi...Adopting language server for apache camel  feedback from a java/Eclipse plugi...
Adopting language server for apache camel feedback from a java/Eclipse plugi...Aurélien Pupier
 
Linux Kernel Introduction
Linux Kernel IntroductionLinux Kernel Introduction
Linux Kernel IntroductionSage Sharp
 
Puppet Camp Paris 2014: Test Driven Development
Puppet Camp Paris 2014: Test Driven DevelopmentPuppet Camp Paris 2014: Test Driven Development
Puppet Camp Paris 2014: Test Driven DevelopmentPuppet
 
20140408 tdd puppetcamp-paris
20140408 tdd puppetcamp-paris20140408 tdd puppetcamp-paris
20140408 tdd puppetcamp-parisJohan De Wit
 
Writing clean scientific software Murphy cleancoding
Writing clean scientific software Murphy cleancodingWriting clean scientific software Murphy cleancoding
Writing clean scientific software Murphy cleancodingsaber tabatabaee
 
Puppetizing Your Organization
Puppetizing Your OrganizationPuppetizing Your Organization
Puppetizing Your OrganizationRobert Nelson
 
Overcoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceOvercoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceAll Things Open
 
30 days gcp info session final
30 days gcp info session final30 days gcp info session final
30 days gcp info session finalDomendra Sahu
 
Python fundamental course curriculum
Python fundamental course curriculumPython fundamental course curriculum
Python fundamental course curriculumEngiGyan .
 
Test driven development_and_puppet-cfgmgmtcamp_eu-20140402
Test driven development_and_puppet-cfgmgmtcamp_eu-20140402Test driven development_and_puppet-cfgmgmtcamp_eu-20140402
Test driven development_and_puppet-cfgmgmtcamp_eu-20140402Johan De Wit
 

Similar a Perl wants you (20)

Getting Started Contributing to Apache Spark – From PR, CR, JIRA, and Beyond
Getting Started Contributing to Apache Spark – From PR, CR, JIRA, and BeyondGetting Started Contributing to Apache Spark – From PR, CR, JIRA, and Beyond
Getting Started Contributing to Apache Spark – From PR, CR, JIRA, and Beyond
 
Me&g@home
Me&g@home Me&g@home
Me&g@home
 
LCE12: Intro Training: Upstreaming 101
LCE12: Intro Training: Upstreaming 101LCE12: Intro Training: Upstreaming 101
LCE12: Intro Training: Upstreaming 101
 
Getting started contributing to Apache Spark
Getting started contributing to Apache SparkGetting started contributing to Apache Spark
Getting started contributing to Apache Spark
 
Contributing to Apache Airflow | Journey to becoming Airflow's leading contri...
Contributing to Apache Airflow | Journey to becoming Airflow's leading contri...Contributing to Apache Airflow | Journey to becoming Airflow's leading contri...
Contributing to Apache Airflow | Journey to becoming Airflow's leading contri...
 
Getting big without getting fat, in perl
Getting big without getting fat, in perlGetting big without getting fat, in perl
Getting big without getting fat, in perl
 
LCA13: Upstreaming 101
LCA13: Upstreaming 101LCA13: Upstreaming 101
LCA13: Upstreaming 101
 
Upstreaming 1013
Upstreaming 1013Upstreaming 1013
Upstreaming 1013
 
Passing the Joel Test in the PHP World (phpbnl10)
Passing the Joel Test in the PHP World (phpbnl10)Passing the Joel Test in the PHP World (phpbnl10)
Passing the Joel Test in the PHP World (phpbnl10)
 
Adopting language server for apache camel feedback from a java/Eclipse plugi...
Adopting language server for apache camel  feedback from a java/Eclipse plugi...Adopting language server for apache camel  feedback from a java/Eclipse plugi...
Adopting language server for apache camel feedback from a java/Eclipse plugi...
 
Linux Kernel Introduction
Linux Kernel IntroductionLinux Kernel Introduction
Linux Kernel Introduction
 
Puppet Camp Paris 2014: Test Driven Development
Puppet Camp Paris 2014: Test Driven DevelopmentPuppet Camp Paris 2014: Test Driven Development
Puppet Camp Paris 2014: Test Driven Development
 
20140408 tdd puppetcamp-paris
20140408 tdd puppetcamp-paris20140408 tdd puppetcamp-paris
20140408 tdd puppetcamp-paris
 
Writing clean scientific software Murphy cleancoding
Writing clean scientific software Murphy cleancodingWriting clean scientific software Murphy cleancoding
Writing clean scientific software Murphy cleancoding
 
PostgreSQL Development Today: 9.0
PostgreSQL Development Today: 9.0PostgreSQL Development Today: 9.0
PostgreSQL Development Today: 9.0
 
Puppetizing Your Organization
Puppetizing Your OrganizationPuppetizing Your Organization
Puppetizing Your Organization
 
Overcoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceOvercoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open Source
 
30 days gcp info session final
30 days gcp info session final30 days gcp info session final
30 days gcp info session final
 
Python fundamental course curriculum
Python fundamental course curriculumPython fundamental course curriculum
Python fundamental course curriculum
 
Test driven development_and_puppet-cfgmgmtcamp_eu-20140402
Test driven development_and_puppet-cfgmgmtcamp_eu-20140402Test driven development_and_puppet-cfgmgmtcamp_eu-20140402
Test driven development_and_puppet-cfgmgmtcamp_eu-20140402
 

Último

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Último (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

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