-
-
Notifications
You must be signed in to change notification settings - Fork 87
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
dict-en-gb has become GPL preventing cspell updates #1709
Comments
I understand the issue about GPL. It is very sticky. Which is why I try to keep everything MIT. There are a couple of things going on here.
Because of the loose coupling described in 2, CSpell does not need to be GPL. Depending upon your use case, that might also be true. For more in depth support, please use the contact information at Street Side Software. |
Thanks for your reply. LGPL would not solve the issue for me but I cannot speak to if that'd make a difference to anyone else. I am completely blocked from installing It sounds like as long as any dictionary has a GPL license (or anything GPL-like) we won't be able to upgrade |
I might be able to change it so that the dictionary is an optional install. To give me a better idea, what is your use case for |
We just use it to check code during development. I have filed for an exemption with my legal team for using this GPL code given the nature in which it is used, but it'll still be a pain as someone will need to file a new exception for every new version of this package. My intent with filing this report was to make sure you were aware of the impact of this which it sounds like you already are, which is good. If there is a way this can be solved, and I can be of any help, do let me know. I am a huge advocate for everyone using cspell at my company and it is definitely going to be a harder sell now that it is more difficult to install.
While selfishly I think this would be great, I can see how this would be confusing for most people given that all other dictionaries are bundled. I am a big fan of consistency so I'm curious if it'd be better to have dictionaries act like plugins (think like Webpack, Rollup, ESLint, etc). Where whenever you include one in your config, you have to install that dictionary too. If that is the pattern for all dictionaries then it'll be far less confusing. And I'm sure there could also be a "omni-dictionary" dependency that would include all of them like the current behavior. This would also have a nice side benefit of reducing the install size. I know I only use a very very small fraction of the included dictionaries. |
Dictionaries are plug-in style. To add German @cspell/dict-de-de - npm:
|
Ah I guess I was focused on the dozens of programming languages that were included by default but didn't consider the human languages. I wonder if that plug-in approach would be good for all dictionaries? So out of the box And thank you for the rapid turnaround on the optional gb dictionary! ❤️ |
Oh and I realized I was wrong about being able to lock the version of |
Would you please try |
I'm testing this on a non-work project where I can see what gets installed. I removed the
This is with NPM v7 BTW which is why there is a It's also interesting that This seems to be an issue with NPM v7 (see here) but apparently has been fixed. I'll try it out on another machine with NPM v6 and report back. Interesting to know, but not directly related to this issue. |
Actually that NPM issue might be important as it says to not include a dependency in both If I run it with We could go with an approach of making all of the dictionaries |
I'll roll back to the v1 version of |
I have published |
Thank you so much for this and the incredibly fast turnaround. :) |
Please let me know if it fixes the issue. |
I'll definitely let you know when I am able to test it. Due to license scanning requirements, all packages are delayed by a week or so before we are able to install. But it looks good on paper so I'm pretty confident it'll work. I'll report back late next week when I can confirm. |
@CreativeTechGuy, |
LGPL has most of the same issues as GPL. If a library is allowed to be used that has some specific legal requirements around bundling/minifiying there's a chance that some team will miss that requirement and accidentally minify the code or bundle it in some way. Both of which are prohibited under LGPL. They are erring on the side of caution to ensure that no one can accidentally use code in some way that would be illegal. Even if something like |
@CreativeTechGuy, I'll close this for now, since I rolled back the change. |
I was finally able to install cspell 5.10.1 successfully. Sorry for the daly in response, there were tons of unrelated issues due to npm's CouchDB upgrade. 😑 Thanks again for your help! |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Info
Kind of Issue
Which Tool or library
Which Version
Version:
@cspell/dict-en-gb
2.0.1,cspell
5.9.1Issue with supporting library?
OS:
version:
N/A
Bug Description
Describe the bug
@cspell/dict-en-gb
has become GPL and is not a modular part ofcspell
. Therefore if an organization cannot use GPL libraries, this effectively makes all ofcspell
impossible to use as one dictionary has a less permissive license.I understand that the
cspell-dicts
is a separate repo, but the change there directly affects the legality of usingcspell
as a whole since it is not modular.To Reproduce
cspell
as it is missing a required dependency@cspell/dict-en-gb
Expected behavior
I see a few possibilities to fix this:
en_GB
which is MIT licensed so all of cspell can stay MITcspell
dictionaries optional peer dependencies so an end user can choose to install only the dictionaries that they want/need. This will make it more cumbersome to use but will give a way to avoid certain dictionaries that have less permissive licenses.Screenshots
N/A
Additional context
This was introduced via this commit in an effort to change the underlying dictionary dependency
cspell.json
N/A
Example Repository (Optional)
N/A
The text was updated successfully, but these errors were encountered: