Defining Open Source

“If you want to contribute to a source controlled project, you contact the developers and obtain write access. […] 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.”

Ummmm…sorry to burst your bubble, but if you want to contribute to an existing open-source, VCS controlled project, you nearly always email (unified) diffs to an existing developer. If you contribute useful patches regularly for a while, say, 6 months, and the patches are consistently good and hardly ever need changes before they go in, then you might get write access to the repo.

However, in some cases you’ll still be expected to send your diffs to at least one other developer before check-in for a cursory review, just to make sure you weren’t going to do something dumb by mistake. But, at this point, you’ll probably also start to get patches mailed to you for review, either from other new (or part-time) contributors, or from other devs with write access who can now send their patch to you for their cursory review.

But getting write access to the repo to start contributing? Nuh-uh. Doesn’t work like that.

I don’t know about the NUnit guy’s opinion, but I do know that Bill gates has absolutely no problem with taking BSD licensed code and putting it in proprietary software, and not releasing changes back to the community.

So I’m not entirely sure why taking open soruce code, adding features, and re-licensing as closed source could possibly be a problem - it seems like established Microsoft behaviour. And it’s even entirely legal.

Even with the evil-commie GPL, the copyright owner can re-license at will. Existing licenses are still valid, but the copyright owner’s new work is still legally licensed on its own terms. Which, of course, is why it’s important to manage contributors - because if you have 500 people contribute a line of code each they still own their line even if they have licensed it, and only the owner can re-license.

As John said above, I think you are being a bit unfair to the NDoc project, and relying in Chris Nahr’s opinion rather than fact.

NDoc was GPL licensed and the source was freely available on SourceForge. As I understand it, Kevin’s ‘NDoc2’ was a separate code-base and I doubt he had the inclination or ability to prevent anyone else contributing to the original project; there was at least one other SF admin and a dozen or so registered developers with CVS access!

In many cases projects are maintained and managed by only a small ‘cabal’ of programmers. If these people leave, then sometimes the project will stop. Other times the project will be taken up by a new group - I believe this was the case with NDoc; the original developers left, and Kevin and Don picked up the torch and ran with it. Sadly, when they called it quits no-one else did the same…

I looked briefly at the MS community license, and basically it’s a GPL-like copyright grant, along with a patent grant for the specific code. Doesn’t look too bad, IMHO, the main objection is the preamble:

“This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.”

…which I don’t think has any legal basis, and (from an FSF viewpoint) the fact that it is easily subverted for proprietary projects, since it applies on a file-by-file basis.

@Adam: Don’t worry, no bubbles bursted. I am not under the illusion that OS projects are like the Wikipedia. As I said, whether you and me get access is some other matter. A particular dev team might be very stingy about their “initiation rites”, or “nearly every” team might be so (what’s that about emphasizing “always” just after “nearly”, btw?), however, my point was entirely different.

If you have a project, version control is a must-have.

If you have a VC system, making it accessible over the net is so trivial that I cannot imagine why anybody would keep their VCS confined to their private network (he says, and adds after a dramatic pause: “for their OS projects”).

Those who criticized Jeff’s requirement made it sound like it was unreasonable (somebody even said “ridiculous”), whereas having a public repository IS The Reasonable Thing™ to do.

I don’t see it as Jeff trying to redefine the OS concept. He was simply putting forward a sensible requirement for where his money would be going.

As a long-time .NET OS developer, I feel deeply ashamed that my project is even mentioned in this thread.

Referring back to some of the key phrases in the a href="http://www.codinghorror.com/blog/archives/000894.html"original post from June 25/a, it appears that all of the publicly stated goals have been conveniently forgotten:

“open source projects are treated as second-class citizens in the Microsoft ecosystem”

hmmm… I now see specific .NET OS projects singled out and treated worse than second class citizens

“Many highly popular open source projects have contributed so much to the .NET community, and they’ve gotten virtually no support at all from Microsoft in return.”

rather than acknowledging the contributions, I see the program sponsor actually publicly undermining the value of specific projects.

“Open source software is at its best when you aren’t obligated to do anything at all other than use it.”

totally agree… so why did you change your mind?

“given the disappointing lack of official support for open source projects in the Microsoft .NET ecosystem, it’s time for us to band together and do something about it.”

I love the use of the word “us” in this phrase. I now understand that its time for “us” to behave as individuals and alienate as many projects as we can.

If the program sponsor had certain .NET OS ‘favorites’ from the beginning, why not just give them the money, rather than trying to further splinter the already fragile .NET open source community? It appears that the title of this site ( ‘Coding Horror’ ) has taken on a whole new meaning lately. Thanks for nothing.

Re: Shaun Walker on July 11, 2007 04:05 PM

Why is everyone getting in such a hissy over this? If nothing else, the coding horror community came together to create a huge list of GREAT open source .Net projects and raise awareness of the variability in open source licenses.

While this particular gesture may not be .Net Open Source’s silver bullet as some make it out to be (and others bash for it not being), the gesture has opened a dialog and further raised awareness of .Net Open Source.

Also, Shaun, if you’d like to remove DotNetNuke from the list, there is nothing stopping you. The spreadsheet is open to the public for editing.

If the program sponsor had certain .NET OS ‘favorites’ from the beginning

I’m trying to make sure projects that use the term “open source” actually are-- the final result will be determined by popular vote.

I don’t have any favorites. I’m not clear why you think this is true. Can you elaborate?

hmmm… I now see specific .NET OS projects singled out and
treated worse than second class citizens

I assume by “specific .NET OS projects” you mean DotNetNuke. I don’t think it’s fair to imply that Jeff is intentionally singling out DNN to be ineligible.

As I wrote in a comment to Joe Brinkman’s blog (http://blog.theaccidentalgeek.com/archive/2007/07/11/re-defining-open-source.aspx)
if you read carefully, the criteria Jeff chose are meant to be easily verified and meant to filter out projects in which the code is never released, or in which there is no real community.

This is not to say that one person projects can’t fit the technical definition of “open source”, just that he wants to benefit projects with a decent community. After all, he’s putting up his own money.

I assume you take issue with criteria #2

The project must use a commonly available method of public source
control.

This would seem to rule out DNN. However, in my view, this appears to be the law of unintended consequences at work, not some sort of exclusionary tactic initiated by an underground cabal seeking out DNN’s demise.

DNN quite obviously meets every reasonable definition of a successful Open Source project on .NET. It has one of the largest, if not the largest community for a .NET open source project. If any project deserves an exemption from that criteria, it would be DNN. And in fact, it was added to the spreadsheet.

Again, I can’t speak for Jeff, but my assumption is that rule was not meant to weed out DNN, but to weed out half-assed projects that have no real community around them.

@Jeff

I think the problem is that you said “how do you tell if something that calls itself “open source” is really open source?”.

In the context of this and your other posts about your donation I guess what you mean to say is “what do the rules of this particular donation consider Open Source” but I think it is just as easily read as, well, “What is a really real open source project”. The difference, I would say, is that the former should not be upsetting to someone who consider themselves an OS project but don’t meet all your requirements, whereas the latter might be.

But assuming you meant the former, I still think you could have been more clear on the wording, perhaps in calling it an “Open Source Community Effort” (or something) donation rather than an “Open Source Project” donation, because that does seem to be the thing you are hoping to reward?

For the purpose of your donation, I think it is a fine idea that you focus on projects with a thriving community around them. But for a definition of what’s really open source, I’d say a community isn’t a requirement at all. To me, open source means that I get access to the source code, period. What I am allowed to do with the source code comes down to the particular open source licence, of course, and the whole “different flavors of free” discussion comes into play. But it can be open source even without being free in any sense at all, beer (my favorite sense) or otherwise. And it can certainly be open source without having any community, or accepting commits. The developer can have been dead for twenty years and I’m the first downloader in fifteen years - if I (legally) get the source code it is open source. Simple as that.

Now, I don’t think anyone could argue that something could be open source if you didn’t get to see the source code. Thus it feels safe to suggest that the requirement “You get to see the source code” isn’t just my personal opinion on a necessary requirement for what constitutes open source. But from there on, I think any additional requirements you throw on to the heap have to be largely of the personal opinion type. That means that when posting questions as “what is really open source” it doesn’t hurt to be extra careful in also clearly marking the scope, as in “what is open source to me” or “what is open source to this donation”.

But probably rewording to “what is a thriving Open Source Community to this Open Source Community donation” would be even better.

@Ishmael

“If you have a VC system, making it accessible over the net is so trivial that I cannot imagine why anybody would keep their VCS confined to their private network (he says, and adds after a dramatic pause: “for their OS projects”).”

Perhaps because they don’t want their little home server slashdotted should the project suddenly become popular? Setting up a subversion server turns out to be so easy even I can do it. For a long time I kept my OS projects on a server in my home, giving access over VPN to the other committer and uploading zips with the source to a public site whenever some unit tests would look greenish if looked at through the right eye of a pair of green-red 3D glasses. I agree with you that it is simple to flip the public bit on your VCS if it is already on some real host like sourceforge or berlioz (where we now keep our source) but I think I can’t be the only one with an OS project that started on some private VCS server? And sure, moving the files to a public VCS may be easy enough, but, well, you know, it’s that whole “you have to come up with a project description” stuff to go through before you get to check in your project on those public hosts…very uninviting! :wink:

I see two distinct types of Open Source - the Open Source application and the Open Source project. The short definitions are in my view:
Open Source Application - one can have access to the code but changes,fixes and improvements are strickly controlled by a central control
Open Source Project - one can have access to the code and the project develops via community input of changes, fixes and improvements - the central control is only there to facilate the community input and distribution of the changes,fixes and improvement.

Under these definitions DNN ( which is an excellent product) falls under the open source application definition. There are good arguments for why DNN should have these strick controls but because of these in my view it is not a true open source project. This of course also applies to a number of others ‘projects’

John Salmon

Still good ?
I’ve ideas and I prefer Microsoft development technologies.
And I know open-source business well.

If you have to get the lawyers involved in your “free” software debate, then you’ve already undermined your cause.

Jeff laid out his definition for us. He didn’t specify GPL, or GPL “compatible”, or whatever other Communist never-profit-from-this-software-ever guidelines the FSF has put out. He just said that there has to be a public, active repository of code, so that it helps advance our craft. It does not necessarily have to advance the cause of “free software”.

It’s pretty easily inferred in this post that the Four Freedoms are a nice-to-have, and that rigid adherence to all four principles is not strictly required.

(And no, I’m not affiliated with any project on the list, nor do I care who gets nominated.)

Give Umbraco (http://umbraco.org/) money on the condition that they use it to go platform neutral (they currently don’t run on Mono and require SQL Server) :slight_smile:

The OSS world needs a good CMS (without being required to use a specific platform, IMO).

As someone else stated, there are many portions of Mono that are written in C# (it is a large project). There is also Monodevelop, which is alive and kicking.

a fairly elegant agreement with jeffs restrictions
a href="http://jrwren.wrenfam.com/blog/2007/07/09/re-defining-open-source/"http://jrwren.wrenfam.com/blog/2007/07/09/re-defining-open-source//a

Jeff Atwood asked:
“Is a project truly open source if it only has one developer? Is a project truly open source if it has a cabal of three developers who summarily ignore all outside suggestions and contributions?”

Felix Ple#351;oianu answered:
“If it has an OSI-approved license, I think it is. After all, if the authors don’t take contributions, you can always fork the project. And if the authors get pissed, point them to their own license. It’s as simple as that.”

My $0.02:
There’s a difference between an open source project and an open source project worthy of Jeff’s and Microsoft’s financial backing. Felix is correct on the former, but it’s perfectly reasonable for Jeff to set additional criteria for the latter.

Ross

Dario Solera asked:
“What’s the difference between checking-out the source code from SVN (or whatever) without being able to submit changes, and downloading a ZIP file containing the latest build?”

The difference is that with a source control system, you can always get the most recent code. Past history has shown that the download-the-ZIP technique leads to release-focused availability rather than up-to-the-moment availability.

“Anyway, we (ScrewTurn Wiki) have a private SVN repository, … but we upload a nightly build every night, for both the current (2.0.x) and next (2.1) versions.”

Good for you. That’s not as common as you might think, though.

Ross