-
Notifications
You must be signed in to change notification settings - Fork 727
Description
In the "Read-Me" file's license section, there is seemingly conflicting and/or confounding information to that found in the OmiSharp migration issues/announcements, both of which still seem otherwise incomplete or inaccurate versus themselves in the first place: whereas the migration issues state clearly that the extension named ms-dotnettools.csharp "remains open-source" with "no changes in licensing", implying that the extension is entirely MIT-licensed, and always has been, the "Read-Me" seemingly rebuts this by saying that the "Microsoft C# extension" is case-licensed based on VS subscription, but then immediately counters this by saying that the "extension" found in this repository is open-source, as bounded, rights-wise, by the MIT source license. This is INCREDIBLY confusing to me.
It almost seems like the normal use of the ontological concepts relevant for the apt description of the licensing of these license- and otherwise-commingled extension-software products and sources are simply flouted for the sake of referring to everything as the damn "extension" lol. Either way, to me, Microsoft's intended semantics are fairly opaque.
As such, in reading all the relevant morsels I found, I see a few possible interpretations of the licensing for products produced of the source code held in this repository. They follow.
-
The extension product itself, as listed in the marketplace, is closed-source and VS- case-licensed, with this code being MIT-licensed and roughly able to produce an extension with similar likeness but which is importantly not said product, and thus is not bounded, use-rights -wise, by VS case-licensing.
-
The extension product itself, when listed in any marketplace, is closed-source and VS- case-licensed, with this code being MIT-licensed and roughly able to produce the aforementioned extension product, but in a configuration simply lacking some components found in the one listed on the official VS marketplace, and is thus still bounded, use-rights -wise, by VS case-licensing, thereby also limiting its use only to the official VS marketplace.
-
Any extension product produced with this source code is bounded, use-rights -wise, by VS case-licensing, with this code being MIT-licensed.
-
Any extension product produced with this source code is bounded, use-rights -wise, by VS case-licensing, but only so long as it is similar, in formal and/or functional likeness to the extension product listed in the official VS marketplace as produced by this source code, in such a way and at such a level as determined by Microsoft, with this code being MIT-licensed.
I'm not sure if I've missed some; nor if its actually just perfectly clear to most people, with this being an unintentional clarity nit, whose fix isn't fit to that much more aptly communicate the nature of the licensing of this project. I'm also not a lawyer.
To me, the reason this is relevant to the proper functioning of this project, whether outwardly noticeable or not, is that the reuse permitted by virtue of the source license appears limited by obstruction of the end-product license; meaning, for example, that, were someone to make a derivative product of this source code with substantial or aggressively non-substantial modifications, as applicable for their intent with said derivative product, which they may then list on the official VS marketplace, would it be counterfeit?
Here are some concrete examples:
-
I inhibit, if present, call-home code and VS detection, then run a build and submit that to the VSCodium store, such that someone could, but does not need to, integrate it with VS- case-licensed technology. The extension's outward identity stays overtly intentionally intact to the greatest extent possible.
-
I do the above but submit it to the VSCode marketplace under different ids:
ms-dotettools.cshap,bs-dotnettools.csharp,bs-dotettools.cshap, and15-dollar.wal-mart.shoe. -
I make an IDE called BSLode, add a VSCode interoperability layer, and add an unmodified built version of the extension to the BSLode Ordure (marketplace equivalent).
-
above but with the
ms-dotettools.cshapexample, and its predecessor. -
above 2, but I edit the extension such that the API calls are now for BSLode.
-
I make a BSLode extension that uses the source code of the extension to do the exact same things it does now, but slightly repackaged or fixed up. Same identity.
-
above for VSCode.
-
above 2 but my own debugger.
-
Any of all of these but with a custom identity of "CSharpener".
-
above but it's "E-Smash Language Tools".
-
above but it's "Scribble".
These may all seem arbitrary, but I wrote them with the intent that they be affected in some way by the product license here.
Sorry if this is super verbose and long-winded! Was written hastily on my phone, so didn't really edit.
Also no need to necessarily answer all of the queries implicit here, was just trying a showcase the relevant effects of the main question of code-product rights.