blob: 0b20346fca96b8af452a28d894fdc3b8989d9aec [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.
////
== Navigating the ASF Incubator Process
:description: 45 minute talk on the Apache Way and navigating a project through the incubator
:keywords: Apache Way,Incubator
:author: Your Name
:email: Your email
:position: Your Job title
{author} +
{position} +
{email} +
image::ApacheLogo.png[]
== Who am I?
include::aboutme.adoc[]
== What is the ASF?
include::projectstats.adoc[]
* World’s largest Open Source Foundation
* A neutral space where independent projects can prosper
* Creates open source software for the public good free of charge
* Business friendly Apache License 2.0
* {committers} committers, {members} members, {PMCs} PMCs, {podlings} podlings
== What is the Apache Incubator?
* Where communities come to learn the Apache Way
* Likes existing projects with a community around them
* Main entry point for new projects
== !
image::IncubatingProjects.png[]
== Why Come to Apache?
* Open community development
* Move away from vendor driven development
* Grow your community
* No one is the boss
== Why Should you Incubate?
* Learn the Apache Way
* Learn ASF policies
* To grow a community
* To foster independence
* To clarify licensing and intellectual property rights
== Why we Have an incubating Process?
* Podling follows the Apache Way
* Ensure donations comply with the Apache 2.0 license
* Podling follows the ASF structure of contributors, committers and PMC members
* Podling grants more responsibility via meritocracy
* Ensure that decision making is done in the open
* People act as individuals, not the company they work for
== The Apache Way
* Charity - For the public good. Software costs nothing.
* Pragmatic - Business friendly.
* Community - Collaboration, consensus and diversity.
* Merit - The more you do you more responsibility you have. Not just code contributions.
* Open - Everything in the public view. Discussions occur on mailing lists. Everyone can participate.
* Consensus - Work together to find ways forward.
=== The Apache Way - Charity
* No charge for Apache software
* We rely on donations to keep things running
* Few paid staff, everyone is a volunteer
* Not “pay to play”
=== The Apache Way - Pragmatic
* Apache License 2.0 is business friendly
* No obligation to give anything back
* Diverse communities
* Few hard rules, but have guidelines to help projects
* Don’t need to work on it full time
=== The Apache Way - Community
* Many people working together
* More resources than a single company
* Diversity of people, experience and ideas
* Individuals not companies
* Given responsibility via earning merit
* Discussion on the mailing list
=== The Apache Way - Merit
* Individuals gain merit by contributing to a project
* Users become contributors become committers become PMC members
* PMC appoints new PMC and committer members
* Merit does not expire
* Committers get access to the repository
* PMC vote on releases
* PMC decide the direction of the projects via consensus
=== The Apache Way - Open
* Everything (mostly) is available to the public
* What isn’t public is available to all members
* Code is made publicly available
* All discussions made in the open
* Discussion are archived and searchable
* Discussions are asynchronous
* No face to face meetings
* Everyone knows what is going on
=== The Apache Way - Consensus
* Community works towards consensus on major decisions
* Use lazy consensus for minor ones
* Not 100% agreement, but all agree it is a way forward
== Apache License
* Permissive license - you can do what you want
* Business friendly - can be used for commercial projects
* Requires source headers, a LICENSE and (optionally) a NOTICE file
* If not an ASF project:
** You don’t need to publish the source
** You don’t have to give back to the project
** You don’t need to ask for permission to use
== State of Play
* {PMCs} projects in the incubator
* {IPMCs} IPMC members (but not all are active)
* Projects usually stay 1 to 2 years in the incubator
* A dozen or so successful releases a month
* About 70% of releases pass an IPMC vote
== How to Get Into the Incubator
* Find a champion to help you through the proposal process
* Draft a proposal with details why you think it’s suitable
* Find (usually 3) mentors to help you guide you through the TLP process
* May take a little while to go through these steps
* Discuss on the incubator general mailing list (which may attract more potential committers)
* IPMC Votes on the proposal - most are accepted
== Acceptance Into the Incubator
* The Champion's role is over and they are more like a mentor from this point on
* Mentors help with setup of the podling
* Setup includes the mailing lists, version control, bug tracking and web site
* Have initial committers sign ICLAs and add to podling roster
* Bring initial code in via a software grant
== What to do During Incubation
* Create your website
* Learn how to make software releases and refine your build process
* Grow the community by adding new committers
* Learn to communicate in the open
* Scrub your code and perform IP clearance
* May need to relicense 3rd party code
== Build a Community
* Open asynchronous communication on email lists
* Decisions need to be made in the open
* JIRA / git discussion also OK (mirrored to list)
* Project independence with no company influence
* Welcoming to new people
* Answer user questions
* Add new committers and PPMC members
== How to Get Out
* Become a Top Level Project
* Retire
== Source Releases
* Must be cryptographically signed
* Must have an incubating disclaimer
* Have LICENSE and NOTICE file that follow Apache policy
* Follow licensing terms of any 3rd party bundled software
* 3rd party files are compatible with the Apache license
* Source files have ASF headers
* Contain source code and no compiled code
== Release Vote Process
* Podling creates a release candidate
* Vote on dev mailing list until 3 +1 votes and more +1 than -1
* If vote fails need to make a new release candidate
* Vote on incubator general mailing list
* Need 3 +1 and more +1 than -1 by IPMC members
* If vote fails need to make a new release candidate
* Can release once vote passes and 72 hours pass
== Representative Voting
image::VoteData.png[votedata,500]
== Why Your Release May Get a -1
* Unexpected binary in the source release
* Includes Category X licensed software (usually GPL)
* Included Category B license software
* LICENSE or NOTICE issue
* Copyright issue
* Missing license header or header issue
* Contains encryption software
== -1 is Not a Veto
* Release votes need 3 +1 votes and more +1 than -1 votes to pass
* Only IPMC votes are binding but good to take notice of other votes
* People can change their minds and vote again
* People put up conditional votes
* That being said a -1 vote is often for a good reason so you should at least look into it
== It Doesn’t Have to be Perfect
* Incubating projects are not expected to get it right the first time
* May not be familiar with policy at the start
* Policy doesn't cover all situations
* Different projects may do things in different ways, policies are in most cases guidance
* A release containing no surprises is a good thing
=== Legal vs Policy
* Licenses provide certain legal obligations you need to comply with
* Apache policy adds a little more:
** Need to have NOTICE file
** List all licenses in LICENSE (even if it not required)
=== Developers vs Licensing
* We’re not the only people who have difficulty or frustration with licensing
* Apache projects tend to be on average a lot better!
* External projects often:
** Have Unclear licenses
** Include code under a different (sometimes incompatible) licenses
** If Apache 2.0 licensed are missing a NOTICE file
** Try to have funny licenses
=== 33 Copies of BSD
video::33BSD.mp4[]
=== WTF Intel Lawyers
video::wtf.mp4[]
=== Only Dead People
video::deadpeople.mp4[]
=== GPL or BSD?
video::both.mp4[]
== Category A
* Can bundle software and can depend on
* Doesn’t add any restrictions above and beyond what the Apache License 2.0 does
* Common licenses include Apache License 2.0, Apache License 1.1, 2 or 3 clause BSD (without advertising clause), MIT/X11, W3C, Unicode, CC copyright only
== Category B
* Probably can’t include in a source release
* Contain some restriction of use
* May be able to use the binary form to limit the chance of corruption
* Common license include: +
Common Development and Distribution License (CDDL), Eclipse Public License (EPL), Mozilla Public License (MPL), Creative Common Attribution (CC-A)
== Category X
* Can’t depend on
* Can’t bundle software
* A few exceptions for build tools and optional dependencies
* Common Category X include: +
GPL, LGPL, CC non commercial, JSON, BSD 4 clause, Apache 1.0?
== Binary Distributions
* Not considered an official release
* Need to comply the same way with policies as source distributions
* LICENSE and NOTICE may be different as the content of the release is often different from the source release
== What Been Covered
* Apache Incubator
* The Apache Way
* Releases
* Community
* Licenses
== Questions?
Ask now, see me after the session, or email me, {author} at {email}.
== Useful Links
* Legal previously asked questions +
https://www.apache.org/legal/resolved
* Incubator release process (DRAFT)
http://incubator.apache.org/guides/releasemanagement.html +
https://incubator.apache.org/guides/release.html
* Assembling License and Notice How To +
http://www.apache.org/dev/licensing-howto.html
== Useful Links (cont)
* Apache Maturity Model +
http://community.apache.org/apache-way/apache-project-maturity-model.html
* Legal mailing list archive +
http://mail-archives.apache.org/mod_mbox/www-legal-discuss/
* Legal JIRA +
https://issues.apache.org/jira/browse/LEGAL