-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
Dual-Licensing Gutenberg: Should we keep some code GPL-only #29483
Comments
There are a few packages that make sense only in the WordPress core context, the web version which in theory could stay licensed as GPL:
Some that are deprecated or aren't used on production:
Some are tools that could as well be MIT licensed like:
there is more, I can provide the full list if necessary. |
If dual-licensing proceeds, we need to consider the code that was brought over to Gutenberg from WordPress core, then published as npm packages and consumed by core from npm. I'm thinking about packages like a11y, api-fetch, dom-ready, hooks, i18n, url, wordcount and probably others I am missing. For these packages, I feel like we would need to get approval from the original code authors for the code that was brought over from WordPress core. Have you looked at these code sources? |
Thanks for bringing this up @adamsilverstein. It is an issue we need to address for sure.
That is the preferred way to handle it. The only other options I see are to remove/rewrite those parts of Gutenberg or, if these parts of Gutenberg would only be needed when Gutenberg is used as part of WordPress, we might be able to create two Gutenberg releases: one would be a GPL-only Gutenberg-for-use-with-WordPress, and the other would be a dual-licensed Gutenberg-for-use-outside-the-context-of-WordPress, which would not contain any of the WordPress GPL-only code. The two release idea is really just an idea, I do not have a good sense for whether that would be possible or feasible, so getting permission from the previous authors certainly seems preferable. |
It seems that the next step is to identify all code that was brought over to Gutenberg from another repository (i.e., WordPress Core). That will allow us to make a decision about whether we are better off:
What would be the best way to identify this code that was brought into Gutenberg from somewhere else? |
Thanks for working on this @mchowning - it is a huge undertaking and I realize my bringing this up only complicates your work. I still felt it important to bring up because otherwise it could come back to cause much worse pain later when the omissions were discovered.
One idea would be to look at the earliest commits from the packages, you could then cross reference these code blocks with the core repo and use Git or svn to determine the original author there. This would be a good place to start: I believe that all or most of the packages introduced in this PR are code ported directly from WordPress core: You would then look for this code in core, where it was removed roughly around the same date (Jul 9, 2018). I would expect the git mirror to contain the correct attributions: https://github.com/WordPress/wordpress-develop One other approach would be to review the core trac tickets where packages were initially created by extracting core code: For example: https://core.trac.wordpress.org/ticket/45066 |
Can we safely assume that only javascript changes might have been copied from WordPress into Gutenberg? If so, that makes the search a lot easier. Any thoughts on this @adamsilverstein ? |
All of the packages I mentioned above are entirely JavaScript, so yes you can safely assume that for the packages I mentioned. I'm not aware of any other code that was imported. |
Noticed that stylelint-config-wordpress was copied into Gutenberg last year, but I don't think that's an issue for the dual-licensing because that code was MIT-licensed in the original repo, which liberally permits relicensing and is GPL-compatible. |
What problem does this address?
As part of the effort to dual-license Gutenberg under the GPL and MPL licenses, we may want to keep some of the WordPress specific modules GPL-only since they are unnecessary for any client using Gutenberg outside the context of WordPress.
Possible concern
This issue is for discussion of what code we want to keep GPL-only and how we want to accomplish that. In doing this, we need to ensure that there is a way to generate a bundle that is guaranteed to only have dual-licensed code (i.e., no GPL-only code). That bundle would be used by mobile clients and clients that are not WordPress-related.
The text was updated successfully, but these errors were encountered: