Upcoming license change to AGPL v3 #180
paulirwin
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
For the 4.0 release, I am going to be changing the license to AGPL v3 from MIT. Read on for rationale, details, and what this means for you.
Rationale
Supporting an open source project is hard. It takes a lot of time and energy, and as the years go on and the project grows, it just gets harder and harder. Some people in my position on other projects have done a "rug pull" and completely revoked the OSS license, or revoked it for companies making over i.e. $1M (as if that's a ton of money nowadays), in order to fund the development of the project. I am not going to do that. (However, I do have GitHub Sponsorship available if you want to contribute back.)
Meanwhile, I recognize that there is a risk in keeping this MIT-licensed, especially in this AI era, that all of my work that I'm providing to the community for free could be commercially adopted without compensation back. There might be companies using or selling this library without contributing anything back (sponsorship or code). AI has just made this easier to achieve, as an agent could wholesale copy this repo and embed it in a commercial app in minutes.
I want this project to not only be free and open source software (FOSS), but to achieve the spirit of FOSS as well. And that is that you're welcome to use this work commercially, but under AGPL, you must provide not only a license notice with your app that includes it, but the source code and the source of any modifications you made to it must be made publicly available under the same license as well. Unique to AGPL (over i.e. GPL), you also have to abide by this if you use this over a network, such as in a web application. This license change prevents anyone from quietly embedding it in a commercial product, with or without modifications. They must give credit back to the community and make the modifications available for reintegration into this project. You can still use it commercially! You just have to follow the rules.
I believe strongly in open-source, and I believe it is still viable. If anything, it's more viable now in this AI era. We just need to protect it rather than give up on it. That's why I'm choosing to lean in and go with a stronger open-source license, rather than rug-pulling or giving up.
Details
All changes up to the license cutover before the 4.0.0 final release will still be MIT-licensed. The 3.0.0 release will be the last binary release that is MIT licensed. Anyone that must use a MIT license can stay on that version (as long as .NET supports it), or adopt the source changes up to the license cutover commit.
Starting at the license cutover commit for source, or the 4.0.0 published release for binaries, the license will be AGPL v3, including all source and binary forms on GitHub, NuGet, or otherwise. All contributions from that point forward will be AGPL v3 licensed.
What this means for you
If you just use JavaToCSharp as a CLI or GUI tool on your local machine, this means basically nothing will change for you (as long as your organization does not prohibit such use). You can continue to use the tool either from the published binaries or compiled from source to translate your Java code to C#, even for commercial purposes, without attribution or disclosing source. I hope you'll consider GitHub Sponsorship, but it's not a requirement in any way.
The only way this impacts you is if you embed JavaToCSharp (either the library or one of the apps) in your application/platform, or use it as part of providing a network service (i.e. a web application that does the translation by executing JavaToCSharp under the hood, even in binary form). In this case, you must follow the AGPL rules, and disclose the source (including any modifications you made, which must be under the same license) as well as license/copyright notice. And if you use the core library i.e. as a NuGet reference, you're definitely in scope. See choosealicense.com for more details.
Other open source projects that embed JavaToCSharp are allowed to do so with the same license rules, even if the embedding project is not AGPL v3 licensed. This license does not require the project using JavaToCSharp to change their license in any way (a common misconception about GPL-family licenses); just to provide the source to any modifications under the same AGPL v3 license.
I recognize that this might cause some headaches with corporate users and FOSS license scanners flagging this change during an SBOM audit, even if not distributed or used in a network application. I apologize for any inconvenience this may cause. But I hope you understand and agree with (or at least sympathize with) the rationale above for why I must do this. If you need a commercial license or support, please reach out to me. No potential commercial arrangements will impact the availability of this product under the AGPL v3 license for the community.
Thank you!
Thanks for your patience and cooperation in this transition, and let's all do our part to protect and support open-source projects like this one!
All reactions