Vscode: Menu license links to non Open Source license

Created on 18 Nov 2015  ·  20Comments  ·  Source: microsoft/vscode

I've just downloaded it:

Version 0.10.1
Commit df352367df2efcfa9d602d471e4e2f42140a0f05
Date 2015-11-17T15:21:23.766Z
Shell 0.34.1
Renderer 45.0.2454.85
Node 4.1.1

The license link points to _non Open Source_ license:
https://code.visualstudio.com/license#vscode

For example:

[...] users cannot opt out of data collection [...]
You may not
* work around any technical limitations in the software;
license

Most helpful comment

Thanks for the interest in this topic and I apologize for not commenting sooner, I’ve been on vacation and just getting through my backlog. Let me try to provide more details behind our thinking here.

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, Xamarin Studio is built on MonoDevelop, and JetBrains products are built on top of the IntelliJ platform. 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.

The cool thing about all of this is that you have the choice to use the Visual Studio Code branded product under our license _or_ you can build a version of the tool straight from the vscode repository, under the MIT 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 (note, i made this commit to help make this more clear).

I hope this helps explain why our Microsoft branded Visual Studio Code product has a custom product license while the vscode open source repository has an MIT license. Last, I apologize for the fact that the naming of “Visual Studio Code”, “VS Code” and the vscode repository are so similar, I think it contributed to the confusion.

Chris

All 20 comments

This is correct. VS Code the product has a different license than the code in the repository.

@chrisdias, could some clarification be added to that page?
Also, what's the difference between the product and the source code?
Please re-open this ticket.

So, If we get the code from the repo is OSS but if we get the executables they aren't, isn't it? It makes no sense at all :S

+1 to reopen and talk about this issue. I hope this is a 'bug' and not a decision because it makes no sense at all.

+1 to reopen it. This is not clear enough.

Thanks for the interest in this topic and I apologize for not commenting sooner, I’ve been on vacation and just getting through my backlog. Let me try to provide more details behind our thinking here.

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, Xamarin Studio is built on MonoDevelop, and JetBrains products are built on top of the IntelliJ platform. 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.

The cool thing about all of this is that you have the choice to use the Visual Studio Code branded product under our license _or_ you can build a version of the tool straight from the vscode repository, under the MIT 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 (note, i made this commit to help make this more clear).

I hope this helps explain why our Microsoft branded Visual Studio Code product has a custom product license while the vscode open source repository has an MIT license. Last, I apologize for the fact that the naming of “Visual Studio Code”, “VS Code” and the vscode repository are so similar, I think it contributed to the confusion.

Chris

@chrisdias Thanks for explaining.

It would be good to ensure any differences other than Branding / telemetry are clearly documented. At least we don't need to be concerned that this is a 'bait and switch' manoeuvre as the branded version is free :)

@SteveALee You can look at the product.json that is installed with the Visual Studio Code product to see what we configure.

Hah, of course. Thanks.

@erkinalp i'm not sure i understand the comment. what is the showstopper?

@chrisdias: It would be, but it is not now, i.e. a wish.

@chrisdias This distinction shouldn't be buried in an issue somewhere. The branding isn't changing, and the names (and abbreviations) everyone interchanges will forever perpetuate this licensing confusion. This needs to be content readily available from https://code.visualstudio.com/License. A blurb at the top with a link to the repo license would fix this for an increasing number of people.

Right now, if I pull up the VS Code license, I'm going to read it and think:

Microsoft does not distribute, license or provide any warranties for any of the third party packages.

Well that seems wrong. There's a Marketplace explicitly for distributing those extensions. What is this trying to say?

You may not: work around any technical limitations in the software

...so I can't fix something and make a PR? Because it'd be illegal.

You may not: remove, minimize, block or modify any notices of Microsoft or its suppliers in the software.

Does this mean I can't click cancel on an update? That minimizes a Microsoft notice.

You may not: share, publish, or lend the software, or provide it as a hosted solution for others to use, or transfer the software or this agreement to any third party

So I can't put the installer on a share? Sections 1 and 5 are in conflict as to what a user can do.

...we're all developers here. We all know this is confusing. Look at the laundry list of issues relating to this one linked in history. Can we please fix this with a small blurb of text at the top of https://code.visualstudio.com/License?

Hi @NickCraver,

Thanks for posting this suggestion. I can see how the product license can generate questions for developers wishing to contribute to the product.

As a result, I've updated the stable and insider pages to clarify that the license is for VS Code the product and that the source is licensed under the MIT license. The localized license pages will be updated as soon as I get the translations back.

Chris

Thanks Chris, that little blurb is a fantastic addition. I really appreciate you improving this!

Um, wouldn't this get less dupes if it was left open until such time as MS realizes that they can maintain their brand in a less confusing and contradictory manner?

Anyone who accepts that proprietary license is legally prohibited from contributing to this project. The license states: "You may not...reverse engineer, decompile or disassemble the software, or otherwise attempt to derive the source code for the software". Accessing this GitHub repository is an attempt to derive the source code for the software.

@chrisdias "You can look at the product.json that is installed with the Visual Studio Code product to see what we configure." Indeed we _can_, but are we permitted to? The Berne convention or your proprietary license would seem to apply and make anything in your product.json file copyrighted and forbidden to use, so we aren't allowed to just copy and paste it into ours. I searched through the source code with grep but couldn't find an example in this repository.

¿Can we modify the _product.json_ file on "Code OSS" without restriction acording to MIT License?

@jsolisu We can, but my point is that the product.json included in Microsoft's pre-built deb is governed by their proprietary license, meaning we are not allowed to copy its text into the MIT-licensed version and thus cannot use the extensions gallery while retaining our freedoms.

@chrisdias With all due respect, this sounds like an _argumentum ad populum_: since other companies are re-licensing their open-source apps under proprietary EULA's (case in point: Oracle, Google, and JetBrains), we should do it too. You distribute this software free of charge, and adding a custom look and feel and extension gallery doesn't seem to justify re-licensing it in this way. As a counterexample, both the source and binary distributions of Atom come with the package manager _and_ are released under the MIT License. What gives?

Was this page helpful?
0 / 5 - 0 ratings