I have been using MS VS Code since a while now and I am I really loving it.
Although the other day I was having a discussion regarding editors with my mentor where he pointed to me this.

It's mentioned in the product license.

SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways.

It seems that the product is released under a different license and the source code is published under MIT license. I wonder why is that?

I quickly looked up a couple of popular open source editors to find that they are released under one MIT license (Product and sc).

Atom:

Atom is MIT licensed and the source is freely available from the atom/atom repository.

Brackets:

Brackets is released under the MIT License

It could be possible that I'm not understanding something here, but I was surprised to know VS code had different license for product and scource.

My specific questions are:

Is there a well-known business reason why Microsoft would offer the binary and source under such vastly different licenses?

Is it appropriate (within the norms of the open source community) for Microsoft to brand their proprietary-licensed binary as "Open Source" since it is based on a fully-buildable open source code base?

5 Answers
5

Why does Visual Studio Code have a different license than the vscode GitHub repository?
To learn why Visual Studio Code, the product, has a different license than vscode, the open source GitHub repository, see issue #60 for a detailed explanation.

When we set out to open source our code base, we looked for common practices to emulate for our scenario. We wanted to deliver a Microsoft branded product, built on top of an open source code base that the community could explore and contribute to.

We observed a number of branded products being released under a custom product license, while making the underlying source code available to the community under an open source license. For example, Chrome is built on Chromium, the Oracle JDK is built from OpenJDK [...] Those branded products come with their own custom license terms, but are built on top of a code base that’s been open sourced.

We then follow a similar model for Visual Studio Code. We build on top of the vscode code base we just open sourced and we release it under a standard, pre-release Microsoft license.

[...]

Here's how it works. When you build from the vscode repository, you can configure the resulting tool by customizing the product.json file. This file controls things like the Gallery endpoints, “Send-a-Smile” endpoints, telemetry endpoints, logos, names, and more.

When we build Visual Studio Code, we do exactly this. We clone the vscode repository, we lay down a customized product.json that has Microsoft specific functionality (telemetry, gallery, logo, etc.), and then produce a build that we release under our license.

When you clone and build from the vscode repo, none of these endpoints are configured in the default product.json. Therefore, you generate a "clean" build, without the Microsoft customizations, which is by default licensed under the MIT license [...]

The built version released under Microsoft's EULA, then, is a specific configuration of the open source code base.

When Microsoft says,

"Visual Studio Code is open source."

what they appear to mean is,

"Our offering of Visual Studio Code is built using an publicly-available code base that is licensed under an open source license. With the exception of branding and configuration values, this open source base is identical to the built software product we offer."

The only changes they make when building the binary (according to their claims above, anyway) is to utilize existing configuration options to add Microsoft branding and have network-based components within the editor use Microsoft network endpoints.

So VSCode and Visual Studio Code are different products. What a mess. I'm sticking with Mousepad.
– EMBLEMAug 11 '16 at 20:03

3

Great info there thanks. Although this further raises questions and it seems Microsoft is not right when it calls VS Code as open source. Free. Open source. Runs everywhere. is their tag line, may be they should do away with open source . And also I don't think so Google calls Chrome as open-source. @EMBLEM VS Code and VS Code - Open Source are two separate projects, where VS code is built on top of VS Code- Open-source
– rahil471Aug 12 '16 at 7:16

1

@rahil471 I can't speak for VS, but Google Chrome is almost open source. Google Chrome is built on top of a library, Chromium, which is open source. Many forks are based on Chromium which feel a lot like Google Chrome. One notable example is SRWare Iron.
– Zizouz212♦Aug 12 '16 at 19:32

so to make it crystal clear: I can fork and adjust and deploy my own version of VSCode, commercial or not ?
– xamiroFeb 10 '17 at 10:38

3

@xamiro Absolutely: vscode is under the MIT license. The subtlety discussed here is whether your VSCode fork could really fairly be called a fork of Visual Studio Code as well, which Microsoft calls "open source" despite it including proprietary tweaks on top to the MIT-licensed vscode base.
– apsillers♦Feb 10 '17 at 12:22

The binaries distributed by Microsoft are non-free. The source code, being released under the MIT license, is free software (or "open-source") as poorly called. If you downloaded and compiled the source code from GitHub, the resulting binary would be free. The binary's license doesn't matter so long as the source code carries the fundamental freedoms and provided that you can compile it to a binary with all the same functionality as the one that is being distributed.

A separate license for the binaries and source code is a common way for free software projects to make money: they release the source code under a free license and charge access for the binaries or prohibit their commercial use. GeoGebra, for example, publishes its source code under the GPL but forbids commercial use of its binaries unless you pay a fee. Debian and Ubuntu users (at least) receive a copy of it compiled from that GPL source, and they may use it for commercial use without paying a fee. However, this practice is pointless in the case of VSCode, because they're giving it away anyway.

If I'm understanding you correctly, then would Chrome & Chromium would be some-what similar to what we have over here as VS Code & VS Code Open Sorce. And if that is the case then is it appt for Microsoft to say "Free. Open source. Runs everywhere." and then place a download link to the official release including a link to their own licence and not MIT on their official website.
– rahil471Aug 11 '16 at 14:42

1

@rahil471 You're absolutely right. Although this theoretically applies to any project, it's especially true of Chrome and VSCode that we can never be sure that the source code we see is what we get in the binary provided to us. The action you describe is inappropriate only in the sense that all proprietary software is inappropriate. It's certainly a true statement (it's free of charge and the source code is under an OSI-approved license). And they do link to their GitHub page elsewhere on the site.
– EMBLEMAug 11 '16 at 14:49

Exactly, that's my concern, if we can never be sure that the source code we see is what we get in the binary provided to us. It simply seems the official binaries aren't open-source. Microsoft would have been correct if it says VS Code (Official) is built on top of VS Code Open Source (Which is an open source project in truth)
– rahil471Aug 12 '16 at 7:05

1

@rahil471 if you're concerned about the integrity of the executable, then simply go build it yourself from the source.
– RubberDuckAug 14 '16 at 15:09

Open source comes with a license. You can change it as you please by definition. If you release that version to other people as a compiled work then you have to release your source as well. You are free to provide your code back to the original author as well.

The above of course is based upon the license the copyright holder chooses to release code under. Gpl lgpl or bad Unix style licenses or creative Commons. It is varied

In this community "open source" means "in compliance with the OSI's Open Source Defintion". You are free to point out that you as a speaker can ascribe any meaning to any combination of words, but I wouldn't expect that to work very well when trying to communicate ideas to other people, especially when your assertion runs directly contrary to a specific, widely-understood definition in active modern use. this community uses "source available" to refer to code whose source code is available to read but not to use under the provisions required by the OSD.
– apsillers♦Aug 11 '16 at 15:53

1

I think it's fair to say that "you can look at the source" might be how Microsoft is using the term "open source" here, since they do not really identify as a member of the FOSS community (though considering they make the source available under an OSI-approved license, they might in fact intend "compliant with the OSD"), but you broadly assert that "open source" doesn't mean a particular thing simply sounds wrong to me -- I suppose we can agree that means different thing to different people, and one of the most widely-held and widely-known meanings is "compliant with the OSI's OSD"
– apsillers♦Aug 11 '16 at 16:00

4

That said, finally, I don't think anyone here ever intended to claim that "open source" means "free to use as you please". The two definitions in contention here are "free to look at the source" and "compliant with the OSD"
– apsillers♦Aug 11 '16 at 16:02

3

I think it's obvious that the asker is operating under a different definition of "open source" than how you would use the term. I think it's perfectly fine to answer, "Your confusion stems from the fact that Microsoft is not using 'open source' how you expect it to be used." However, this answer fails to even communicate with the OP's question because it doesn't acknowledge the existence of another meaning of "open source" beyond "source available." That unackowledged meaning is at the core of the question, so this answer-post doesn't even approach the question.
– apsillers♦Aug 11 '16 at 18:39

2

Ever since the term got hijacked by OSI and became the de facto definition, people who still use the old definition will always get downvoted whenever they point out the original meaning.
– syockitMay 20 '18 at 14:18