blob: 24ec77a6fc9778fc49f27049caf53cfa5853d1f0 [file] [log] [blame]
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8" /><title>Navigating the ASF Incubator Process</title><meta content="yes" name="apple-mobile-web-app-capable" /><meta content="black-translucent" name="apple-mobile-web-app-status-bar-style" /><meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui" name="viewport" /><link href="reveal.js-3.7.0/css/reveal.css" rel="stylesheet" /><link href="css/c3.min.css" rel="stylesheet" /><script src="js/d3.min.js" charset="utf-8"></script><script src="js/c3.min.js"></script><link rel="stylesheet" href="reveal.js-3.7.0/css/theme/apache.css" id="theme" /><link href="reveal.js-3.7.0/lib/css/zenburn.css" rel="stylesheet" /><script>var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? "reveal.js-3.7.0/css/print/pdf.css" : "reveal.js-3.7.0/css/print/paper.css";
document.getElementsByTagName( 'head' )[0].appendChild( link );</script><!--[if lt IE 9]><script src="reveal.js-3.7.0/lib/js/html5shiv.js"></script><![endif]--></head><body><div class="header"><div class="left"></div><div class="right"></div></div><div class="reveal"><div class="slides"><section id="_navigating_the_asf_incubator_process"><h2>Navigating the ASF Incubator Process</h2><div class="paragraph"><p>Your Name<br />
Your Job title<br />
Your email<br /></p></div>
<div class="imageblock" style=""><img src="images/ApacheLogo.png" alt="ApacheLogo" /></div></section>
<section id="_who_am_i"><h2>Who am I?</h2><div class="ulist"><ul><li><p>TODO Fill in your own your info here</p></li></ul></div></section>
<section id="_what_is_the_asf"><h2>What is the ASF?</h2><div class="ulist"><ul><li><p>World’s largest Open Source Foundation</p></li><li><p>A neutral space where independent projects can prosper</p></li><li><p>Creates open source software for the public good free of charge</p></li><li><p>Business friendly Apache License 2.0</p></li><li><p>6901 committers, 766 members, 202 PMCs, 50 podlings</p></li></ul></div></section>
<section id="_what_is_the_apache_incubator"><h2>What is the Apache Incubator?</h2><div class="ulist"><ul><li><p>Where communities come to learn the Apache Way</p></li><li><p>Likes existing projects with a community around them</p></li><li><p>Main entry point for new projects</p></li></ul></div></section>
<section><div class="imageblock" style=""><img src="images/IncubatingProjects.png" alt="IncubatingProjects" /></div></section>
<section id="_why_come_to_apache"><h2>Why Come to Apache?</h2><div class="ulist"><ul><li><p>Open community development</p></li><li><p>Move away from vendor driven development</p></li><li><p>Grow your community</p></li><li><p>No one is the boss</p></li></ul></div></section>
<section id="_why_should_you_incubate"><h2>Why Should you Incubate?</h2><div class="ulist"><ul><li><p>Learn the Apache Way</p></li><li><p>Learn ASF policies</p></li><li><p>To grow a community</p></li><li><p>To foster independence</p></li><li><p>To clarify licensing and intellectual property rights</p></li></ul></div></section>
<section id="_why_we_have_an_incubating_process"><h2>Why we Have an incubating Process?</h2><div class="ulist"><ul><li><p>Podling follows the Apache Way</p></li><li><p>Ensure donations comply with the Apache 2.0 license</p></li><li><p>Podling follows the ASF structure of contributors, committers and PMC members</p></li><li><p>Podling grants more responsibility via meritocracy</p></li><li><p>Ensure that decision making is done in the open</p></li><li><p>People act as individuals, not the company they work for</p></li></ul></div></section>
<section><section id="_the_apache_way"><h2>The Apache Way</h2><div class="ulist"><ul><li><p>Charity - For the public good. Software costs nothing.</p></li><li><p>Pragmatic - Business friendly.</p></li><li><p>Community - Collaboration, consensus and diversity.</p></li><li><p>Merit - The more you do you more responsibility you have. Not just code contributions.</p></li><li><p>Open - Everything in the public view. Discussions occur on mailing lists. Everyone can participate.</p></li><li><p>Consensus - Work together to find ways forward.</p></li></ul></div></section><section id="_the_apache_way_charity"><h2>The Apache Way - Charity</h2><div class="ulist"><ul><li><p>No charge for Apache software</p></li><li><p>We rely on donations to keep things running</p></li><li><p>Few paid staff, everyone is a volunteer</p></li><li><p>Not “pay to play”</p></li></ul></div></section><section id="_the_apache_way_pragmatic"><h2>The Apache Way - Pragmatic</h2><div class="ulist"><ul><li><p>Apache License 2.0 is business friendly</p></li><li><p>No obligation to give anything back</p></li><li><p>Diverse communities</p></li><li><p>Few hard rules, but have guidelines to help projects</p></li><li><p>Don’t need to work on it full time</p></li></ul></div></section><section id="_the_apache_way_community"><h2>The Apache Way - Community</h2><div class="ulist"><ul><li><p>Many people working together</p></li><li><p>More resources than a single company</p></li><li><p>Diversity of people, experience and ideas</p></li><li><p>Individuals not companies</p></li><li><p>Given responsibility via earning merit</p></li><li><p>Discussion on the mailing list</p></li></ul></div></section><section id="_the_apache_way_merit"><h2>The Apache Way - Merit</h2><div class="ulist"><ul><li><p>Individuals gain merit by contributing to a project</p></li><li><p>Users become contributors become committers become PMC members</p></li><li><p>PMC appoints new PMC and committer members</p></li><li><p>Merit does not expire</p></li><li><p>Committers get access to the repository</p></li><li><p>PMC vote on releases</p></li><li><p>PMC decide the direction of the projects via consensus</p></li></ul></div></section><section id="_the_apache_way_open"><h2>The Apache Way - Open</h2><div class="ulist"><ul><li><p>Everything (mostly) is available to the public</p></li><li><p>What isn’t public is available to all members</p></li><li><p>Code is made publicly available</p></li><li><p>All discussions made in the open</p></li><li><p>Discussion are archived and searchable</p></li><li><p>Discussions are asynchronous</p></li><li><p>No face to face meetings</p></li><li><p>Everyone knows what is going on</p></li></ul></div></section><section id="_the_apache_way_consensus"><h2>The Apache Way - Consensus</h2><div class="ulist"><ul><li><p>Community works towards consensus on major decisions</p></li><li><p>Use lazy consensus for minor ones</p></li><li><p>Not 100% agreement, but all agree it is a way forward</p></li></ul></div></section></section>
<section id="_apache_license"><h2>Apache License</h2><div class="ulist"><ul><li><p>Permissive license - you can do what you want</p></li><li><p>Business friendly - can be used for commercial projects</p></li><li><p>Requires source headers, a LICENSE and (optionally) a NOTICE file</p></li><li><p>If not an ASF project:</p><div class="ulist"><ul><li><p>You don’t need to publish the source</p></li><li><p>You don’t have to give back to the project</p></li><li><p>You don’t need to ask for permission to use</p></li></ul></div></li></ul></div></section>
<section id="_state_of_play"><h2>State of Play</h2><div class="ulist"><ul><li><p>50 projects in the incubator</p></li><li><p>300 IPMC members (but not all are active)</p></li><li><p>Projects usually stay 1 to 2 years in the incubator</p></li><li><p>A dozen or so successful releases a month</p></li><li><p>About 70% of releases pass an IPMC vote</p></li></ul></div></section>
<section id="_how_to_get_into_the_incubator"><h2>How to Get Into the Incubator</h2><div class="ulist"><ul><li><p>Find a champion to help you through the proposal process</p></li><li><p>Draft a proposal with details why you think it’s suitable</p></li><li><p>Find (usually 3) mentors to help you guide you through the TLP process</p></li><li><p>May take a little while to go through these steps</p></li><li><p>Discuss on the incubator general mailing list (which may attract more potential committers)</p></li><li><p>IPMC Votes on the proposal - most are accepted</p></li></ul></div></section>
<section id="_acceptance_into_the_incubator"><h2>Acceptance Into the Incubator</h2><div class="ulist"><ul><li><p>The Champion&#8217;s role is over and they are more like a mentor from this point on</p></li><li><p>Mentors help with setup of the podling</p></li><li><p>Setup includes the mailing lists, version control, bug tracking and web site</p></li><li><p>Have initial committers sign ICLAs and add to podling roster</p></li><li><p>Bring initial code in via a software grant</p></li></ul></div></section>
<section id="_what_to_do_during_incubation"><h2>What to do During Incubation</h2><div class="ulist"><ul><li><p>Create your website</p></li><li><p>Learn how to make software releases and refine your build process</p></li><li><p>Grow the community by adding new committers</p></li><li><p>Learn to communicate in the open</p></li><li><p>Scrub your code and perform IP clearance</p></li><li><p>May need to relicense 3rd party code</p></li></ul></div></section>
<section id="_build_a_community"><h2>Build a Community</h2><div class="ulist"><ul><li><p>Open asynchronous communication on email lists</p></li><li><p>Decisions need to be made in the open</p></li><li><p>JIRA / git discussion also OK (mirrored to list)</p></li><li><p>Project independence with no company influence</p></li><li><p>Welcoming to new people</p></li><li><p>Answer user questions</p></li><li><p>Add new committers and PPMC members</p></li></ul></div></section>
<section id="_how_to_get_out"><h2>How to Get Out</h2><div class="ulist"><ul><li><p>Become a Top Level Project</p></li><li><p>Retire</p></li></ul></div></section>
<section id="_source_releases"><h2>Source Releases</h2><div class="ulist"><ul><li><p>Must be cryptographically signed</p></li><li><p>Must have an incubating disclaimer</p></li><li><p>Have LICENSE and NOTICE file that follow Apache policy</p></li><li><p>Follow licensing terms of any 3rd party bundled software</p></li><li><p>3rd party files are compatible with the Apache license</p></li><li><p>Source files have ASF headers</p></li><li><p>Contain source code and no compiled code</p></li></ul></div></section>
<section id="_release_vote_process"><h2>Release Vote Process</h2><div class="ulist"><ul><li><p>Podling creates a release candidate</p></li><li><p>Vote on dev mailing list until 3 +1 votes and more +1 than -1</p></li><li><p>If vote fails need to make a new release candidate</p></li><li><p>Vote on incubator general mailing list</p></li><li><p>Need 3 +1 and more +1 than -1 by IPMC members</p></li><li><p>If vote fails need to make a new release candidate</p></li><li><p>Can release once vote passes and 72 hours pass</p></li></ul></div></section>
<section id="_representative_voting"><h2>Representative Voting</h2><div class="imageblock" style=""><img src="images/VoteData.png" alt="votedata" width="500" /></div></section>
<section id="_why_your_release_may_get_a_1"><h2>Why Your Release May Get a -1</h2><div class="ulist"><ul><li><p>Unexpected binary in the source release</p></li><li><p>Includes Category X licensed software (usually GPL)</p></li><li><p>Included Category B license software</p></li><li><p>LICENSE or NOTICE issue</p></li><li><p>Copyright issue</p></li><li><p>Missing license header or header issue</p></li><li><p>Contains encryption software</p></li></ul></div></section>
<section id="_1_is_not_a_veto"><h2>-1 is Not a Veto</h2><div class="ulist"><ul><li><p>Release votes need 3 +1 votes and more +1 than -1 votes to pass</p></li><li><p>Only IPMC votes are binding but good to take notice of other votes</p></li><li><p>People can change their minds and vote again</p></li><li><p>People put up conditional votes</p></li><li><p>That being said a -1 vote is often for a good reason so you should at least look into it</p></li></ul></div></section>
<section><section id="_it_doesnt_have_to_be_perfect"><h2>It Doesn’t Have to be Perfect</h2><div class="ulist"><ul><li><p>Incubating projects are not expected to get it right the first time</p></li><li><p>May not be familiar with policy at the start</p></li><li><p>Policy doesn&#8217;t cover all situations</p></li><li><p>Different projects may do things in different ways, policies are in most cases guidance</p></li><li><p>A release containing no surprises is a good thing</p></li></ul></div></section><section id="_legal_vs_policy"><h2>Legal vs Policy</h2><div class="ulist"><ul><li><p>Licenses provide certain legal obligations you need to comply with</p></li><li><p>Apache policy adds a little more:</p><div class="ulist"><ul><li><p>Need to have NOTICE file</p></li><li><p>List all licenses in LICENSE (even if it not required)</p></li></ul></div></li></ul></div></section><section id="_developers_vs_licensing"><h2>Developers vs Licensing</h2><div class="ulist"><ul><li><p>We’re not the only people who have difficulty or frustration with licensing</p></li><li><p>Apache projects tend to be on average a lot better!</p></li><li><p>External projects often:</p><div class="ulist"><ul><li><p>Have Unclear licenses</p></li><li><p>Include code under a different (sometimes incompatible) licenses</p></li><li><p>If Apache 2.0 licensed are missing a NOTICE file</p></li><li><p>Try to have funny licenses</p></li></ul></div></li></ul></div></section><section id="_33_copies_of_bsd"><h2>33 Copies of BSD</h2><div class="videoblock stretch"><video src="images/33BSD.mp4" width="100%" height="100%" controls="">Your browser does not support the video tag.</video></div></section><section id="_wtf_intel_lawyers"><h2>WTF Intel Lawyers</h2><div class="videoblock stretch"><video src="images/wtf.mp4" width="100%" height="100%" controls="">Your browser does not support the video tag.</video></div></section><section id="_only_dead_people"><h2>Only Dead People</h2><div class="videoblock stretch"><video src="images/deadpeople.mp4" width="100%" height="100%" controls="">Your browser does not support the video tag.</video></div></section><section id="_gpl_or_bsd"><h2>GPL or BSD?</h2><div class="videoblock stretch"><video src="images/both.mp4" width="100%" height="100%" controls="">Your browser does not support the video tag.</video></div></section></section>
<section id="_category_a"><h2>Category A</h2><div class="ulist"><ul><li><p>Can bundle software and can depend on</p></li><li><p>Doesn’t add any restrictions above and beyond what the Apache License 2.0 does</p></li><li><p>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</p></li></ul></div></section>
<section id="_category_b"><h2>Category B</h2><div class="ulist"><ul><li><p>Probably can’t include in a source release</p></li><li><p>Contain some restriction of use</p></li><li><p>May be able to use the binary form to limit the chance of corruption</p></li><li><p>Common license include:<br />
Common Development and Distribution License (CDDL), Eclipse Public License (EPL), Mozilla Public License (MPL), Creative Common Attribution (CC-A)</p></li></ul></div></section>
<section id="_category_x"><h2>Category X</h2><div class="ulist"><ul><li><p>Can’t depend on</p></li><li><p>Can’t bundle software</p></li><li><p>A few exceptions for build tools and optional dependencies</p></li><li><p>Common Category X include:<br />
GPL, LGPL, CC non commercial, JSON, BSD 4 clause, Apache 1.0?</p></li></ul></div></section>
<section id="_binary_distributions"><h2>Binary Distributions</h2><div class="ulist"><ul><li><p>Not considered an official release</p></li><li><p>Need to comply the same way with policies as source distributions</p></li><li><p>LICENSE and NOTICE may be different as the content of the release is often different from the source release</p></li></ul></div></section>
<section id="_what_been_covered"><h2>What Been Covered</h2><div class="ulist"><ul><li><p>Apache Incubator</p></li><li><p>The Apache Way</p></li><li><p>Releases</p></li><li><p>Community</p></li><li><p>Licenses</p></li></ul></div></section>
<section id="_questions"><h2>Questions?</h2><div class="paragraph"><p>Ask now, see me after the session, or email me, Your Name at Your email.</p></div></section>
<section id="_useful_links"><h2>Useful Links</h2><div class="ulist"><ul><li><p>Legal previously asked questions<br />
<a href="https://www.apache.org/legal/resolved" class="bare">https://www.apache.org/legal/resolved</a></p></li><li><p>Incubator release process (DRAFT)
<a href="http://incubator.apache.org/guides/releasemanagement.html" class="bare">http://incubator.apache.org/guides/releasemanagement.html</a> <br />
<a href="https://incubator.apache.org/guides/release.html" class="bare">https://incubator.apache.org/guides/release.html</a></p></li><li><p>Assembling License and Notice How To<br />
<a href="http://www.apache.org/dev/licensing-howto.html" class="bare">http://www.apache.org/dev/licensing-howto.html</a></p></li></ul></div></section>
<section id="_useful_links_cont"><h2>Useful Links (cont)</h2><div class="ulist"><ul><li><p>Apache Maturity Model<br />
<a href="http://community.apache.org/apache-way/apache-project-maturity-model.html" class="bare">http://community.apache.org/apache-way/apache-project-maturity-model.html</a></p></li><li><p>Legal mailing list archive<br />
<a href="http://mail-archives.apache.org/mod_mbox/www-legal-discuss/" class="bare">http://mail-archives.apache.org/mod_mbox/www-legal-discuss/</a></p></li><li><p>Legal JIRA<br />
<a href="https://issues.apache.org/jira/browse/LEGAL" class="bare">https://issues.apache.org/jira/browse/LEGAL</a></p></li></ul></div></section></div></div><div class="footer"><div class="left"></div><div class="right">Licensed under the Apache License, Version 2.0.<br>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</div></div><script src="reveal.js-3.7.0/lib/js/head.min.js"></script><script src="reveal.js-3.7.0/js/reveal.js"></script><script>// See https://github.com/hakimel/reveal.js#configuration for a full list of configuration options
Reveal.initialize({
// Display controls in the bottom right corner
controls: true,
// Display a presentation progress bar
progress: true,
// Set a per-slide timing for speaker notes, null means none
defaultTiming: null,
// Display the page number of the current slide
slideNumber: false,
// Push each slide change to the browser history
history: false,
// Enable keyboard shortcuts for navigation
keyboard: true,
// Enable the slide overview mode
overview: true,
// Vertical centering of slides
center: true,
// Enables touch navigation on devices with touch input
touch: true,
// Loop the presentation
loop: false,
// Change the presentation direction to be RTL
rtl: false,
// Randomizes the order of slides each time the presentation loads
shuffle: false,
// Turns fragments on and off globally
fragments: true,
// Flags if the presentation is running in an embedded mode,
// i.e. contained within a limited portion of the screen
embedded: false,
// Flags if we should show a help overlay when the questionmark
// key is pressed
help: true,
// Flags if speaker notes should be visible to all viewers
showNotes: false,
// Global override for autolaying embedded media (video/audio/iframe)
// - null: Media will only autoplay if data-autoplay is present
// - true: All media will autoplay, regardless of individual setting
// - false: No media will autoplay, regardless of individual setting
autoPlayMedia: null,
// Number of milliseconds between automatically proceeding to the
// next slide, disabled when set to 0, this value can be overwritten
// by using a data-autoslide attribute on your slides
autoSlide: 0,
// Stop auto-sliding after user input
autoSlideStoppable: true,
// Enable slide navigation via mouse wheel
mouseWheel: false,
// Hides the address bar on mobile devices
hideAddressBar: true,
// Opens links in an iframe preview overlay
previewLinks: false,
// Theme (e.g., beige, black, league, night, serif, simple, sky, solarized, white)
// NOTE setting the theme in the config no longer works in reveal.js 3.x
//theme: Reveal.getQueryHash().theme || 'apache',
// Transition style (e.g., none, fade, slide, convex, concave, zoom)
transition: Reveal.getQueryHash().transition || 'linear',
// Transition speed (e.g., default, fast, slow)
transitionSpeed: 'default',
// Transition style for full page slide backgrounds (e.g., none, fade, slide, convex, concave, zoom)
backgroundTransition: 'fade',
// Number of slides away from the current that are visible
viewDistance: 3,
// Parallax background image (e.g., "'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg'")
parallaxBackgroundImage: '',
// Parallax background size in CSS syntax (e.g., "2100px 900px")
parallaxBackgroundSize: '',
// The "normal" size of the presentation, aspect ratio will be preserved
// when the presentation is scaled to fit different resolutions. Can be
// specified using percentage units.
width: 960,
height: 700,
// Factor of the display size that should remain empty around the content
margin: 0.1,
// Bounds for smallest/largest possible scale to apply to content
minScale: 0.2,
maxScale: 1.5,
// Optional libraries used to extend on reveal.js
dependencies: [
{ src: 'reveal.js-3.7.0/lib/js/classList.js', condition: function() { return !document.body.classList; } },
{ src: 'reveal.js-3.7.0/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'reveal.js-3.7.0/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'reveal.js-3.7.0/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
{ src: 'reveal.js-3.7.0/plugin/zoom-js/zoom.js', async: true },
{ src: 'reveal.js-3.7.0/plugin/notes/notes.js', async: true }
]
});</script></body></html>