Opensource development and apache software foundation
-
Upload
eran-withana -
Category
Technology
-
view
1.369 -
download
1
description
Transcript of Opensource development and apache software foundation
Opensource Development and Apache Software Foundation
Eran Chinthaka Withana(member, PMC member and committer)
Agenda?What is Apache Software Foundation and how it works?Why should I/we contribute to opensource and ASFWhy should we, as a company, contribute to opensource 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 aboutOpensource vs Source open vs code dumpingASF 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 input
The key technologies behind the Internet and the Web and the 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 the board (oversight only)
ASF “Org Chart”
The ASF’s MissionProvide open source software to the public free of chargeProvide a foundation for open, collaborative software development projects by supplying hardware, communication, and business infrastructureCreate an independent legal entity to which companies and individuals can donate resources and be assured that those resources will be used for the public benefit
The ASF’s MissionProvide a means for individual volunteers to be sheltered from legal suits directed at the Foundation’s projectsProtect the ‘Apache’ brand, as applied to its software products, from being abused by other organizationsProvide legal and technical infrastructure for open source software development and to perform appropriate oversight of such software
Apache Top-level Projects
Axis CXF DB (Derby) Directory Excalibur Felix Forrest Geronimo Gump Hadoop Harmony HBase HC HTTP Server Jackrabbit Jakarta James
Karaf Lenya Logging Lucene Maven Mahout Mina MyFaces Nutch ODE OFBiz OpenEJB OpenJPA PDFBox
Tika Tiles Tomcat Traffic Server Turbine Tuscany UIMA Velocity Wicket Web Services Xalan Xerces XML XMLBeans XML Graphics
Apache’s TaglineWe are more than a group ofprojects sharing a server, we
are a community ofdevelopers and users.
Committer Geographic Diversity
http://people.apache.org/map.html
Challenges 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” spaceAnt/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 project
Foundation bears indirect support costsInfrastructure, publicity, etc.
Motivations & Business Models
Each contributor has own motivations
Seeking help from others on a big project
Commercial support: who to call at 2am?
Common/shared platform: value add on top of Apache products
...or it’s fun/interesting/challenging!
Basic MemesMeritocracyPeer-basedConsensus decision makingCollaborative developmentResponsible oversight
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 a community
Why Community -> Code
The success of a project, can only come about via the success of the communitySince we are all volunteers, people’s time and interests changeA healthy community is “warm and inviting” and encourages a continued influx of developersPoisonous people/communities turn people off, and the project will dieEnd result - better code; long-term code
Consensus Decision Making
Key is the idea of voting+1 - yes+0 - no real comment-1 - veto
Sometimes you’ll also see stuff like -0, -0.5, etc...Voting
The main intent is to gauge developer acceptanceVetos must be justifiable and have sound technical meritIf valid, Vetos cannot be overruledVetos are very rareEnsures consensus (give and take)
Apache Commit ProcessRTC - Review then Commit
At least 3 +1s; no vetos
CTR - Commit then ReviewLazy consensus - assumed okay
Different policies per PMC or codebasesStable: RTC, Trunk: CTR
Collaborative Development
Code is developed by the communityVoting ensures at least 3 active developersDevelopment done online and on-list
If it didn’t happen on-list, it didn’t happen
Mailing lists are the preferred methodArchivedAsynchronousAvailable to anyone - public list
Other methods are OK, if not primaryWikis, IRC, F2F
Always bring back to the list
Responsible OversightEnsure license complianceTrack IPQuality codeQuality community
Legal FrameworkASF philosophy is that code can be used commercially without restrictions
Just don’t call it Apache Foo!
Apache License, version 2.0Grants copyright and patent licenses
Many non-ASF projects use ALv2 now
Third-party codeALv2 is GPLv3-compatible - can be used by GPL projects but no GPL within ASF
Starting New Apache Projects
Incubator - “podlings” can be nominated and eventually “graduate” to be a PMC
Needs foundation member to mentorUsually legal and/or community issues
Labs - once you are a committer, you can have a sandbox (shared mailing list, no non-committers, no releases)
Invitation of Commit Access
Current PMC member nominates individual
Discussions on private@ listKey ?: Do we trust this individual?
PMCs free to set own barHTTP Server: ~6 months of contributionsSubversion: 1-2 months of contributions
Beyond a CommitterOnce you are committer, you can then become a PMC member, foundation member, Director...even President!
You can nominate other foundation (or PMC) members; can serve as mentor for Incubating projects; vote for Board.
Impact on Contributing to ASFYou
Better and easy recognition of work and publicly verifiable resumeEvery 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 UniversityInternship 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 codeThink about backup and recovery
Discuss technical designs and issues in writingNetworking opportunities.Satisfaction by building software used by millions around the world. Work on what you like when you likeApacheCon
Impact on Contributing to ASFAs a company
Recognition as a company contributing to opensourceAttract better people to come and joinFree publicity in all the events.Making sure the technologies you use sustain.
Contributing developersHaving in-house expertise
Not allowing monopolies and making sure you can “influence” the directions.
Hudson vs JenkinsCan 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 project with Dr. Sanjiva Weerawarana and Apache Axis expertsInvolvement in designs discussions, implementations, dev/user mailing lists, fixing bugsBeing a release manager and getting elected into project management committee (PMC)Presenting at ApacheCon and helping to organize ApacheCon AsiaElecting to be a member of ASF
How Can We Contribute?
Apache wants voluntary contributions
As an individualEvangelism, bug reports, documentations, testing, code, design feedback, replying to users
As a companyProvide testimonials about the OSS your enterprise usesAllow staff members to work on OSS libraries/applications that your company usesPush 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 opensourceAll my colleagues in ASFJim Jagielski, Justin Erankrantz and Noel Bergman for sharing their slides