blob: 4d73a6116006035796aca3bac51cfb64260f9146 [file] [log] [blame]
////
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
////
include::_settings.adoc[]
:presenter_name: Your Name
:presenter_company: Your Company
:description: A short 30 minute introduction talk about what Apache Community Development is
:keywords: ComDev, Community Development
:author: Your Name
:email: Your email
:position: Your role
== What is the ASF?
image::ApacheLogo.png[]
== Who am I?
{author} +
{position} +
{email} +
[NOTE.speaker]
--
Please add your own details here
--
== What am I going to cover?
image::asf_logo.png[]
* What is the ASF?
* How is an ASF project structured?
* How is the ASF structured?
* How does all of this work?
== What is the ASF?
* ASF = The Apache Software Foundation
* *US 501(c)3 charity* (Non-profit charity)
* Community of volunteers
* Virtual, world-wide organisation
* Provides organisational, legal and financial support for a large number of open-source projects
== The Apache Group
image::apache_8.png[250,250,float="right",align="center"]
* Before there was the ASF, there was the "Apache Group"
* Informal corporate structure
* 8 members
* Formed in Feb. 1995
* Continued the work on the NCSA httpd
* Chose a very promiscuous license
== Growth
[cols="2"]
|===
| Then (1999)
| Now (03.2023)
.^a|* 21 Members
* 2 Projects
* All servers and services donated
.^a| * 743 Members
* 362 Projects (Managed by 207 PMCs)
* 8833 Committers
//* 689584 Contributors
* Cloud infrastructure
|===
[NOTE.speaker]
--
// Source:
// https://whimsy.apache.org/roster/
* ICLA: Individual Contributor License Agreement
* CCLA: Corporate Contributor License Agreement
* 31 Incubator Podlings
* 5 Special Committees: Infrastructure, Travel Assistance, Security Team, Legal Affairs and Brand Management
--
== Number of projects over time
image::project-number-over-time.png[]
// Source https://projects.apache.org/
== Commits over time
image::commits-over-time.png[]
// Source: https://projects.apache.org/statistics.html
== Language distribution
image::language-distribution.png[]
// Source https://projects.apache.org/
== Project categories
image::project-categories.png[]
// Source https://projects.apache.org/
== The mission
* *Provide software for the public good*
* Protect the trademark: *Apache* and her software products against misuse by other organisations
* Provide the technical and legal infrastructure for open-source development
* Provide all means to protect every volunteer from persecution as long as this persecution is aimed at a project of the foundation
[NOTE.speaker]
--
* legal infrastructure = Apache license, ICLA, CCLA, ...
* legal umbrella: If someone initiates legal action against an Apache committer for things related to the ASF, the ASF takes the place of the accused.
--
== The vision
The Apache Software Foundation provides support for the Apache community of open-source software projects. The Apache projects are characterized by a *collaborative*, *consensus based* development process, an *open* and pragmatic software license, and a desire to create *high quality* software that leads the way in its field. We consider ourselves not simply a group of projects sharing a server, but rather a *community of developers and users*.
== Projects
* Heart of the ASF are the *projects*
* Also named "Top Level Project" (TLP)
* ASF provides services:
** Mailinglists, code-repositories (SVN, Git, ...)
** Bug & Issue trackers (Jira, ...), Wiki (Confluence, ...)
** CI Server (Jenkins, ...), Webservers for project websites
** ...
[NOTE.speaker]
--
* Currently, there is a trend to use GitHub Issues, GitHub Discussions, GitHub Actions (CI)
* The ASF provides tooling to integrate these
--
== Structure of a project
[ditaa,project-structure]
....
+-----------+
|cDFA |
| PMC Chair |
| |
+----+-----------+----+
|c6A1 |
| Project PMC |
| |
+----+---------------------+----+
|cF71 |
| Project Committers | Total: 8833
| |
+----+-------------------------------+----+
|c7CE |
| Project Contributors | Total: 689584
| |
+----+-----------------------------------------+----+
|cDDB |
| Project Users | Total: billions
| |
+---------------------------------------------------+
....
// Numbers (03.2023)
[NOTE.speaker]
--
* Contributors: People who have contributed anything to a project
* Users: Almost every phone, tv, has at least some Apache software in it
--
== Lifecycle of a project
[ditaa,project-lifecycle]
....
+---------------------------------------------------+
|cDFA |
| Outside of Apache |
| |
+---------------------------------------------------+
|
|
V
+---------------------------------------------------+
|c6A1 |
| Apache Incubator |--->
| |
+---------------------------------------------------+
|
|
V
+---------------------------------------------------+
|cF71 |
| Apache TLP |--->
| |
+---------------------------------------------------+
|
|
V
+---------------------------------------------------+
|c7CE |
| Apache Attic |
| |
+---------------------------------------------------+
....
[NOTE.speaker]
--
* Projects don't start at Apache
* Projects can also leave any time
** Might need to re-brand
--
== How is the ASF structured?
* *Member* based - only individuals can join (no companies)
* Members nominate and elect new members
* Members elect *board* (9 *directors*)
* Annual members meeting via IRC
* Monthly board meeting
* Every project elects a *Chair* as interface to the board
[NOTE.speaker]
--
* Projects don't start at Apache
* Projects can also leave any time
** Might need to re-brand
--
== Structure of the ASF
[ditaa,asf-structure]
....
Technical Oversight
+--------------------+ +--------------------+
|cDFA | |c6A1 |
| Committers +--------------->| PMCs |
| (8833) | | (207) |
+--------------------+ +---+----------------+
Report| ^
quarterly| |
| |
------------------------------------------|------------|-----------------
| |
Organizational Oversight | | Create & update
V | upon PMC request
+--------------------+ +----------------+---+
|c7CE | |cF71 |
| Members +--------------->| Board of Directors |
| (743) +--+ | (9) |
+--------------------+ | +---+----------------+
^ | Appoint| ^
| | Officers| |
+-------------+ | |Report
Nominate, elect V |monthly
new members +----------------+---+
|cDDB |
| Officers |
| (10) |
+--------------------+
....
== How does this all work?
* The Apache Way
** A method to develop software
** A method to run communities
** A method to run an organisation
== On which principles is it based?
* Meritocracy: Advancement through action & commitment
* Transparency: Nothing happens in secret
* Community: Together we are strong
== Ways to be committed
* Documentation, Tutorials, Examples
* Talks (at conferences & meetups)
* User groups
* Helping others (On mailing lists)
* Filing bug reports
* Testing and helping fix bugs & issues
* Bugfixes
* New features
* Mentoring, involvement in the foundation itself
== Path of merit
[ditaa,merit-path]
....
Project | Foundation
|
+------------------------+ |
|c883 | | nominated |
| User | | by members |
| | | |
+-----------+------------+ | |
| Contributes | |
| | |
v | |
+------------------------+ | nominated |
|cD92 | | by members |
| Bugreporter/-fixer +---------------------------+ |
| | | | |
+-----------+------------+ | | |
| elected | | |
| by PMC | | |
v | | |
+------------------------+ | nominated | |
|cDDB | | by members | |
| Project Committer +------------------+ | |
| | | | | |
+-----------+------------+ | | | |
| elected | | | |
| by PMC | | | |
v | V V V
+------------------------+ | +-----------------------+
|c7CE | | |cDFA |
| Project PMC Member +-------------->| ASF Member |
| | nominated | |
+-----------+------------+ by members +-----------+-----------+
| elected | | elected
| by PMC | | by members
v | V
+------------------------+ | +-----------------------+
|cF71 | | |c6A1 |
| Project Chair | | | Board Member |
| | | | |
+------------------------+ | +-----------------------+
|
....
== If it didn't happen on the list, it didn't happen
* If something isn't documented on any of the mailing lists, it didn't happen
** Every discussion and decision needs to be documented
* All discussions should happen in the public
* Off-list discussions can happen, but important information needs to be forwarded to the mailing list
* Others are need to be able to participate
[NOTE.speaker]
--
* Discussions on meetups or at conferences
* Many things (like votes) require 72 hour periods
* Private lists: Discussing security issues, voting on new committers and PMC members
--
== Community over Code
* We're (all) volunteers, life happens and our availability and our interests change
* A vital community encourages new community members
* It's normal, that members (temporarily) leave the community
* *Poisonous people* scare others and must be fought
* Result of a healthy community -> better code, long-lasting projects
== Consensus-based decisions
* PMC members have *binding votes*
* Non-PMC members have *non-binding votes*
* Formally only binding votes count
* *But* non-binding votes usually are still respected
* Something is considered decided if:
** At least 3 binding votes
** More `+1` as `-1` votes
[NOTE.speaker]
--
* Valid votes are `+1` (pro), `0`, `-1` (contra)
* `-1` votes should be constructive
--
== Collaborative development
* Code should be developed in community with others
** Large code-drops are bad
* Development should happen on-line (Git/SVN, Email, ...)
* Votes ensure that at least 3 developers are still active
* In order to allow anyone to participate, votes usually last at least 72 hours
* Discussions and votes happen only on the mailing-list
[NOTE.speaker]
--
* 72h = at least one working day, no matter where on earth you live
--
== The result
* Vendor neutrality
* Diversity
* Trust
* Safety
* Security
== How can companies help?
* Companies can allow their employees to contribute during working hours
* Companies can directly support the ASF financially (Sponsoring)
* Companies can donate code, so everyone can profit from it
* Companies can't directly fund development in projects
* Companies can donate funds towards projects (Targeted donations)
[NOTE.speaker]
--
* Targeted donations: Licenses, Hardware costs, Membership fees, ...
--