opensource development and apache software foundation

32
Opensource Development and Apache Software Foundation Eran Chinthaka Withana (member, PMC member and comm

Upload: eran-withana

Post on 20-Nov-2014

1.364 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Opensource development and apache software foundation

Opensource Development and Apache Software Foundation

Eran Chinthaka Withana(member, PMC member and committer)

Page 2: Opensource development and apache software foundation

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

Page 3: Opensource development and apache software foundation

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

Page 4: Opensource development and apache software foundation

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

Page 5: Opensource development and apache software foundation

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

Page 6: Opensource development and apache software foundation

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)

Page 7: Opensource development and apache software foundation

ASF “Org Chart”

Page 8: Opensource development and apache software foundation

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

Page 9: Opensource development and apache software foundation

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

Page 10: Opensource development and apache software foundation

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

Page 11: Opensource development and apache software foundation

Apache’s TaglineWe are more than a group ofprojects sharing a server, we

are a community ofdevelopers and users.

Page 12: Opensource development and apache software foundation

Committer Geographic Diversity

http://people.apache.org/map.html

Challenges and advantages arise from this !!

Page 13: Opensource development and apache software foundation

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

Page 14: Opensource development and apache software foundation

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.

Page 15: Opensource development and apache software foundation

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!

Page 16: Opensource development and apache software foundation

Basic MemesMeritocracyPeer-basedConsensus decision makingCollaborative developmentResponsible oversight

Page 17: Opensource development and apache software foundation

Meritocracy“Govern by Merit”Merit is based on what you doMerit never expiresThose with merit, get more responsibilityProvides incentive to Do More

Page 18: Opensource development and apache software foundation

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

Page 19: Opensource development and apache software foundation

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

Page 20: Opensource development and apache software foundation

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)

Page 21: Opensource development and apache software foundation

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

Page 22: Opensource development and apache software foundation

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

Page 23: Opensource development and apache software foundation

Responsible OversightEnsure license complianceTrack IPQuality codeQuality community

Page 24: Opensource development and apache software foundation

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

Page 25: Opensource development and apache software foundation

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)

Page 26: Opensource development and apache software foundation

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

Page 27: Opensource development and apache software foundation

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.

Page 28: Opensource development and apache software foundation

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

Page 29: Opensource development and apache software foundation

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/

Page 30: Opensource development and apache software foundation

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

Page 31: Opensource development and apache software foundation

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/

Page 32: Opensource development and apache software foundation

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