×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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
[email protected]
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