Defining Open Source

T.E.D. - Um, yeah. I already pointed that one out. See footnote 6, which applies to footnote 4. They’ve not commented on MSs permissive[0] or reciprocal[1] licenses though.

[0] http://www.microsoft.com/resources/sharedsource/licensingbasics/permissivelicense.mspx
[1] http://www.microsoft.com/resources/sharedsource/licensingbasics/communitylicense.mspx

Please clarify whether the projects must be developer tools or not. In a previous post on this matter, many commenters were under the impression that they must be, but I don’t recall you saying such a thing.

Like others, I also have to question your stated requirements to be eligible. Public version control systems do not make a project more or less Open. In fact that requirement does not address any of the requirements identified by the OSI (http://www.opensource.org/docs/osd). The version control requirement seems to be an arbitrary requirement that is not in keeping with the generally accepted definition of what constitutes Open Source. Even a thorough reading of the Free Software definition does not support this restriction. In fact, I have not seen any definition of Open Source or Free Software that makes any distintion with how the software source code is made available. The requirement is clear - give people access to the source code and allow them to change it if they desire. No where do the generally accepted definitions say you have to release nightly builds, monthly builds, repository access or the like.

Where I really have a problem is that you say on one hand you are seeking to help projects that promote community and are in keeping with the spirit of Open Source, but then create requirements that would exclude a project like DotNetNuke which arguably has one of the largest and most active Open Source communities in the .Net space then it would seem that the requirements are not in line with the stated goal.

In the end it is your “program” and you have the right to determine which projects are eligible for awards, but if you are going to start out by trying to re-define Open Source then maybe you should pick a new term like “Jeff’s arbitrary project list that may include some Open Source projects”. Please don’t insult many of the great OS projects out there by claiming that they are somehow not a “real OS” project because they don’t meet your definition.

The project must be written in .NET managed code.

In other words you mean to say “i am a M$ lackey!” :stuck_out_tongue:

In other words you mean to say “i am a M$ lackey!” :stuck_out_tongue:

It’s his money and he is a .Net fan (and dev?) so that requirement is understandable, really

Everything* on there as of this moment now has a URL entered, at the very least- and about half have much more detail.

  • = Bar two exceptions where the title was either a typo, or too generic and just couldn’t be found on a search engine.

Jeff laid out his definition for us

He’s attempting to define what “open source” is, at least to him, which is a quite complicated matter.

whatever other Communist never-profit-from-this-software-ever guidelines the FSF has put out.

I understand that you hate the FSF and that you hate your own freedoms, but don’t say the FSF licenses are “never-profit-from-this-software-ever” license, because it makes you look really stupid.

He just said that there has to be a public, active repository of code, so that it helps advance our craft.

Which doesn’t make sense, you don’t need a public SCM repository to “advance your craft” or even to contribute.

He didn’t specify GPL, or GPL “compatible”, or whatever other
Communist never-profit-from-this-software-ever guidelines the FSF has
put out

Heh. The really funny thing about this comment is that its the Microsoft licenses that stipulate no commercial use. In fact, if “shared source” didn’t have this (Communist?) provision, they might be GPL compatable. Its the FSF that is fighting to retain your right to make money using the software, and Microsoft that is fighting against it.

Good Lord! All these conditions do not seem to make it very attractive for someone to contribute to the open source community.

As an engineer who works for an organization whose goal is to make money, I would support anyone that writes reusable code and licenses it out under GNU GPL. I look for code that gives me a good starting point to customize and include in my own products and I am happy to acknowledge it in my license agreement.

Good Lord! All these conditions do not seem to make it very attractive for someone to contribute to the open source community.

As an engineer who works for an organization whose goal is to make money, I would support anyone that writes reusable code and licenses it out under GNU GPL. I look for code that gives me a good starting point to customize and include in my own products and I am happy to acknowledge it in my license agreement.

Brook Monroe, you may want to try Bazaar (http://bazaar-vcs.org). I used to think like you, that no VCS is worth the hassle, but then I discovered this one. Shameless plug: see my June 30 blog post.

What about setting up a “scholarship”? Maybe something similar to the Google Summer of Code for college student.

Maybe putting some aside for a grant? Let it build up interest and dole out the money bi-annually?

T.E.D.:

Please note that Microsoft has several ‘Shared Source’ licenses. The ones that Jeff mentions - ‘permissive’ and ‘reciprocal’ (more correctly called ‘community’) do not restrict use of the software or derivatives to only non-commercial use. (MS also have ‘limited’ variants of these licenses that restrict use of the software or derivatives to Windows platforms only).

I’m not a licensing expert, but to me the ‘permissive’ license seems similar to the BSD license, and the ‘community’ (or ‘reciprocal’) license seems similar to the MPL. They have a patent claim poison pill clause that I believe is not in the BSD license, but the MPL has a similar provision.

It’s the ‘reference’ license that is basically read-only. Note that this license is far more restrictive than just disallowing commercial redistribution - it does not permit modification at all (commercial or not). It’s basically a look but don’t touch license.

I just wanted to make a brief comment on criteria #3, “provide public evidence that it accepts and encourages code contributions from the outside world”.

My CodePlex project has a relatively large user-base considering it is a very niche solution, but I have found most of my end-users contribute to the project not with code but with feature requests or bug reports, which I encourage and accept by implementing the feature or fixing the bug.

I would be ecstatic if I got more code contributors, but I am just as happy to have active end-users who may or may not be technically oriented but want to contribute to the project in other non-coding roles such as testers, documenters, etc.

I feel you may be making the the vetting criteria too narrow if you only look at ‘code contributors’. Projects can have an active community around them that demonstrates the projects commitment to encouraging and accepting outside feedback without having code contributors. In many ways I think how responsive you are to your community’s feedback is a better demonstration of “freedom to improve the program, and release your improvements to the public, so that the whole community benefits”.

I would hope you might consider these other types of commitment to community (like CodePlex’s discussion and issue tracking features) as just as valid as having a variety of people contributing code.

I think it’s somewhat of an overstatement to suggest that Mono is not written in .NET managed code. The Mono runtime is written in native code, of course, but the bulk of Mono is managed code. It’s not just the class libraries – even the compiler is written in C#.

http://www.mono-project.com/CSharp_Compiler

Perhaps it makes sense under these rules to nominate pieces of Mono, then – MCS, MCL, XSP, GTK#, …

I just put my online video editor project onto SourceForge and their system REQUIRED that I accept one of the OSI licenses, as well as include the source code (as a zip file) with each package distribution. There was no requirement to put the project in CVS or SVN, though I plan on doing that once someone expresses some interest in working on the code.

It’s silly though to say the project isn’t open source or free software until I do this - folks have access to the code and a license to use/change it. Since it’s an Actionscript project I’d actually be making it less ‘free’ by insisting they get the source from a repository, since few Flash programmers are familiar with these systems.

I think you may need to be flexible in your last requirement. A project may need your funding in order to get to a level that will attract a community.

All open source projects have this chicken-egg problem. You need to have an interesting, mostly working prototype to get people interested in joining the development community, and you need a development community in order to build up the project with any kind of rate of speed.

@Dario Solera all those who stemmed their arguments from Dario’s post:

The word he used was, as you also emphasized, “potentially”. This is a whole lot different than “optional.” If you want to contribute to a source controlled project, you contact the developers and obtain write access. Just the existence of a VCS provides this potential. Whether the devs grant access to you and me is another matter.

If you can “check out” the code in zip files, yes, that’s more convenient. And if you can “submit” your modifications to the dev team via e-mail, even with advanced methods such as unified diffs, well, that’s an old fashioned draaag, really.

I believe this requirement is not related to the project being open source, but the development environment of the project being more sophisticated. Even if you are writing an app by yourself for your own use, it is sensible to use a VCS. And if there is more than one (1) developer in any given software project, not to use a VCS is simply insensible.

I admit that ActionScript projects and the like may require additional tweaking over the standard VC procedures and the usage may get a little getting used to, but folks gotta somehow keep up, methinks.

If I remember correctly you had two different prize categories, one for emerging and one for established projects. How does the community/contribution requirements differ between the two? I’m just asking because it would seem that an emerging project would be more likely to have a small community. For example in my project (NBusiness) it’s been pretty much just me doing the checkin’s so far though I have had one other person do some checkins and a few other technical discussions that have directly influenced the features / changes in the code. Also, on the main wiki page there is an open call for developers even though no one has yet expressed much interest in contributing. I also haven’t had much exposure or advertising, I could probably do more of that. I’ve been spending too much time coding I suppose :wink:

I think you may need to be flexible in your last requirement. A project may need your funding in order to get to a level that will attract a community.

Yes, of course! The last criteria isn’t a white glove test; it’s just a check for basic evidence that the project actually follows through on community contributions in some way.

Compare with NDoc, which was “open source” in name only…