How To Get Involved In Open Source Nick Burch Senior Developer, Alfresco Software VP ConCom, ASF Member.

Slides:



Advertisements
Similar presentations
When will our bugs be fixed? When will our new features be added? When will the next release come out? Is my server up-to-date? Users Committers Program.
Advertisements

Scout Portal Toolkit For Web/Database Legal Material 2004 CONFERENCE FOR LAW SCHOOL COMPUTING.
Open Source Workshop1 IBM Software Group Working with Apache Tuscany A Hands-On Workshop Luciano Resende Haleh.
Interoperability with CMIS and Apache Chemistry
Programming and Application Packages
Introduction to Nutch CSCI 572: Information Retrieval and Search Engines Summer 2010.
Mtivity Client Support System Quick start guide. Mtivity Client Support System We are very pleased to announce the launch of a new Client Support System.
DevelopersCommitters Users I’m getting the following exception…. Anybody have any clue why??? +1, I like that idea… Source & Binary Code Repository Bug.
Testing External Survey Automatic Credit Granting Shepherd University Department of Psychology.
Version Control and SVN ECE 297. Why Do We Need Version Control?
Image by apaixonada: Talking people into creating patches.
Moving Picture Metaphor
One Laptop per Child Building XO User Developer Relationships November 20, 2008 Greg Smith OLPC Product Manager One Laptop per Child.
Developers Users Committers How do I configure this now? Just one more fix and I am done! CVS Download/Use Software Submit problems/ request features Store.
Google Chromecast download Update Via Preview Program BE THE FIRST TO ACCESS THE NEW FEATURES.
Learning through failure: Why you're not making enough games
Gosbecks E-Safety Guide
As modern children, we have a huge number of electronic devices available to us. We might use computers, tablets, mobile phones or games consoles; for.
LI: to understand what a reading journey is.
Social Media Security: Understanding how to keep yourself safe.
Grant Writing: Seeing the Big Picture
Mobile Testing - Bug Report
Mark 1:40-45 “Now a leper came to Him, imploring Him, kneeling down to Him and saying to Him, ‘If You are willing, You can make me clean.’ Then Jesus,
A few notes on writing a rough draft
The KEY to BEEing Happy Johnny Chen, Kiwanis Family & Foundation Chair
Stuttering and Self Esteem
Keys to a Successful College Admission Essay
English Proficiency Workshop
Reporting Overview Business Goals Demystify the report menu
A Career in Open Source Software
Making a Square root calculator: AT Math
Lessons from 15 years of NBD
MEMBER ENGAGEMENT.
It’s not where you start, it’s where you finish!
Finding work experience can be a tricky business
1. Overview of revision: statistics and basic principles
Anti bullying Week VMG What does bullying mean to you?
Fry Word Test First 300 words in 25 word groups
ClubRunner and My Rotary Thursday, December 06, 2018
Using networks to be more effective
Friday Fun: A Riddle! Versatile teaching tool You already do it
The Agile Inception Deck
Office 365.
What we’ll be doing Back to Basics Read Consistency Write Consistency.
Thank you for letting me visit with you today
Hold up, wait a minute, let me put some async in it
Change up your marketing game
in Business.
Helping teachers connect instantly with students and parents
Ceremonials Report and Information
The of and to in is you that it he for was.
Users Developers Committers Bug & Feature List CVS Checkout Latest
Git started with git: 2018 edition
Great News! You got an interview!
Interest Meeting BWHS Key Club
Open Source Development Challenges
NEW INTERACTIVE FEATURES
New country and Varied Cultures
Booksy University Bug Reports and Feature Requests.
Tech Que: “Hide n Seek” Title Graphic
Societies Forum Agenda
you get to solve puzzles!
Working in Groups Table-based groups. 3-4 people per group, usually.
European conference.
How To Start Your Paper Script: Hello everyone! As a tutor, most of the students I help are either rushing to finish a paper, or struggling to even get.
#1. LIKE YOURSELF The first self improvement tip is learning to love yourself. Unfortunately for many, this is easier said than done. You have to learn.
How China’s search company Baidu adopt InnerSource
CS2013 LECTURE 1 John Hurley Cal State LA.
Interest Meeting BWHS Key Club
Presentation transcript:

How To Get Involved In Open Source Nick Burch Senior Developer, Alfresco Software VP ConCom, ASF Member

How to get involved in Open Source ● My story – How I got involved in Open Source ● More stories – How others here got involved in Open Source too ● Some general themes of getting involved ● How you can get involved too!

Who is this Nick guy anyway? ● Senior Developer with Alfresco ● Apache VP Conferences ● PMC member for many projects – POI, Tika, Chemistry, ConCom, ComDev, Incubator, TAC ● Involved in several others, such as ODF Toolkit, Commons, Infrastructure etc ● Contribute to many non-Apache projects too ● First open source bug report in the mid 90s, first patches in the late 90s

My Apache Story – Key Dates ● POI – August 2003 ● Investigated project, joined the user list ● POI – November 2003 ● First query - 4 th November ● First patch - 12 th November – 8 days later! ● Lucene – December 2003 ● POI Committer – May 2005 ● Jakarta PMC – December 2006 ● POI PMC Chair – May 2007 ● Still there, still involved!

My Apache Story - How ● Needed to write a simple Lucene powered spider / indexer / searcher – long before SOLR! ● Wanted to get metadata and text out of Microsoft Office documents – long before Tika! ● Looked around for good Java libraries, Apache (Jakarta) POI was active, vibrant and close to what I needed ● Read the website, downloaded the software ● Joined the mailing list, “lurked” silently

My Apache Story – First Patch ● Started using POI in a solution, got the basics in place ● Something seemed harder than it should be, asked for help doing it better ● No response received to my query :( ● Went ahead and wrote a patch that exposed what I needed more easily, sent it in ● Patch was ignored :( ● Other users thanked me privately though!

My Apache Story – Patch Applied! ● Stayed on the list, learning ● One month after my first post, began answering questions from other users based on my experience ● Hit my next problem 3 months later ● Developers were interested! ● Sent in a patch to fix it ● Developers committed a fix, which was nothing at all like my patch...

My Apache Story – New Feature ● Everything I needed now worked, but stayed on the list all the same ● Nearly a year later, I needed something else ● A rough version had been posted to the mailing list before, but it was hacky ● Investigated how to do it better ● Discussed it on list, ended up sending in a patch to add it as a proper new feature ● Patch was applied as-is!

My Apache Story - Committer ● Kept working on the feature, adding in new functionality, and sending in patches ● The developers kept adding them, and others on the list were keen on the new things ● Eventually, the developers got bored of having to apply my patches for me ● So they made me a committer! ● It was all over, I was hooked.... :)

My Apache Story - Member ● Initially I stuck to my little area of the codebase ● Grew more confident, branched out to helping with other areas too ● Got involved in doing releases, was elected to the PMC based on this ● Helped drive the project's graduation from Jakarta to TLP, was elected project VP ● Got involved in foundation wide things from this, later elected a Member of the ASF

My Apache Story - Stages ● Lurked ● Initial, small patch ● Helped others ● Another patch ● A pause ● More patches ● Committer ● Onwards to more projects!

Others How others got involved too

Getting Involved – Where to start ● It always starts with a problem or a need ● “An itch that needs to be scratched” ● It's hard to get involved in something you don't care about – it works best when you have an interest in the project or what it lets you do ● Don't come to us and say “what project should I help with?” ● Think about what you use and what interests you, and get involved there

Getting Involved – At the Project ● Join the mailing list ● It's fine to “lurk” and watch first, without posting ● Checkout the codebase, have a look around ● Maybe take a peek at the mailing list archives ● If the website has a getting started guide or a tutorial, try following that ● If there are examples, see what they do ● Unit tests often show you how things work, look at them if you can't find an example!

Getting Involved – With an “itch” ● Don't worry about asking for help – we were all in your situation once! ● Look at the code, and try to narrow down where the problem lies ● If you think there's a bug, a (failing!) unit test is a great way to identify it and help others ● If you want to add a feature, start small, and try to base it off existing things ● Share the patch, ask for feedback

Getting Involved – Want to learn? ● Some projects list the areas they need people to work on ● Others list bugs suitable for beginners ● All projects love help with documentation and examples! ● You can review new bugs, and help if they don't have enough information yet ● Look at queries on the mailing list and simpler bugs, and see if you can help / solve it

Getting Involved – First Patch ● You've found a problem / feature gap ● And you've fixed it! ● Look at the project guidelines for submitting patches – may be to issue tracker, may be to mailing list, may be via pull request etc ● Send in your patch, along with an explanation of what you've done and why ● Be aware that developers can be busy ● Don't be upset if your patch needs changes

Getting Involved – More Patches ● Keep at it – most projects don't grant committership immediately ● Developers usually notice people who help others, and will then have more time for them ● Sometimes your patch may be ignored, try not to loose heart – developers are probably busy elsewhere, which isn't always visible ● If you can, include unit tests, examples, documentation ● You can always do this for existing code!

Getting Involved – Different Ways ● Bug Fixes ● New Features ● Helping on the user list ● Helping with bug triage ● Helping supply more details, unit tests etc for bugs ● Writing documentation ● Writing examples, updating existing ones ● All important!

Getting Involved – Next Steps ● Find a project you're interested in ● Think about how you can best help (code, bug fixes, documentation, bug triage, helping others) ● Join the mailing list(s) ● Get the code / documentation ● It's OK to lurk for a bit while you learn ● Take a deep breath... ● … and send in your first contribution ● Then keep going!

Getting Involved – Different Ways ● Bug Fixes ● New Features ● Helping on the user list ● Helping with bug triage ● Helping supply more details, unit tests etc for bugs ● Writing documentation ● Writing examples, updating existing ones ● All important!

Warning! Contributing to Open Source can be fun and addictive!

Questions? Want to know more? ● ● ●