perl wants you

33
Intro / Preface Augustina Ragwitz Perl Developer since 2007 First YAPC in 2012 (Madison) Currently at MediaMath in NYC (we're hiring) [email protected] irc.perl.org: auggy freenode irc: mmmpork twitter: @mmmpork

Upload: augustina-ragwitz

Post on 17-May-2015

152 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Perl wants you

Intro / Preface

● Augustina Ragwitz– Perl Developer since 2007

– First YAPC in 2012 (Madison)

● Currently at MediaMath in NYC (we're hiring)

[email protected]: auggyfreenode irc: mmmporktwitter: @mmmpork

Page 2: Perl wants you

Why Am I Giving This Talk?

● I just made my first contributions● Share what I've learned● Encourage y'all to contribute!

Page 3: Perl wants you

Perl Wants You!

Page 4: Perl wants you

Open Source Software is Free!

● But there is a cost...

Page 5: Perl wants you

Open Source Software is like Public Radio

● Ok, more like Public Access TV...

Page 6: Perl wants you

Pay your dues! Contribute!

● Or just do it cuz it's fun

Page 7: Perl wants you

Start Small

● GOAL: Get familiar with the patching process first!

● Small code patches● Documentation● Unit Tests

Page 8: Perl wants you

Remember...

● Working in a new code base requires context!

● Don't be intimidated!

Page 9: Perl wants you

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

Page 10: Perl wants you

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)

Page 11: Perl wants you

Perl Core (Perl 5 Porters)

● http://dev.perl.org● p5p mailing list

[email protected]

● irc channel: #p5p on irc.perl.org

Page 12: Perl wants you

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

Page 13: Perl wants you

Wow that sounds cool!Sooo, now what?

● Look for things that are easy to contribute!● Easy = small fixes for learning the patching

process

Page 14: Perl wants you

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

Page 15: Perl wants you

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

Page 16: Perl wants you

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

Page 17: Perl wants you

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

Page 18: Perl wants you

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

Page 19: Perl wants you

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!

Page 20: Perl wants you

Alright, that sounds good! How do I get started?

Page 21: Perl wants you

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.

Page 22: Perl wants you

Submit a Patch to CPAN

● You need the following:– The location of the source code repository

– Where the author wants patches submitted

Page 23: Perl wants you

Find the Repo

● Some modules on Metacpan have repository info

● Check Module documentation● Git::CPAN::Patch● Download the source tarball (last resort)

Page 24: Perl wants you

Where to Submit the Patch

● GitHub, BitBucket, SourceForge... if the author has specified the bugtracker

● Otherwise, use RT

Page 25: Perl wants you

RT

● http://rt.cpan.org● Send email to bug-acme-

[email protected]● 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!

Page 26: Perl wants you

GitHub

● http://github.com● Pull request is probably sufficient for

submitting your patch● Optional: Create an RT ticket

Page 27: Perl wants you

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

Page 28: Perl wants you

OK so how do I submit my patch!?

● Download the source code● Make your changes● Submit the code

Page 29: Perl wants you

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

Page 30: Perl wants you

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

Page 31: Perl wants you

What if the author doesn't respond, at all?

● Send email to [email protected]– 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...

Page 32: Perl wants you

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!

Page 33: Perl wants you

Q&A