@@ -34,23 +34,23 @@ ifdef::IANAL[]
3434* I’m not a lawyer, and nothing on these sides is legal advice
3535* Occasionally I get things wrong
3636* My understanding has changed over time
37- * Sometimes it’ s complex, and there’ s more than one “right” answer
37+ * Sometimes it' s complex, and there' s more than one “right” answer
3838* I’m a volunteer and not paid to do this. Not even by my day job
3939* This talk contains my views and may not represent the incubator as a whole
4040endif::[]
4141
4242== What is the Apache Incubator?
43- * Where communities come to learn the Apache Way
44- * Likes existing projects with a community around them
4543* Main entry point for new projects
44+ * Where communities come to learn the Apache Way
45+ * Links existing projects with a community around them
4646
4747== Why we Have an Incubating Process?
48- * Podling follows the Apache Way
4948* Ensure donations comply with the Apache 2.0 license
5049* Podling follows the ASF structure of contributors, committers and PMC members
5150* Podling grants more responsibility via meritocracy
5251* Ensure that decision making is done in the open
5352* People act as individuals, not the company they work for
53+ * Podling learns to follow the Apache Way
5454
5555== The Apache Way
5656* Charity - For the public good. Software costs nothing
@@ -65,27 +65,43 @@ endif::[]
6565* Business friendly - can be used for commercial projects
6666* Requires source headers, a LICENSE and (optionally) a NOTICE file
6767* If your are not an ASF project:
68- ** You don’t need to publish the source
69- ** You don’t have to give back to the project
70- ** You don’t need to ask for permission to use
68+ ** You don't need to publish the source
69+ ** You don't have to give back to the project
70+ ** You don't need to ask for permission to use
71+
72+ [.notes]
73+ --
74+ Policy and social requirements on top of license
75+ --
7176
7277== State of Play
7378include::projectstats.adoc[]
7479* {podlings} projects in the incubator
7580* {IPMCs} IPMC members (but not all are active)
7681* Projects usually stay around 2 years in the incubator
77- * A dozen or more successful releases a month
78- * About 70 % of releases pass the incubator
82+ * A dozen or so successful releases a month
83+ * About 80 % of releases pass the incubator
7984
8085== Source Releases
8186* Must be cryptographically signed
82- * Must have an incubating disclaimer
87+ * Must have an incubating disclaimer (there's two now)
8388* Have LICENSE and NOTICE file that follow Apache policy
8489* Follow licensing terms of any 3rd party bundled software
8590* 3rd party files are compatible with the Apache license
8691* Source files have ASF headers
8792* Contain source code and no compiled code
8893
94+ == Work in Progress Disclaimer
95+ * Less strict and your release may not comply with ASF policy
96+ * Must still be legal
97+ * You can list known issues
98+ * Issues noted must be fixed before graduation
99+
100+ [.notes]
101+ --
102+ Lets you get on with making release and moving towards graduation
103+ --
104+
89105== Incubator Vote Process
90106* Podling creates a release candidate
91107* Vote on dev mailing list until 3 +1 votes and more +1 than -1
@@ -95,6 +111,11 @@ include::projectstats.adoc[]
95111* If vote fails need to make a new release candidate
96112* Can release once vote passes and 72 hours pass
97113
114+ [.notes]
115+ --
116+ 72 hours is a guideline. In fact most "rules" are guidelines.
117+ --
118+
98119== Why Your Release May Get a -1
99120* Unexpected binary in the source release
100121* Includes Category X licensed software (usually GPL)
@@ -105,35 +126,42 @@ include::projectstats.adoc[]
105126* Contains encryption software
106127
107128== Representative Voting
108- image::VoteData.png[votedata,500]
129+ * About 80% of releases pass
130+ * Slight improvement on past years
131+ * Work in progress disclaimer will change this
109132
110133== -1 is Not a Veto
111134* Release votes need 3 +1 votes and more +1 than -1 votes to pass
112135* Only IPMC votes are binding but good to take notice of other votes
113136* People can change their minds and vote again
114137* People can put up conditional votes
115- * That being said a -1 vote is often for a good reason
138+ * A -1 vote needs a good reason
116139
117- == It Doesn’ t Have to be Perfect
140+ == It Doesn' t Have to be Perfect
118141* Incubating projects are not expected to get it right the first time
119142* May not be familiar with policy at the start
120- * Policy doesn't cover all situations
121- * Different projects may do things in different ways, policies are in most cases guidance
143+ * Policy an guidelines doesn't cover all situations
144+ * Different projects may do things in different ways
122145* A release containing no surprises is a good thing
123146
124147== Make it Easy to Review
125- * Don’ t make people have to think hard about it
148+ * Don' t make people have to think hard about it
126149* Provide well-named artefacts
127- * Don’ t try to be smart with licensing or headers
150+ * Don' t try to be clever with licensing or headers or rat exclusions
128151* Include compile instructions in the release
129152* Make it easy to compile
130153
131154== There's Not One Right Answer
132155* Documentation can sometimes be confusing and sometimes out of date
133- * Some cultural knowledge isn’ t well documented
156+ * Some cultural knowledge isn' t well documented
134157* Large IPMC and some differing opinions on what is “correct”
135158* Often multiple ways to solve the same issue
136- * If in doubt err on the side of caution - often changes needed are minimal
159+ * If in doubt err on the side of caution, often changes needed are minimal
160+
161+ .[.notes]
162+ --
163+ Again guidelines not rules. You can do things in a different way.
164+ --
137165
138166== Top Level Projects As Examples
139167* Policy changes over time / may be out of date
@@ -148,7 +176,8 @@ image::VoteData.png[votedata,500]
148176* Use sha256 or sha512 for hash
149177
150178== Disclaimer
151- * Best to put in a file called DISCLAIMER
179+ * Two different disclaimers
180+ * Put in a file called DISCLAIMER or DISCLAIMER_WIP
152181* Could also be in README
153182
154183== Tagging
@@ -158,7 +187,7 @@ image::VoteData.png[votedata,500]
158187* Note that git tags can be changed so provide hash in vote email
159188
160189== Licensing
161- * Seems where a lot of the issues occur
190+ * This is where a lot of the issues occur
162191* Observed some reluctance to understand
163192* Language barrier to even those who speak English
164193* Can be complex
@@ -169,9 +198,15 @@ image::VoteData.png[votedata,500]
169198* Apache policy adds a little more:
170199** Need to have NOTICE file
171200** List all licenses in LICENSE (even if it's not required)
201+ ** Respect 3rd party licenses and headers
202+
203+ [.notes]
204+ --
205+ Last is more a social convention, ask permission even if the license allows use.
206+ --
172207
173208== Developers vs Licensing
174- * We’ re not the only people who have difficulty or frustration with licensing
209+ * We' re not the only people who have difficulty or frustration with licensing
175210* Apache projects tend to be on average a lot better!
176211* External projects often:
177212** Have unclear licenses
@@ -192,9 +227,9 @@ video::deadpeople.mp4[]
192227video::both.mp4[]
193228
194229== Documentation Issues vs Errors
195- * It’ s better to have a documentation issue than a licensing error
230+ * It' s better to have a documentation issue than a licensing error
196231* Minor issues are OK to be fixed in the next release
197- * If you're unsure a license should be listed
232+ * If you're unsure a license should be listed list it
198233
199234== Universal Donor
200235* Give anyone confidence they can use our software without any legal issues
@@ -211,6 +246,7 @@ video::both.mp4[]
211246* When bundling software check to see what it contains
212247* In particular look for Category B and Category X software
213248* Look at photos or other resources like fonts that you may not have permissions to distribute or may be under another license
249+ * Check links in code
214250* Manual inspection is not always required but often a good idea
215251
216252== Rat
@@ -219,7 +255,7 @@ video::both.mp4[]
219255* Will not find double headers
220256* Will not check for multiple licenses in the same file
221257* Only knows about a few licenses
222- * Exclusions can be too wide and miss something
258+ * Often exclusions can be too wide and miss something
223259
224260== Rat Output
225261image::rat.png[]
@@ -228,31 +264,30 @@ image::rat.png[]
228264* One way is to use find and grep +
229265`find . -type f -exec grep -i "$1" {} \;`
230266* Search for common license names “GPL”, “BSD”, “MIT”
231- * Search for “copyright” piped to sort -u
267+ * Search for “copyright” and pipe to sort -u
232268* Compare between releases
233269
234270== Pesky JS files
235- * JS files, especial minified ones, are often missing license headers or license details
271+ * JS files, especially minified ones, are often missing license headers or license details
236272* Some license require full text to be contained somewhere
237273* Lots are under non-Apache licenses including GPL
238- * Other included other bundled software e.g. jQuery and Bootstrap
274+ * Other included other bundled software e.g. jQuery and Bootstrap
239275* Licenses change between versions
240276* Take care!
241277
242278== Other People’s Cat Photos
243279* Copy all the images! +
244280`find . -name "*.jpg" -exec cp {} images \;`
245- * View all images using OS or favourite image browsing tool
281+ * View all images using your OS or favourite image browsing tool
246282* If you find something that may be suspect:
247283** Look at image metadata
248- ** Google reverse image search
284+ ** Find it with a Google reverse image search
249285
250286== Troublesome Fonts
251287* Licensing around fonts can be complex
252288* Look at font meta-data
253289* Make sure you have permission to distribute
254- * As fonts are binary may not be evident to the reviewer how they are licensed
255- * You may want to make that clear in the LICENSE file
290+ * As fonts are binary may not be evident to users how they are licensed. You may want to make that clear in the LICENSE file
256291
257292== License File
258293* License file named LICENSE or LICENSE.txt in the root directory
@@ -268,9 +303,9 @@ image::LICENSE.png[]
268303* Keep year up to date
269304* Only add what is needed
270305** Relocated copyright notices
271- ** Required notices from bundled Apache software notice files
306+ ** Content from bundled Apache software notice files
272307** All other required notices
273- * In general licensing info shouldn’ t be in the notice file
308+ * In general licensing info shouldn' t be in the notice file
274309
275310== Notice file
276311image::NOTICE.png[]
@@ -280,24 +315,24 @@ image::NOTICE.png[]
280315* Advertising clauses (but are probably category X)
281316* Link to the source / how to get original
282317* State changes made
283- * Not copyright notice
318+ * Are not copyright notices
284319
285320== Category A
286321* Can bundle software and can depend on
287- * Doesn’ t add any restrictions above and beyond what the Apache License 2.0 does
322+ * Doesn' t add any restrictions above and beyond what the Apache License 2.0 does
288323* Common licenses include: +
289324Apache License 2.0, Apache License 1.1, 2 or 3 clause BSD (without advertising clause), MIT/X11, W3C, Unicode, CC copyright only
290325
291326== Category B
292- * Probably can’ t include in a source release
293- * Contain some restriction of use
327+ * Probably can' t include in a source release
328+ * Contains some restriction of use
294329* May be able to use the binary form to limit the chance of corruption
295330* Common license include: +
296331Common Development and Distribution License (CDDL), Eclipse Public License (EPL), Mozilla Public License (MPL), most Creative Common licenses
297332
298333== Category X
299- * Can’ t depend on
300- * Can’ t bundle software
334+ * Can' t depend on
335+ * Can' t bundle software
301336* A few exceptions for build tools and optional dependencies
302337* Common Category X include: +
303338GPL, LGPL, CC non commercial, JSON, BSD 4 clause, Apache 1.0?
@@ -309,12 +344,12 @@ GPL, LGPL, CC non commercial, JSON, BSD 4 clause, Apache 1.0?
309344
310345== Headers
311346* All Apache licensed source files should have an ASF header
312- * Don’ t include a copyright line
347+ * Don' t include a copyright line
313348* Use correct header
314349
315350== Can Compile From Code
316351* Helps to have clear instructions on how to in the release
317- * If it doesn’ t work on a platform, please note that
352+ * If it doesn' t work on a platform, please note that
318353* If you need to install a 3rd party component to get it to compile, please note that
319354* Make it easy to compile
320355
@@ -323,13 +358,13 @@ GPL, LGPL, CC non commercial, JSON, BSD 4 clause, Apache 1.0?
323358* Showing how to assemble LICENSE and NOTICE
324359* Github with explanation and check-in step by step showing changes +
325360https://github.com/justinmclean/ApacheWombat
326- * Short screencast (5 minutes) video of assembly +
361+ * Short screen cast (5 minutes) video of assembly +
327362https://vimeo.com/171210141
328363
329- == Wombat Walk Through
364+ === Wombat Walk Through
330365* Get boilerplate LICENSE and NOTICE files via curl
331366* Get NOTICE file to correct copyright and year
332- * Add Bootstrap’ s MIT license to LICENSE
367+ * Add Bootstrap' s MIT license to LICENSE
333368* index.html contains HTML shiv which is dual licensed MIT/GPL
334369* Add HTML shiv MIT to LICENSE
335370* index.html depends on Respond.js and jQuery but not bundled
@@ -346,16 +381,16 @@ https://vimeo.com/171210141
346381* Unexpected binary files in the source release
347382* Contents of LICENSE and NOTICE files
348383* Source and binary have same LICENSE and NOTICE
349- * Release not in the correct place
350- * Missing DISCLAIMER
351384* Missing headers
352- * Issues missed due to Rat exclusions
385+ * Issues missed due to Rat exclusions
353386* Issues missed due to automation
387+ * Missing DISCLAIMER
388+ * Release not in the correct place
354389
355390== Binary Distributions
356391* Not considered an official release
357- * Need to comply the same way with policies as source distributions
358- * LICENSE and NOTICE may be different as the content of the release is often different from the source release
392+ * Need to comply the same way with ASF policies as source distributions
393+ * LICENSE and NOTICE may be different as the contents of the release is often different from the source release
359394
360395== Where to Ask for Help
361396* Ask on your mailing lists
@@ -367,15 +402,16 @@ legal-discuss@apache.org
367402
368403== The Incubator is Broken
369404* Every few years this comes up, I don't think it is, but like most things, it's not perfect
370- * It does add a lot of value for a relatively small amount of work for those involved
405+ * It adds a lot of value for a relatively small amount of work for those involved
371406* Follow the general list and see what issues incubating projects do/don't run into
372407* We could do with more help. Get involved! You don't have to be an ASF member
373408* We need more people reviewing releases and helping improve documentation
374409
375- == How can we improve?
410+ == We're here to help +
411+ How can we improve?
376412Please email the incubator mailing list at: +
377413general@incubator.apache.org
378- We’ re happy to talk about it. Perhaps a bit too much :-)
414+ We' re happy to talk about it. Perhaps a bit too much :-)
379415
380416== Questions?
381417Ask now, see me after the session, or email me, Your Name at Your email.
0 commit comments