On Mon, Apr 6, 2009 at 12:15 PM, Luke Kanies <l...@madstop.com> wrote: > > Hi all, > > I fear this discussion will quickly devolve into a recursive flame- > fest, but it needs to be broached, so here we go. Note that I kind of > think this is more of dev topic than users, but I want to make sure > everyone knows the conversation is happening and can easily > participate. This is also likely to be the first of a series of > conversations I'll be starting to try to paper over the lack of > organization and process we've had in the past. > > First, I want to be clear that this is me seeking your input - we > haven't decided on anything, and I'm starting this thread so we have > the necessary data to make a decision. We have to be conscious that > Reductive Labs is a commercial company, though. My development of > Puppet and the money I make around it feeds my family and keeps us > housed, allowing me to focus on it full time. > > I think our focus on building community stands on its own, but the > contributor list is an equally clear indication that being paid to > work on Puppet results in a lot more work being done on Puppet - of > the top ten Puppet contributors (http://www.ohloh.net/p/puppet/contributors > ), 5 have been paid by their companies to do the work, and 4 have been > paid specifically by Reductive Labs (me, Andrew, Rick, and Ben/ajax). > One of my goals in this discussion is to figure out the best way to > pay more people to work on Puppet, by having enough money to hire > them. (Incidentally, I should be posting a job description for a full- > time programmer at Reductive Labs this week.) > > Finally, if you have concerns about this topic that you don't feel > comfortable voicing publicly, feel free to contact me directly. > > So: > > We've never done a very good job of having much of a licensing or > copyright strategy for Puppet and the tools around it. While all of > the projects have a license, there's no documentation on how to > maintain the license (e.g., whether every file should have a license > header), and there's a bit of confusion around the license itself > since Puppet's current license file says 'GPL2 or later'. > > As to copyright, we're *pretty* good at maintaining that, especially > since we switched to Git, since everyone who commits has their email > address recorded with the commit, but we don't have an official > project policy published anywhere one way or another, and we just > haven't been tracking copyright. > > For both the project and my company, I think we need to develop > complete policies around these two topics, and then spend time > actually maintaining them. > > Given that we have a license but no policies or history around it, I > think it's worth revisiting the basics, and assessing what's best for > the project. I expect that Reductive Labs would fund any work that > needs to be done to enact these policies, but as always, I'll do what > I can to encourage community involvement. > > I think there are essentially two decisions to make, with some details > around them: > > 1) Should we use a completely open Apache-style license, or a > reciprocal/viral GPL-style license? > 2) Should we require copyright assignment of any kind? > > Going with those questions, we have two priorities: > > 1) Maximize ability to grow and sustain a community > 2) Enable Reductive Labs to increase its funding of development > > This second point is important to be obvious about - like Pixar > (http://www.nytimes.com/2009/04/06/business/media/06pixar.html > ), we make money so we can write software, and Puppet clearly needs > more development time than we're spending on it right now. There are > further tools beyond Puppet that we also want to create, but we need > enough developer manpower to be able to do so. > > I expect this point to be the biggest source of contention, so all I > can really say is, Reductive Labs isn't suddenly morphing into an anti- > community commercial vendor who uses open source for marketing but > doesn't actually believe in it. I'm asking *you*, right now, how we > can tune our licensing and copyright policy to best meet your needs. > If that doesn't satisfy you, I'll be glad to fly out and discuss it > with you for $5,000 USD per day. :) > > Really, though, one of my other goals here is to be more transparent > about how Reductive Labs hopes to make money and continue funding > development. Many people in the community are curious on this front > for many reasons, and I think it's important it be clear. > > Here is some reading on this subject, to kind of set the context: > > http://madstop.com/2009/02/28/the-most-freetm-way-to-make-money-from-open-source/ > (This article came out much more in favor than Open Core than it was > supposed to; the article was supposed to be a question, rather than an > answer.) > > http://blogs.the451group.com/opensource/2009/03/24/transparency-the-first-step-towards-open-source-participation-for-proprietary-vendors/ > > http://blogs.the451group.com/opensource/2009/04/06/on-the-importance-of-copyright-assignment/ > > http://www.knowledgetree.com/blog/company-driven-open-source-communities-copyright-assignment > > Fundamentally, I see three basic choices: > > 1) Leave them like they are. No copyright assignment, no real > copyright maintenance, GPL2 or later. This means that every > contributor ever must give permission for things like license changes, > we can't easily protect against license infringement > (http://www.gnu.org/licenses/why-assign.html > ), no one can ever dual license, and essentially no commercial > software can ever be produced that integrates with Puppet. > > 2) Stick to a viral/reciprocal license (probably AGPLv3) but require > Sun-style copyright contribution (which provides the project a non- > exclusive license to the copyright). This provides a single > organization with a license for all copyright, and allows that license > holder (Reductive Labs) to protect against license infringement, > provide patent indemnity (which I've already been asked about by > others but cannot currently offer), relicense Puppet (and produce > commercial software that integrates with that relicensed product), > and probably more. > > 3) Switch to a non-reciprocal license (e.g., Apache) and don't require > copyright coassignment. This allows anyone to do anything with the > code, so there's no real concern about license infringement and anyone > can make commercial add-ons. This is both good and bad, though, in > that even those with no commitment to Puppet's community could build > commercial products on it, which I think is not so great. > > After spending the last month thinking about it, and talking with many > people (e.g., Tarus Balog, Matt Asay, Marten Mickos, Mark Radcliffe, > and many more), I think #2 is the best option. It provides the best > combination of openness for the community and opportunity for > Reductive Labs. It hurts to say this, because I've always thought > copyright assignment was evil, but I've been convinced otherwise, > mostly by the links above and conversation with Tarus of OpenNMS. > > The problem I have with #1 is that is explicitly limits Puppet's > ability to integrate with other commercial software, which I think is > unfortunate and makes it hard to build Puppet into an ecosystem, > rather than just being a stand-alone tool. The problem I have with #3 > is that I have a hard time seeing how Reductive Labs can add more > programmers to the project with it. > > What do you think?
I wish I knew more about the issues at hand. I know that my existing knowledge as well as my intuition leads me to agree that option #2 is best for Reductive Labs and the Puppet community as a whole. On the other hand, I also know that the copyright assignment thing is going to make it more difficult for me to make contributions. Although I'm not a big contributor, I do have permission to spend time writing code for Puppet -- as long as that process only impacts my department, I'm likely to keep getting permission. Unfortunately, copyright assignment involves the legal branch of our company, who are typically clueless corporate-whore lawyers. Once they have to get involved, it is going to get ugly. I think other people at startups might face similar barriers to contribution. Thanks for keeping this process open, Luke, I hope people give you the credit you deserve for your efforts to make Reductive Labs be a community member rather than a corporate dictator. --Paul --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---