Tuesday, February 10, 2009

Choosing a Free License and Free Open Source Project Hosting

Here are some notes I sent to Jeremy locally that I thought I'd share about starting an open source project.

Choosing a License for Your Open Source Project

I found that using the name of the development team instead of individuals or current workplace will save everyone a lot of trouble with updates, especially if you choose to include the license on every file in the code. Replace XXXXXXXXXXXXXX with something like "(Name of project) Development Team" without the quotes or parentheses. Here is the BSD license I use (for 2009 at least):
Copyright (c) 2009, XXXXXXXXXXXXXX All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the XXXXXXXXXXXXXX nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The latest BSD license: http://www.opensource.org/licenses/bsd-license.php See also: http://en.wikipedia.org/wiki/Free_software_licence According to the MIT license wikipedia entry these are the differences between BSD and MIT licenses:
The MIT License is similar to the 3-clause "modified" BSD license, except that the BSD license contains a notice prohibiting the use of the name of the copyright holder in promotion. This is sometimes present in versions of the MIT License, as noted above. The original BSD license also includes a clause requiring all advertising of the software to display a notice crediting its authors. This "advertising clause" (since disavowed by UC Berkeley[5]) is only present in the modified MIT License used by XFree86. The MIT License states more explicitly the rights given to the end-user, including the right to use, copy, modify, merge, publish, distribute, sublicense, and/or sell the software. A 2-clause BSD-style license used by FreeBSD (and preferred for NetBSD) is essentially identical to the MIT License, as it contains neither an advertising clause, nor a promotional use of copyright holder's name prohibition. Also similar in terms is the ISC license, which has a simpler language. The University of Illinois/NCSA Open Source License combines text from both the MIT and BSD licenses; the license grant and disclaimer are taken from the MIT License.
from http://en.wikipedia.org/wiki/MIT_License So if you want the dev team for feeder be associated with endorsements, the MIT license might work better. I'm sorry that this is an incomplete listing and comparison of licenses, but those were just the two (BSD and MIT) that we were talking about. I'm not a legal expert, and we basically use BSD on projects because that was something friendly to one of the developers (Raju Kadam) I was working with at Cisco on the CSUM project.

Open Source Project Hosting

For OSS hosting, check out Kenai. JRuby is hosted by Kenai, and notable others are ActiveRecord JDBC, and Alice (I think the latter is used by Carnegie Mellon, mostly, but that in itself says something). Kenai use is not spreading very quickly, from what I've seen. Only 169 projects are there now compared to ~230,000 at sourceforge and 7,234 at RubyForge. Probably that is because it isn't well publicized, and they may not be able to handle the load of a ton of projects, so it may be a good thing that they are small. I think that all three (Kenai, RubyForge, Sourceforge) have their merits, Kenai because of Jira, RubyForge because of potential to get more exposure in Ruby dev community (since the project in question was developed in Ruby by Jeremy), and SourceForge is never a bad choice. Note that I'm not a fan of SourceForge's tools from the 2 projects I have there, but many really big projects are hosted there, so they can't be that bad. I'd just rather that they used Jira and Confluence instead of Trac, their built-in task management system, and Wikispaces. A word of warning with SourceForge + Subversion + IDea. Their SVN gave me problems for doing file renames and moves of directories. I've lost files using IDea+svn with it :( . That might have just been me, but I have only had trouble with their SVN and not the 3-4 other instances I've used in the last two years. Also, getting setup in SourceForge and understanding how to do things like upload, update your sf project website, and host maven2 repo files is not easy and took some time. I very much appreciate SourceForge's free project hosting though, and if I knew exactly what the issue was with SVN, I'd try to fix it. It might just be me. And a lot of people like Trac (Apple uses it for their development project tracking and documentation). Maybe by the time you read this Trac will get better than Jira and Confluence, but I kind of doubt it. In their defense, Jira and Confluence are not free for sites as big as theirs.

No comments: