Skip to content

Commit 10a952f

Browse files
authored
Merge pull request #44 from justinmclean/IncubatorReleases
minor updater to Incubator releases (as given at ApacheCon NA 2019)
2 parents e5c9f67 + 5946173 commit 10a952f

3 files changed

Lines changed: 91 additions & 73 deletions

File tree

content/ApacheWay/IncubatorReleases/pom.xml

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -301,24 +301,6 @@
301301
</execution>
302302
</executions>
303303
</plugin>
304-
<plugin>
305-
<groupId>com.coderplus.maven.plugins</groupId>
306-
<artifactId>copy-rename-maven-plugin</artifactId>
307-
<version>1.0</version>
308-
<executions>
309-
<execution>
310-
<id>rename-slide-file</id>
311-
<phase>process-resources</phase>
312-
<goals>
313-
<goal>rename</goal>
314-
</goals>
315-
<configuration>
316-
<sourceFile>${project.slides.directory}/${project.main.contentfile}.revealjs</sourceFile>
317-
<destinationFile>${project.slides.directory}/${project.main.contentfile}.html</destinationFile>
318-
</configuration>
319-
</execution>
320-
</executions>
321-
</plugin>
322304
</plugins>
323305
</build>
324306
</project>

content/ApacheWay/IncubatorReleases/src/main/asciidoc/index.adoc

Lines changed: 89 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -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 its complex, and theres 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
4040
endif::[]
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
7378
include::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 Doesnt 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-
* Dont 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-
* Dont 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 isnt 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-
* Were 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[]
192227
video::both.mp4[]
193228
194229
== Documentation Issues vs Errors
195-
* Its 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
225261
image::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 shouldnt be in the notice file
308+
* In general licensing info shouldn't be in the notice file
274309
275310
== Notice file
276311
image::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-
* Doesnt 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: +
289324
Apache 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 cant 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: +
296331
Common Development and Distribution License (CDDL), Eclipse Public License (EPL), Mozilla Public License (MPL), most Creative Common licenses
297332
298333
== Category X
299-
* Cant depend on
300-
* Cant 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: +
303338
GPL, 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-
* Dont 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 doesnt 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 +
325360
https://github.com/justinmclean/ApacheWombat
326-
* Short screencast (5 minutes) video of assembly +
361+
* Short screen cast (5 minutes) video of assembly +
327362
https://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 Bootstraps 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?
376412
Please email the incubator mailing list at: +
377413
general@incubator.apache.org
378-
Were 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?
381417
Ask now, see me after the session, or email me, Your Name at Your email.

content/ApacheWay/IncubatorReleases/src/main/asciidoc/projectstats.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
////
2020
2121
:pmcs: 203
22-
:ipmcs: 298
22+
:ipmcs: 306
2323
:ipmc_chair: Justin Mclean
2424
:podlings: 48
2525
:members: 765
26-
:committers: 6962
26+
:committers: 7053

0 commit comments

Comments
 (0)