Introduce a Contributor License Agreement (CLA) #95
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When this is merged we (the OpenSWE1R maintainers) will add a requirement to sign a Contributor License Agreement (CLA) for all future PRs to this repository. We'll be using CLA assistant to enforce it.
The planned CLA can be found here.
Reasoning
Having a CLA is beneficial as it allows us to relicense contributions at a later time.
While this might sound scary to some, we feel that it is a necessity.
History has shown that Software re-licensing can be a complicated and lengthy process. It is often necessary because the original license is not suitable anymore or found to be invalid.
A good example is the GPL incompatibility of the Apple Appstore and similar platforms. If we want to release OpenSWE1R for iOS devices through the platforms official channels in the future, we'd have to make that particular release under another license (like the BSD or MIT licenses). However, we'd have to get permission from every contributor to do so.
Another issue could be compatibilty with platform specific APIs like the Steam "Steamworks" API.
Once multiplayer is implemented, people might also start making changes which won't have to be open-source (as the GPL intends) - switching to an AGPL license would protect us in such cases.
Use in other game engines such as Unity or Unreal-Engine might require the use of the LGPL.
What will change
Having a CLA allows us to change the license (and dual-license) in the future. The planned CLA will allow us to license all contributions "under the terms of any licenses the Free Software Foundation classifies as Free Software License and which are approved by the Open Source Initiative as Open Source licenses."
We won't have to contact people many years after they made their contributions. Instead, we ask for permission when the contribution is made.
Other people who would want to license OpenSWE1R differently will simply have to ask the maintainers, even when some of the original contributors would be hard or impossible to reach.
As legal stuff is boring (and scary), we've tried to keep the agreement as short as possible (We hope we did not accidentally invalidate the CLA in the process or added any new issues 😟 ).
The CLA does not require any personal information - just clicking a single button is enough for us.
The CLA is currently governed by laws of Germany, simply because that's where I (JayFoxRox), the projects founder, comes from. In the future, that might change to the US as more maintainers join the project.
We are currently not able to release OpenSWE1R under a non-GPL license anyway. Unicorn, one of our main dependencies, is licensed under the GPL. However, once the need for Unicorn is gone, we might want the option to release OpenSWE1R under a different license for reasons such as those stated above.
Also, we do not intend to switch away from the GPL in the foreseeable future. We just want the option of adapting a new license if the circumstances make it necessary.