Opensource development and apache software foundation
OpensourceDevelopment andApache SoftwareFoundation Eran Chinthaka Withana (member, PMC member and committe
Agenda?What is Apache Software Foundation and how itworks?Why should I/we contribute to opensource andASFWhy should we, as a company, contribute toopensource and ASF
The Fine PrintDisclaimer Views in this presentation are my personal views and does not necessarily reflect the views of Apache Software Foundation.What we are not talking about Opensource vs Source open vs code dumping ASF vs other opensource organizations
Why Open SourceAccess to the source codeAvoid vendor lock-in (or worse!)Much better softwareBetter security record (more eyes)Much more nimble development – frequent releasesDirect user inputThe key technologies behind the Internet and the Web andthe Cloud are all Open Source based
The ASFASF = The Apache Software FoundationNon-profit corporation founded in 1999501( c )3 charityVolunteer organizationVirtual world-wide organizationExists to provide the organizational, legal, andfinancial support for various OSS projects
Structure of the ASFMember-based corporation - individuals onlyMembers nominate and elect new membersMembers elect a board - 9 seatsSemi-annual meetings via IRCEach PMC has a Chair - eyes and ears of theboard (oversight only)
The ASF‟s MissionProvide open source software to the public freeof chargeProvide a foundation for open, collaborativesoftware development projects by supplyinghardware, communication, and businessinfrastructureCreate an independent legal entity to whichcompanies and individuals can donate resourcesand be assured that those resources will be usedfor the public benefit
The ASF‟s MissionProvide a means for individual volunteers to besheltered from legal suits directed at theFoundation‟s projectsProtect the „Apache‟ brand, as applied to itssoftware products, from being abused by otherorganizationsProvide legal and technical infrastructure foropen source software development and toperform appropriate oversight of such software
Apache Top-level Projects Axis Karaf Tika CXF Lenya Tiles DB (Derby) Tomcat Directory Logging Excalibur Lucene Traffic Server Felix Turbine Maven Tuscany Forrest Mahout Geronimo UIMA Gump Mina Velocity Hadoop MyFaces Wicket Harmony Nutch Web Services HBase ODE Xalan HC Xerces HTTP Server OFBiz XML Jackrabbit OpenEJB XMLBeans Jakarta OpenJPA James XML Graphics PDFBox
Apache‟s TaglineWe are more than a group ofprojects sharing a server, we are a community of developers and users.
Committer Geographic Diversity http://people.apache.org/map.htmlChallenges and advantages arise from this !!
Project Diversity in Apache Seventy top-level projects (TLPs) Java, C, C++, Perl, etc. projects... It’s okay for projects to be in “same” space Ant/Maven, Pig/Hive, Axis/CXF... Over thirty projects currently in “pipeline” Apache aims to provides a pragmatic non-technical framework to its projects
Who Pays?Apache does not pay for development Voluntary contributions only!Many (not all!) developers are paid by a third-party to work on the projectFoundation bears indirect support costs Infrastructure, publicity, etc.
Motivations & Business ModelsEach contributor has own motivationsSeeking help from others on a big projectCommercial support: who to call at 2am?Common/shared platform: value add on top ofApache products...or it’s fun/interesting/challenging!
Meritocracy“Govern by Merit”Merit is based on what you doMerit never expiresThose with merit, get more responsibilityProvides incentive to Do More
Peer-basedDevelopers represent themselves - individualsMutual trust and respectAll votes hold the same weight (no dictators)Community created codeContributors feel as an important part of acommunity
Why Community -> CodeThe success of a project, can only come about viathe success of the communitySince we are all volunteers, people‟s time andinterests changeA healthy community is “warm and inviting” andencourages a continued influx of developersPoisonous people/communities turn people off, andthe project will dieEnd result - better code; long-term code
Consensus Decision MakingKey is the idea of voting +1 - yes +0 - no real comment -1 - vetoSometimes you‟ll also see stuff like -0, -0.5, etc...Voting The main intent is to gauge developer acceptance Vetos must be justifiable and have sound technical merit If valid, Vetos cannot be overruled Vetos are very rare Ensures consensus (give and take)
Apache Commit ProcessRTC - Review then Commit At least 3 +1s; no vetosCTR - Commit then Review Lazy consensus - assumed okayDifferent policies per PMC or codebases Stable: RTC, Trunk: CTR
Collaborative Development Code is developed by the community Voting ensures at least 3 active developers Development done online and on-list If it didn‟t happen on-list, it didn‟t happen Mailing lists are the preferred method Archived Asynchronous Available to anyone - public list Other methods are OK, if not primary Wikis, IRC, F2F Always bring back to the list
Responsible OversightEnsure license complianceTrack IPQuality codeQuality community
Legal FrameworkASF philosophy is that code can be usedcommercially without restrictions Just don’t call it Apache Foo!Apache License, version 2.0 Grants copyright and patent licensesMany non-ASF projects use ALv2 nowThird-party code ALv2 is GPLv3-compatible - can be used by GPL projects but no GPL within ASF
Starting New Apache ProjectsIncubator - “podlings” can be nominated andeventually “graduate” to be a PMC Needs foundation member to mentor Usually legal and/or community issuesLabs - once you are a committer, you can have asandbox (shared mailing list, no non-committers,no releases)
Invitation of Commit AccessCurrent PMC member nominates individualDiscussions on private@ list Key ?: Do we trust this individual?PMCs free to set own bar HTTP Server: ~6 months of contributions Subversion: 1-2 months of contributions
Beyond a CommitterOnce you are committer, you can then become aPMC member, foundationmember, Director...even President!You can nominate other foundation (or PMC)members; can serve as mentor for Incubatingprojects; vote for Board.
Impact on Contributing to ASFYou Better and easy recognition of work and publicly verifiable resume Every one would know who you are if you contribute to projects like Apache Cassandra/Hadoop My contributions to Apache Axis2 was one of the main reasons behind my acceptance to grad school in Indiana University Internship opportunities Ability to work with best programmers (a.k.a. hackers) in the world with some of the best programming practices and techniques. They are better friends. No managers and can chose to work on any aspect of the development cycle. Write proper error handling and logging code Think about backup and recovery Discuss technical designs and issues in writing Networking opportunities. Satisfaction by building software used by millions around the world. Work on what you like when you like ApacheCon
Impact on Contributing to ASFAs a company Recognition as a company contributing to opensource Attract better people to come and join Free publicity in all the events. Making sure the technologies you use sustain. Contributing developers Having in-house expertise Not allowing monopolies and making sure you can “influence” the directions. Hudson vs Jenkins Can we influence “Siri” to include the features we like? Free training for your employees in all aspects of software development, management, QA, and maintenance. Novices become intermediates who becomes experts, and users become developers who become core contributors. Pooling the developers to work on a project important to the company and harvesting the advantages of Synergy. Credit: http://mashable.com/2011/03/30/business-open-source-communities/
My JourneyStarting Apache Axis2 projectwith Dr. Sanjiva Weerawaranaand Apache Axis expertsInvolvement in designsdiscussions, implementations,dev/user mailing lists, fixing bugsBeing a release manager andgetting elected into projectmanagement committee (PMC)Presenting at ApacheCon andhelping to organize ApacheConAsiaElecting to be a member of ASF
How Can We Contribute?Apache wants voluntary contributionsAs an individual Evangelism, bug reports, documentations, testing, code, design feedback, replying to usersAs a company Provide testimonials about the OSS your enterprise uses Allow staff members to work on OSS libraries/applications that your company uses Push changes to OSS back to the developers of that project. Host OSS club meetings on your premises. Extract out and make “open source” the libraries/applications developed in-house. Free up use of paid software/services for OSS communities (remember cost vigilance?)Contributing is easier than you think! Credit: http://mashable.com/2011/03/30/business-open-source-communities/
Questions …Special thanks to Dr. Sanjiva Weerawarana for introducing me to ASF and opensource All my colleagues in ASF Jim Jagielski, Justin Erankrantz and Noel Bergman for sharing their slides