Slide 1

Slide 1 text

Start Contributing to Perl, It's Easy!

Slide 2

Slide 2 text

Augustina Ragwitz [email protected] irc.perl.org: auggy freenode irc: mmmpork twitter: @mmmpork

Slide 3

Slide 3 text

Perl Wants You!

Slide 4

Slide 4 text

Open Source Software is “Free!”

Slide 5

Slide 5 text

Open Source is like Public Radio (well... more like Public Access TV)

Slide 6

Slide 6 text

Want to pay your dues? Contribute!

Slide 7

Slide 7 text

Start Small

Slide 8

Slide 8 text

Small Code Patches

Slide 9

Slide 9 text

Documentation

Slide 10

Slide 10 text

Unit Tests

Slide 11

Slide 11 text

Learn the Process

Slide 12

Slide 12 text

New Code means New Context

Slide 13

Slide 13 text

Don't be intimidated no one is judging you

Slide 14

Slide 14 text

PEOPLE make up communities

Slide 15

Slide 15 text

Talk to the community

Slide 16

Slide 16 text

irc.perl.org #p5p #perl-help

Slide 17

Slide 17 text

Why do we need this talk?

Slide 18

Slide 18 text

Tribal Knowledge

Slide 19

Slide 19 text

Where can I contribute to Perl?

Slide 20

Slide 20 text

Perl Core a.k.a. Perl 5 Porters

Slide 21

Slide 21 text

dev.perl.org #p5p on irc.perl.org [email protected]

Slide 22

Slide 22 text

Pumpkings

Slide 23

Slide 23 text

AKA Sucker of the Moment “I was told there would be pumpkin pie!”

Slide 24

Slide 24 text

Submit a patch, become immortal!

Slide 25

Slide 25 text

Perl Core != C programming

Slide 26

Slide 26 text

Documentation

Slide 27

Slide 27 text

Patch supporting scripts

Slide 28

Slide 28 text

Improve unit test coverage

Slide 29

Slide 29 text

Check RT for bugs http://rt.perl.org

Slide 30

Slide 30 text

Whoa! A To-Do List! Porting/todo.pod

Slide 31

Slide 31 text

How to submit a patch: http://perldoc.perl.org/perlhack.html

Slide 32

Slide 32 text

Perlbug utility + helpful tips http://perldoc.perl.org/perlbug.html

Slide 33

Slide 33 text

The CPAN Comprehensive Perl Archive Network

Slide 34

Slide 34 text

AKA The Place Where Modules Live

Slide 35

Slide 35 text

MetaCPAN http://www.metacpan.org

Slide 36

Slide 36 text

PAUSE Perl Authors Upload Server http://pause.perl.org

Slide 37

Slide 37 text

CPAN Testers Test all the Modules on all the Perls http://www.cpantesters.org

Slide 38

Slide 38 text

Cool Stats! http://stats.cpantesters.org

Slide 39

Slide 39 text

How can I contribute to CPAN?

Slide 40

Slide 40 text

File a bug

Slide 41

Slide 41 text

Struggled to use a module? Improve documentation!

Slide 42

Slide 42 text

Especially if the author helped you!

Slide 43

Slide 43 text

Did you change anything to make it work? Submit the patch!

Slide 44

Slide 44 text

How to submit a patch to CPAN

Slide 45

Slide 45 text

Disclaimer: TIMTOWTDI

Slide 46

Slide 46 text

Step One: Get the source code

Slide 47

Slide 47 text

Check Metacpan Repository Information

Slide 48

Slide 48 text

Check the Module documentation

Slide 49

Slide 49 text

Last Resort: Download the tarball

Slide 50

Slide 50 text

Git::CPAN::Patch

Slide 51

Slide 51 text

Step Two: Hack, Hack, Hack

Slide 52

Slide 52 text

Step Three: Submit the patch

Slide 53

Slide 53 text

Has the author specified a bugtracker?

Slide 54

Slide 54 text

Examples: Github Bitbucket Sourceforge

Slide 55

Slide 55 text

GitHub http://www.github.com Make a “Pull Request”

Slide 56

Slide 56 text

If not, use RT http://rt.cpan.org

Slide 57

Slide 57 text

Send an email to RT and attach your patch [email protected]

Slide 58

Slide 58 text

Use RT if: Author says to or No bugtracker information

Slide 59

Slide 59 text

How do I know my patch was submitted?

Slide 60

Slide 60 text

RT responds with an email

Slide 61

Slide 61 text

GitHub shows your pull request

Slide 62

Slide 62 text

What happens when I submit a patch?

Slide 63

Slide 63 text

Scenario One: Merged and Released!

Slide 64

Slide 64 text

Scenario Two: Author responds to bugtracker ticket

Slide 65

Slide 65 text

What if my patch is rejected? :(

Slide 66

Slide 66 text

Don't give up!!!

Slide 67

Slide 67 text

Use the author's feedback to fix your patch

Slide 68

Slide 68 text

What if the author doesn't respond... AT ALL!?

Slide 69

Slide 69 text

Slide 70

Slide 70 text

FORK!

Slide 71

Slide 71 text

How do I write a patch that's likely to get merged?

Slide 72

Slide 72 text

Don't submit a large, complex patch Each issue gets its own commit

Slide 73

Slide 73 text

Write clear commit messages

Slide 74

Slide 74 text

Be consistent with the author's style

Slide 75

Slide 75 text

Update documentation

Slide 76

Slide 76 text

Write tests

Slide 77

Slide 77 text

Include a changelog entry

Slide 78

Slide 78 text

Collaboration is FUN!

Slide 79

Slide 79 text

Q&A