> On 9 Jan 2016, at 5:48 AM, Slow Joe <slow.joe....@gmail.com> wrote:
> 
>> Forming a podling is difficult as if often starts with a team  that
>> hasn't necessarily chosen to work together. I bet the situation > would
>> have been very different if you guys had been able to meet in
> 
>> person,
> 
>> but in email that's quite hard.
> 
>> -Bertrand
> 
> 
> Hi Bertrand
> 
> I observed the meltdown of the Corinthia podling from a distance with some
> regret.
> 
> Since the project is now on the verge of withdrawal from the incubator,
> could you and Dennis consider whether it would be valuable to collaborate
> on a blame-free post-mortem describing the events which lead to the end of
> Corinthia.
> 
> (A template for a postmortem document is at
> https://lastbytes.wordpress.com/2013/01/15/a-postmortem-template/)
> 
> I would suggest that there are lessons for the Apache Project to learn from
> this event.
> 
> Regards
> 
> Joe


I just realised I’m still subscribed to the dev list for Apache Corinthia. 
After we left ASF, I decided not to comment further on the situation (feeling 
it was easiest just to walk away) - but since there’s been a request for a 
post-portem, and it’s been a few months now and I’ve had a chance to calm down 
a bit, I figured I’d offer my thoughts.

(Disclaimer: I am not a lawyer; what I’ve written below regarding licenses and 
ASF policies is my own understanding, which may or may not be accurate. I 
welcome corrections or clarifications)

There were a number of issues that lead to the project’s exit from Incubator, 
mostly relating to personal disagreements between project members, which I have 
no desire to revisit, especially not in public. Ultimately it was those issues 
which triggered our exit (when I say “our” or “we” here, i refer to the subset 
of project members who were actively involved in development). However, one 
important factor which really killed things for us was the inability to use Qt.

Corinthia was envisaged as a combination of libraries for translating and 
editing word processing & office documents (the first 50% of the project), and 
a desktop + web application providing an editor usable by end-users (the second 
50% of the project). We planned to produce two different editors - one which 
ran as a regular native desktop app on Windows, Linux, and OS X - and the other 
which could operate in the browser. The desktop app was the main priority, 
however.

To do a cross-platform desktop app, and to do it properly, it’s necessary to 
use a suitable UI toolkit which provides all the necessary functionality. As it 
turns out, the only viable candidates we were able to identify (Qt and GTK, 
with wxWidgets and fltk as less desirable fallback options) are all licensed 
under the LGPL. For most open source projects, this would be no problem - LGPL 
and ASLv2 are compatible with each other, in the sense that you can distribute 
software combining the code from the two licenses without problems; doing so 
just means that users of the software are bounds by the terms of both licenses.

We very quickly settled on Qt as the toolkit of choice, on technical grounds. 
It seemed to us to be the most mature, feature-rich, and best designed library 
of the available choices, and some of us had already used it on other projects 
in the past. However, even if we had chosen one of the other libraries, the 
outcome would have been the same.

The ticking time bomb, as we discovered several months in, was the 
disconcertingly-named “Category X list”, described at 
http://www.apache.org/legal/resolved.html (under "Which licenses may not be 
included within apache products?”). This lists several licenses, including the 
LGPL, regarding which it states:

"The LGPL is ineligible primarily due to the restrictions it places on larger 
works, violating the third license criterion. Therefore, LGPL-licensed works 
must not be included in Apache products.”

When I (and some others) on the project read this, we did not see it as a 
problem. We were not distributing any LGPL-licensed code, but merely writing an 
application conforming to an API whose only currently-existing implementation 
is licensed under the LGPL (there are commercially-licened versions of the 
library as well, for those who want them).

It all hinges on the phrase “included within” - I do not consider a third-party 
library, that is not distributed as part of an ASF release, to fit within that 
definition, according to my understanding of the English language (and I’m a 
native speaker). However, the relevant ASF policy makers have a different 
interpretation. It’s extremely subtle - basically the policy equivalent of an 
OpenSSL bug.

So once we learnt about this, 50% of the project was basically off the cards. 
We were told that not only can source code for an app that uses the Qt APIs not 
be included in an official Apache release, but that it should not even exist in 
the git repository as a piece of example code demonstrating how to use our 
other libraries.

One somewhat unsettling aspect of discussions I observed was that they were 
predicated on the assumption that the project should be done as an ASF project, 
and thus following ASF rules. Anything that deviated from the rules was 
immediately rejected on this basis. Now, that’s fair enough - we agreed to be 
part of the organisation, and rules should be followed. But one thing that was 
never seriously considered, until fairly late in the piece, was whether the 
project really belonged at ASF in the first place. Eventually, we concluded the 
answer was no.

For what we were trying to achieve, and the ways in which we were going about 
it, it turned out that ASF was not an appropriate choice of venue. There were 
several other things I felt were unreasonable - the inability to accept pull 
requests from anyone without first asking them to sign a CLA, the prohibition 
against binary distributions of support libraries for convenience of building, 
and the constant deference to the pseudo-religious “Apache Way” (which I still 
haven’t seen a coherent explanation of, despite the very long “What is the 
Apache Way?” thread on this list just a few months ago).

The big takeaway from my experience, in terms of suggestions, is to make it 
*very* clear on both the incubator website, and impressed upon anyone 
considering joining incubator, exactly what can and cannot be done in within 
the context of an ASF projects. Without this, I expect there to be more people 
coming away from incubator with really bad experiences, and disliking ASF as a 
result, such as the author of this article:

http://www.futurealoof.com/posts/apache-considered-harmful.html

I would make priority #1 clarifying what “included within” actually means, 
closely followed by more generally revising the rules surrounding license 
restrictions and others, so they don’t require extensive study and debate 
before it can be determined whether or not a given project is possible to do 
within ASF. While “You cannot write cross-platform desktop apps at ASF” is 
probably a little too strong (technically speaking, you could use your own 
dedicated cross-platform toolkit like OpenOffice does, or a web app wrapper 
like Electron), stuff like this needs to be made really, really clear right 
from the beginning, before large amounts of time are invested in podlings that 
later discover themselves doomed to fail from the start.

The most important lesson I learnt is to not get attached to any one particular 
organisation for a project. GitHub is a popular choice for many projects, and I 
don’t consider there to be anything wrong with moving a project there if it 
turns out to not fit within ASF’s rules and policies. That’s what we did with 
Corinthia (http://corinthia.io).

[Unfortunately, there hasn’t been any further progress on the project since the 
move, but that’s due to unrelated reasons (some people left, others like myself 
have been to busy with other things to devote time to it). I’ve recently 
finished up a contract though and now have some spare time on my hands, so I 
hope to try and get it re-started soon.]

Most importantly, working on GitHub or a similar hosting site gives a project 
team complete freedom to operate how they want. ASF espouses the mantra 
“community over code”, but in reality it’s “restrictive policies over community 
over code”. My experience has been that if it’s necessary to destroy (or rather 
“jettison”) a community or project in order to ensure such a policy is 
enforced, then the tradeoff is worth it.

I don’t think that’s a healthy way of doing open source in 2016.

--
Dr. Peter M. Kelly
pmke...@apache.org
http://www.kellypmk.net/

PGP key: http://www.kellypmk.net/pgp-key <http://www.kellypmk.net/pgp-key>
(fingerprint 5435 6718 59F0 DD1F BFA0 5E46 2523 BAA1 44AE 2966)

Reply via email to