Opensource
Development and
Apache Software
Foundation
     Eran Chinthaka Withana
     (member, PMC member and committe
Agenda?
What is Apache Software Foundation and how it
works?

Why should I/we contribute to opensource and
ASF

Why should we, as a company, contribute to
opensource and ASF
The Fine Print
Disclaimer
   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 Source
Access to the source code

Avoid vendor lock-in (or worse!)

Much better software

Better security record (more eyes)

Much more nimble development – frequent releases

Direct user input



The key technologies behind the Internet and the Web and
the Cloud are all Open Source based
The ASF
ASF = The Apache Software Foundation
Non-profit corporation founded in 1999
501( c )3 charity
Volunteer organization
Virtual world-wide organization
Exists to provide the organizational, legal, and
financial support for various OSS projects
Structure of the ASF
Member-based corporation - individuals only

Members nominate and elect new members

Members elect a board - 9 seats

Semi-annual meetings via IRC

Each PMC has a Chair - eyes and ears of the
board (oversight only)
ASF “Org Chart”
The ASF‟s Mission
Provide open source software to the public free
of charge

Provide a foundation for open, collaborative
software development projects by supplying
hardware, communication, and business
infrastructure

Create 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 Mission
Provide a means for individual volunteers to be
sheltered from legal suits directed at the
Foundation‟s projects

Protect the „Apache‟ brand, as applied to its
software products, from being abused by other
organizations

Provide legal and technical infrastructure for
open source software development and to
perform 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 Tagline
We are more than a group of
projects sharing a server, we
    are a community of
   developers 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” 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 project

Foundation bears indirect support costs
   Infrastructure, 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 Memes
Meritocracy

Peer-based

Consensus decision making

Collaborative development

Responsible oversight
Meritocracy
“Govern by Merit”

Merit is based on what you do

Merit never expires

Those with merit, get more responsibility

Provides incentive to Do More
Peer-based
Developers represent themselves - individuals

Mutual trust and respect

All votes hold the same weight (no dictators)

Community created code

Contributors 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 community
Since we are all volunteers, people‟s time and
interests change
A healthy community is “warm and inviting” and
encourages a continued influx of developers
Poisonous people/communities turn people off, and
the project will die
End 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 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 Process
RTC - Review then Commit
   At least 3 +1s; no vetos

CTR - Commit then Review
   Lazy consensus - assumed okay

Different 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 Oversight
Ensure license compliance

Track IP

Quality code

Quality community
Legal Framework
ASF philosophy is that code can be used
commercially without restrictions
   Just don’t call it Apache Foo!

Apache License, version 2.0
   Grants copyright and patent licenses

Many non-ASF projects use ALv2 now
Third-party code
   ALv2 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 mentor
   Usually 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@ 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 Committer
Once 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 ASF
You
      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 ASF
As 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 Journey
Starting Apache Axis2 project
with Dr. Sanjiva Weerawarana
and Apache Axis experts

Involvement in designs
discussions, implementations,
dev/user mailing lists, fixing bugs

Being a release manager and
getting elected into project
management committee (PMC)

Presenting at ApacheCon and
helping to organize ApacheCon
Asia

Electing to be a member of ASF
How Can We Contribute?
Apache wants voluntary contributions

As an individual
    Evangelism, bug reports, documentations, testing, code, design
    feedback, replying to users

As 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

Opensource development and apache software foundation

  • 1.
    Opensource Development and Apache Software Foundation Eran Chinthaka Withana (member, PMC member and committe
  • 2.
    Agenda? What is ApacheSoftware Foundation and how it works? Why should I/we contribute to opensource and ASF Why should we, as a company, contribute to opensource and ASF
  • 3.
    The Fine Print Disclaimer 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
  • 4.
    Why Open Source Accessto the source code Avoid vendor lock-in (or worse!) Much better software Better security record (more eyes) Much more nimble development – frequent releases Direct user input The key technologies behind the Internet and the Web and the Cloud are all Open Source based
  • 5.
    The ASF ASF =The Apache Software Foundation Non-profit corporation founded in 1999 501( c )3 charity Volunteer organization Virtual world-wide organization Exists to provide the organizational, legal, and financial support for various OSS projects
  • 6.
    Structure of theASF Member-based corporation - individuals only Members nominate and elect new members Members elect a board - 9 seats Semi-annual meetings via IRC Each PMC has a Chair - eyes and ears of the board (oversight only)
  • 7.
  • 8.
    The ASF‟s Mission Provideopen source software to the public free of charge Provide a foundation for open, collaborative software development projects by supplying hardware, communication, and business infrastructure Create 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
  • 9.
    The ASF‟s Mission Providea means for individual volunteers to be sheltered from legal suits directed at the Foundation‟s projects Protect the „Apache‟ brand, as applied to its software products, from being abused by other organizations Provide legal and technical infrastructure for open source software development and to perform appropriate oversight of such software
  • 10.
    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
  • 11.
    Apache‟s Tagline We aremore than a group of projects sharing a server, we are a community of developers and users.
  • 12.
    Committer Geographic Diversity http://people.apache.org/map.html Challenges and advantages arise from this !!
  • 13.
    Project Diversity inApache 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
  • 14.
    Who Pays? Apache doesnot 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 costs Infrastructure, publicity, etc.
  • 15.
    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!
  • 16.
    Basic Memes Meritocracy Peer-based Consensus decisionmaking Collaborative development Responsible oversight
  • 17.
    Meritocracy “Govern by Merit” Meritis based on what you do Merit never expires Those with merit, get more responsibility Provides incentive to Do More
  • 18.
    Peer-based Developers represent themselves- individuals Mutual trust and respect All votes hold the same weight (no dictators) Community created code Contributors feel as an important part of a community
  • 19.
    Why Community ->Code The success of a project, can only come about via the success of the community Since we are all volunteers, people‟s time and interests change A healthy community is “warm and inviting” and encourages a continued influx of developers Poisonous people/communities turn people off, and the project will die End result - better code; long-term code
  • 20.
    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 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)
  • 21.
    Apache Commit Process RTC- Review then Commit At least 3 +1s; no vetos CTR - Commit then Review Lazy consensus - assumed okay Different policies per PMC or codebases Stable: RTC, Trunk: CTR
  • 22.
    Collaborative Development Codeis 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
  • 23.
    Responsible Oversight Ensure licensecompliance Track IP Quality code Quality community
  • 24.
    Legal Framework ASF philosophyis that code can be used commercially without restrictions Just don’t call it Apache Foo! Apache License, version 2.0 Grants copyright and patent licenses Many non-ASF projects use ALv2 now Third-party code ALv2 is GPLv3-compatible - can be used by GPL projects but no GPL within ASF
  • 25.
    Starting New Apache Projects Incubator - “podlings” can be nominated and eventually “graduate” to be a PMC Needs foundation member to mentor Usually legal and/or community issues Labs - once you are a committer, you can have a sandbox (shared mailing list, no non-committers, no releases)
  • 26.
    Invitation of Commit Access Current PMC member nominates individual Discussions 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
  • 27.
    Beyond a Committer Onceyou 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.
  • 28.
    Impact on Contributingto ASF You 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
  • 29.
    Impact on Contributingto ASF As 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/
  • 30.
    My Journey Starting ApacheAxis2 project with Dr. Sanjiva Weerawarana and Apache Axis experts Involvement in designs discussions, implementations, dev/user mailing lists, fixing bugs Being a release manager and getting elected into project management committee (PMC) Presenting at ApacheCon and helping to organize ApacheCon Asia Electing to be a member of ASF
  • 31.
    How Can WeContribute? Apache wants voluntary contributions As an individual Evangelism, bug reports, documentations, testing, code, design feedback, replying to users As 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/
  • 32.
    Questions … Special thanksto 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