community-platform
community-platform copied to clipboard
[devops] switch platform distribution to AGPLv3 license
Platform license to be changed to AGPLv3 to ensure that any systems built on top of or using community platform code also need to make their code available open source.
The GNU Affero General Public License v3 (AGPLv3) is a popular choice for projects that want to ensure their code and any modifications to it remain open source. Here are some of the benefits and limitations of using the AGPLv3:
Benefits:
-
Copyleft: AGPLv3 is a strong copyleft license, meaning that any project that uses or modifies your code must also be distributed under AGPLv3. This helps to ensure the ongoing openness and free use of your code.
-
Network Protection Clause: One unique feature of AGPLv3 is that it includes a provision that covers the use of the software over a network. This means that if someone modifies your code and uses those modifications in a network service (like a web application), they must also release their modified code as open source. This is a stronger requirement than the GPL, which does not have this network protection clause.
-
Patent Clause: The license includes an explicit patent clause, granting rights to any patents held by contributors that are necessary to use the software.
-
Compatibility: AGPLv3 is compatible with many other licenses, including the GPLv3. This means that AGPLv3-licensed software can be combined with GPLv3 software into one larger program.
-
International and Timeless: Like all GNU licenses, the AGPLv3 is designed to be legally valid around the world, not limited to any specific nation or time period.
Limitations:
-
Potential Limit on Adoption: Because of its strong copyleft provisions, some organizations, particularly those that develop proprietary software, may be hesitant to use or contribute to your project because they would be required to open source their own code if they distribute or use your software over a network.
-
Enforcement: While the AGPLv3 provides strong protections, enforcing these protections can be challenging. It requires vigilance from the copyright holder(s) to monitor for potential license violations and may necessitate legal action to resolve disputes.
-
Incompatibility with Certain Licenses: While the AGPLv3 is compatible with many licenses, it is not compatible with all of them. For example, it's not compatible with the Apache 2.0 license or GPLv2.
-
Complexity: The AGPLv3, like all GNU licenses, is relatively complex. This can create challenges for contributors and users of the project who are not familiar with the license.
In conclusion, if the main goal of the project is to ensure that all versions of the project, including those running over a network, remain open source, the AGPLv3 is an excellent choice. However, it is crucial to consider that the strong copyleft nature of the AGPLv3 might limit the adoption by some organizations and developers who wish to keep their modifications proprietary.
One drawback to adopting AGPLv3 @iSCJT would be the potential for it to limit which packages we can include in our project. I don't have much context in this space so dropping some ChatGPT output:
Adopting the Affero General Public License v3 (AGPLv3) could potentially limit the open-source software (OSS) packages you could use in your project, due to license compatibility issues.
The AGPLv3 is a strong copyleft license, meaning that any software that is derived from AGPLv3 software must also be licensed under the AGPLv3. This can create compatibility issues with software under certain other licenses. For example, if a piece of software is licensed under the Apache License 2.0 or the GPL v2, you wouldn't be able to use that software in your AGPLv3 project because these licenses are not compatible with the AGPLv3.
However, the AGPLv3 is compatible with many other licenses, such as the GPL v3. You would be able to use software under these licenses in your project without issue.
In general, when choosing a license for your project, it's important to consider not only the license's terms but also its compatibility with other licenses. This can impact the third-party packages and libraries you're able to use in your project. If you have a specific set of packages or libraries you know you want to use, you should check their licenses to ensure they're compatible with the AGPLv3 before adopting it for your project.
Removing this issue from the September milestone as we are not currently able to prioritise this transition.