Minecraftforge: Upcoming license and CLA change: an FAQ

Created on 22 Jun 2016  路  10Comments  路  Source: MinecraftForge/MinecraftForge

As you all know, Forge is getting relicensed to a standard open source license, specifically LGPLv2.1. In tandem, Forge will also require all persons submitting PRs to sign a contributor license agreement (CLA).
This issue is a forum for people to ask questions about this, and why it is necessary.

Why relicense?
Because the previous license had no legal standing and it was not crafted by expert lawyers. As such, it was not likely to be an easy proposition to defend it in court, were that to be necessary.

When will the license take effect?
Forge for Minecraft Java edition 1.10 and forward will have the new license.

Why LGPLv2.1?
Because FML started out as LGPLv2.1 and it has the desireable copy-left property that anyone wishing to distribute a modified version must also make those modifications open source. However, as it is the _L_GPL it doesn't have the same infective properties as the GPL - your mods built using FML and Forge can be licensed however you wish.

Why not LGPLv3?
Because LGPLv3 has a patent retaliation clause. This may cause significant problems for many people who wish to distribute Forge, as well as potentially inviting a dangerous new angle of attack to our Microsoft overlords. In my opinion, although GPLv3 is a great license, and I (@cpw) use it in my mods, I believe this issue makes it inappropriately risky for Forge.

What is a Contributor License Agreement (CLA)?
A CLA is a legal document you "digitally sign" acknowledging our terms of contribution to Forge. Those are specifically outlined in CONTRIBUTING.md but I will reiterate them here:

  • You grant Forge a license to use your code contributed to the primary codebase (basically, everything under src) in Forge, under the LGPLv2.1 license.
  • You grant assign copyright ownership of your contributions to the patches codebase (basically, anything under patches) to Forge, where it will be licensed under the LGPLv2.1 license.
    Here's a useful wikipedia article.

Why do I need to sign a CLA?
Because it establishes the legal framework to have the Forge project "own" all the patches, rather than individual contributors.

Why does Forge need to own the patches?
Because individual attribution is impossible to track for the patches. The patches have been regenerated by machine many times, and the code has been tweaked and fixed for changes in the underlying game repeatedly and often. Tracking authorship and ownership of individual contributions is functionally impossible in this regime. Having them under central ownership negates this problem.

Does Forge own the rest of the code?
No. Your retain the copyright in your contributions outside the patches directory.

Why do I have to acknowledge the old license as well as the new one in the CLA?
There is going to be some inevitable cross-development between the 1.9.4 and 1.10 codebases of Forge. Contributors will need to acknowledge both old and new licenses to contribute, since 1.9.4 will be licensed using the old license, and 1.10 will be using the new license.

I have contributed in the past and have signed Issue 2789, do I need to sign the CLA?
Yes. Your first new contribution to forge will need to acknowledge the CLA, there will be no grandfathering of contributors.

I have an open pull request, do I need to sign the CLA?
Yes, your PR will not progress until the CLA has been signed.

Most helpful comment

You should now see an option to accept the CLA on any valid pull request..

All 10 comments

How does one sign the CLA prior to opening a PR? I haven't seen any wording describing that, and I can understand if that's still up for discussion internally.

The CLA mechanism is being put in place. Patience!

You should now see an option to accept the CLA on any valid pull request..

Just in case, and because I like seeing the number rise, you can sign the CLA here:
CLA assistant

Morning people. All my PRs are belong to you. (signed the CLA)

I've signed it as well now

Signed.
Best to do it now so I don't forget when I update my PRs for 1.10.

I don't know if my PR counts, since it only changes FML code, but I signed anyway

I don't know if my PR counts, since it only changes FML code, but I signed anyway

FML is part of Forge now. All contributions to Forge require the CLA to be signed.

Do all new files need the license preamble?

Was this page helpful?
0 / 5 - 0 ratings