Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "How To Get Involved In Open Source Nick Burch Senior Developer, Alfresco Software VP ConCom, ASF Member."— Presentation transcript:

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

2 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!

3 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

4 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!

5 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

6 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!

7 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...

8 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!

9 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.... :)

10 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

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

12 Others How others got involved too

13 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

14 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!

15 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

16 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

17 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

18 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!

19 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!

20 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!

21 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!

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

23 Questions? Want to know more? ● http://www.apache.org/ http://www.apache.org/ ● http://community.apache.org/ http://community.apache.org/ ● dev@community.apache.org dev@community.apache.org ● @TheASF ● @Gagravarr ● @RGardler


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

Similar presentations


Ads by Google