The Apache Way
Aug. 2017

Evans Ye
Reference
The Apache Way

Alan Gates

DataWorks Summit 2017 San Jose

https://dataworkssummit.com/san-jose-2017/sessions/the-apache-way
Apache Software Foundation
• Non-profit foundation that manages open source projects

• Most of people are volunteers, a few paid positions (such as infra)

• About 180 top level projects (TLPs)

• EX: httpd, Tomcat, Spark, Flink, HBase, Mesos, Bigtop

• New projects started from Incubator

• EX: Hivemall, Impala, PredictionIO, MXNet

• Some are new projects, some already have mature code base

• Mentors train the project in the Apache Way
Spirits
• Community over code
• Apache does not write great software, Apache build communities that write great
software

• No Corporate Affiliations
• Some volunteers, some paid by employers to do open source

• Everyone works as individuals, not an employee of a company

• Companies have no control on the project

• Paid workers work on features, bugs

• Many company sponsor Apache, or back projects
Roles
• Users
• Download, use the software; ask, discuss questions on the user mailing list

• Contributors
• NOT ONLY developers

• Contributing tests and doc, reporting bugs, answering questions on mailing list,
organizing meetups, workshops, user groups, anything that helps!

• Committers
• Have write permission to project codebase

• Decide whether your code gets committed or not.
Roles
• Project Management Committee (PMC)
• Vote for new committers and PMC members

• Vote for releases

• access to private mailing list

• Reports regularly to the board

• Assures the project is operating in the "Apache Way"
Roles
• Apache Members
• Shareholders, caretakers of the foundation

• access to members mailing list

• access to all private mailing list

• New members nominated by current members every year

• Apache Board
• Governs Apache, elected every year
Project Hierarchy
PMC chair
PMC

Committer

contributor

user
ASF Hierarchy
PMC chair
PMC

Committer

contributor

user
PMC chair
PMC

Committer

contributor

user
PMC chair
PMC

Committer

contributor

user
Apache Member
Board
Meritocracy
• Contributors who continuously making quality contributions are voted in as
committers by the PMC

• Committers who continue to contribute and show the ability to guide the
project are voted in as PMC member by the PMC

• Committers and PMC members who continuously contribute across
projects are voted in as Apache members by other member

• Merit does not expire

• Merit does not transfer

• Bigtop PMC does not get me on Hadoop PMC
How it Works
•Mailing list
•Enables volunteers in different time zone to work together

•Project specific: users, dev, private@XXX.apache.org

•Non-list discussions need to be reported back on list

•If it didn’t happen on-list, it didn’t happen

•Things can be public, must be public

•Can be private: personal, credentials(AWS, dockerhub), security, legal issues,
nominations

•Lists achieved on the internet
How it Works
• JIRA
• Track issues, bugs development progress, submit patches

• Discuss the bug, the problem, review the design, the patch

(Some moved to github for code review)

• Release
• Apache officially only release source code

• Some project provide binary convenience artifacts

• Release earlier, release often
Votes
• Decisions are reached by consensus, not majority votes

• Votes to formalize decisions

• +1, agree

• +0, no opinions

• -1, I disagree, because...

• All votes are equal

• Different scenarios require different 

consensuses
Votes
• Decisions are reached by consensus, not majority votes

• Votes to formalize decisions

• +1, agree

• +0, no opinions

• -1, I disagree, because...

• All votes are equal

• Different scenarios require different 

consensuses
Decision Who Votes? Consensus Min Votes
Add
committer
or PMC
PMC Unanimous 3
Release PMC Majority 3
Review of
patch
committers Unanimous 0 or 1
Why contribute to Apache?
•As a company:

•Maintain good quality and long term availability of business critical foundation software

•Build company brand

•talent acquisition

•As individuals:

•Learn from committers, know great people

•Earn reputation

•Talk on international conferences

•Do something good for the society
How do I trade-off between paid
work and making contributions?
No, you don't have to
• Still, get your jobs done decently

• Make contributions 8 to10

• Do you really need to spend time on these?

FB, news, movies, ptt, etc

• No you don't because you can find your joy through contributions

• It's not easy. That's why you're different
追求卓越
成功⾃自然伴隨⽽而來來

The Apache Way

  • 1.
    The Apache Way Aug.2017 Evans Ye
  • 2.
    Reference The Apache Way AlanGates DataWorks Summit 2017 San Jose https://dataworkssummit.com/san-jose-2017/sessions/the-apache-way
  • 3.
    Apache Software Foundation •Non-profit foundation that manages open source projects • Most of people are volunteers, a few paid positions (such as infra) • About 180 top level projects (TLPs) • EX: httpd, Tomcat, Spark, Flink, HBase, Mesos, Bigtop • New projects started from Incubator • EX: Hivemall, Impala, PredictionIO, MXNet • Some are new projects, some already have mature code base • Mentors train the project in the Apache Way
  • 4.
    Spirits • Community overcode • Apache does not write great software, Apache build communities that write great software • No Corporate Affiliations • Some volunteers, some paid by employers to do open source • Everyone works as individuals, not an employee of a company • Companies have no control on the project • Paid workers work on features, bugs • Many company sponsor Apache, or back projects
  • 5.
    Roles • Users • Download,use the software; ask, discuss questions on the user mailing list • Contributors • NOT ONLY developers • Contributing tests and doc, reporting bugs, answering questions on mailing list, organizing meetups, workshops, user groups, anything that helps! • Committers • Have write permission to project codebase • Decide whether your code gets committed or not.
  • 6.
    Roles • Project ManagementCommittee (PMC) • Vote for new committers and PMC members • Vote for releases • access to private mailing list • Reports regularly to the board • Assures the project is operating in the "Apache Way"
  • 7.
    Roles • Apache Members •Shareholders, caretakers of the foundation • access to members mailing list • access to all private mailing list • New members nominated by current members every year • Apache Board • Governs Apache, elected every year
  • 8.
  • 9.
    ASF Hierarchy PMC chair PMC
 Committer
 contributor
 user PMCchair PMC
 Committer
 contributor
 user PMC chair PMC
 Committer
 contributor
 user Apache Member Board
  • 10.
    Meritocracy • Contributors whocontinuously making quality contributions are voted in as committers by the PMC • Committers who continue to contribute and show the ability to guide the project are voted in as PMC member by the PMC • Committers and PMC members who continuously contribute across projects are voted in as Apache members by other member • Merit does not expire • Merit does not transfer • Bigtop PMC does not get me on Hadoop PMC
  • 11.
    How it Works •Mailinglist •Enables volunteers in different time zone to work together •Project specific: users, dev, private@XXX.apache.org •Non-list discussions need to be reported back on list •If it didn’t happen on-list, it didn’t happen •Things can be public, must be public •Can be private: personal, credentials(AWS, dockerhub), security, legal issues, nominations •Lists achieved on the internet
  • 12.
    How it Works •JIRA • Track issues, bugs development progress, submit patches • Discuss the bug, the problem, review the design, the patch
 (Some moved to github for code review) • Release • Apache officially only release source code • Some project provide binary convenience artifacts • Release earlier, release often
  • 13.
    Votes • Decisions arereached by consensus, not majority votes • Votes to formalize decisions • +1, agree • +0, no opinions • -1, I disagree, because... • All votes are equal • Different scenarios require different 
 consensuses
  • 14.
    Votes • Decisions arereached by consensus, not majority votes • Votes to formalize decisions • +1, agree • +0, no opinions • -1, I disagree, because... • All votes are equal • Different scenarios require different 
 consensuses Decision Who Votes? Consensus Min Votes Add committer or PMC PMC Unanimous 3 Release PMC Majority 3 Review of patch committers Unanimous 0 or 1
  • 15.
    Why contribute toApache? •As a company: •Maintain good quality and long term availability of business critical foundation software •Build company brand •talent acquisition •As individuals: •Learn from committers, know great people •Earn reputation •Talk on international conferences •Do something good for the society
  • 16.
    How do Itrade-off between paid work and making contributions?
  • 17.
    No, you don'thave to • Still, get your jobs done decently • Make contributions 8 to10 • Do you really need to spend time on these?
 FB, news, movies, ptt, etc • No you don't because you can find your joy through contributions • It's not easy. That's why you're different
  • 18.