Updated Contributor License Agreement Policy (markdown)

bunnei 2019-09-27 02:11:34 -04:00
parent ff90b53642
commit 1ab3aea78a

@ -2,7 +2,7 @@
When you agree to the yuzu Nintendo Switch emulator Individual [[Contributor License Agreement]] (CLA), you are effectively granting a copyright of any contribution that you make to the maintainers of the yuzu project. You still retain an equal copyright over your own work, and are free to use your own work as you please. When you agree to the yuzu Nintendo Switch emulator Individual [[Contributor License Agreement]] (CLA), you are effectively granting a copyright of any contribution that you make to the maintainers of the yuzu project. You still retain an equal copyright over your own work, and are free to use your own work as you please.
## Why does yuzu need a Contributor License Agreement? ## Why does yuzu need a Contributor License Agreement?
As of the time of this document, yuzu has around [200 contributors](https://github.com/yuzu-emu/yuzu/graphs/contributors)! However, the vast majority of these contributors have written only a few lines of code, are inactive in the project, and have not provided the current team with contact information. There is some precedent that unless otherwise agreed upon, every contributor owns the sole copyright to their contribution. The Contributor License Agreement assigns a shared copyright of each contribution to the set of individuals who actively maintain the project. This is not forfeiting any rights by the contributor, but rather granting rights to yuzu. This enables the project to have ownership of the source code without necessarily tracking down every single person that ever made a contribution. It also is a mechanism for the project to keep a record of all of the present and future contributors and their contact information. There are several reasons why this is important: As of the time of this document, yuzu has around [200 contributors](https://github.com/yuzu-emu/yuzu/graphs/contributors)! However, the vast majority of these contributors have written only a few lines of code, are inactive in the project, and have not provided the current team with contact information. There is some precedent that unless otherwise agreed upon, every contributor owns the sole copyright to their contribution. The [[Contributor License Agreement]] assigns a shared copyright of each contribution to the set of individuals who actively maintain the project. This is not forfeiting any rights by the contributor, but rather granting rights to yuzu. This enables the project to have ownership of the source code without necessarily tracking down every single person that ever made a contribution. It also is a mechanism for the project to keep a record of all of the present and future contributors and their contact information. There are several reasons why this is important:
* In recent years, emulators have become productized. This has positive and negative effects for end users. On one hand, productizing emulators has meant that emulator developers are getting compensated for their hard work. Compensation means that developers are willing to work on the parts of emulation that aren't necessarily *fun*, such as usability and polish features that are important to end users. Compensation also means that emulator developers can devote more time to the project. All of these mean faster development, a better product, and a better experience for end users. * In recent years, emulators have become productized. This has positive and negative effects for end users. On one hand, productizing emulators has meant that emulator developers are getting compensated for their hard work. Compensation means that developers are willing to work on the parts of emulation that aren't necessarily *fun*, such as usability and polish features that are important to end users. Compensation also means that emulator developers can devote more time to the project. All of these mean faster development, a better product, and a better experience for end users.
* However, recent closed source emulators have shown that emulation can be successfully monetized. This has resulted in some of the most successful projects becoming closed source, which overall hurts preservation of the hardware and the games. Open preservation is the core of why most yuzu developers work on the project. The success of closed source emulators has furthermore shown that the damage to coexisting open source emulators and preservation can be significant: Given the complexity of modern systems, it can be incredibly demotivating for an open source project that is trailing behind to try to stay relevant. By design, closed source emulators benefit from the innovation of open source projects, without having to give back. Consequently, such open source projects fail to attract attention and new developers, and can die off leaving the opportunity for preservation lost. * However, recent closed source emulators have shown that emulation can be successfully monetized. This has resulted in some of the most successful projects becoming closed source, which overall hurts preservation of the hardware and the games. Open preservation is the core of why most yuzu developers work on the project. The success of closed source emulators has furthermore shown that the damage to coexisting open source emulators and preservation can be significant: Given the complexity of modern systems, it can be incredibly demotivating for an open source project that is trailing behind to try to stay relevant. By design, closed source emulators benefit from the innovation of open source projects, without having to give back. Consequently, such open source projects fail to attract attention and new developers, and can die off leaving the opportunity for preservation lost.
* yuzu is an open source project. The [main repository](https://github.com/yuzu-emu/yuzu/) for the project will always be open source, accessible to new contributors, and purposed with preserving the Nintendo Switch. Furthermore, the main repository will always be a reference implementation for all ancillary releases within the yuzu project. However, in order to compete with modern emulators in 2019 and beyond, yuzu also needs to be a product. We need to find ways to monetize the project and compensate our developers while also staying open source. This will allow us to share the same benefits of other productized projects, such as by enabling our developers to spend more time working on yuzu, or to work on less exciting but necessary features. Unfortunately, this is very difficult without the maintainers of the yuzu project having ownership of the source code. * yuzu is an open source project. The [main repository](https://github.com/yuzu-emu/yuzu/) for the project will always be open source, accessible to new contributors, and purposed with preserving the Nintendo Switch. Furthermore, the main repository will always be a reference implementation for all ancillary releases within the yuzu project. However, in order to compete with modern emulators in 2019 and beyond, yuzu also needs to be a product. We need to find ways to monetize the project and compensate our developers while also staying open source. This will allow us to share the same benefits of other productized projects, such as by enabling our developers to spend more time working on yuzu, or to work on less exciting but necessary features. Unfortunately, this is very difficult without the maintainers of the yuzu project having ownership of the source code.
@ -32,7 +32,7 @@ Then the existing maintainers of the yuzu project will discuss adding this contr
## How are maintainers removed from the yuzu project? ## How are maintainers removed from the yuzu project?
* If an existing maintainer of the yuzu project becomes inactive, and therefore no longer satisfies requirement #1 above by failing to make any code change to yuzu in a 12 month period, they will lose their formal maintainer status. * If an existing maintainer of the yuzu project becomes inactive, and therefore no longer satisfies requirement #1 above by failing to make any code change to yuzu in a 12 month period, they will lose their formal maintainer status.
* If an existing maintainer of the yuzu project violates the terms of the Contributor License Agreement, or wishes to have their agreement terminated, thereby no longer satisfying requirement #2 above, they will immediately lose their formal maintainer status. * If an existing maintainer of the yuzu project violates the terms of the [[Contributor License Agreement]], or wishes to have their agreement terminated, thereby no longer satisfying requirement #2 above, they will immediately lose their formal maintainer status.
* If an existing maintainer of the yuzu project no longer wishes to be a maintainer, thereby no longer satisfying requirement #3 above, they may immediately resign from this role by notifying the other maintainers. * If an existing maintainer of the yuzu project no longer wishes to be a maintainer, thereby no longer satisfying requirement #3 above, they may immediately resign from this role by notifying the other maintainers.
* Being a member of the [yuzu-emu/Maintainers](https://github.com/orgs/yuzu-emu/teams/maintainers/members) GitHub team alone does not necessarily mean that a contributor is still a maintainer of the yuzu project if they fail to satisfy any of the other requirements. Users will be be pruned from the [yuzu-emu/Maintainers](https://github.com/orgs/yuzu-emu/teams/maintainers/members) GitHub team if they become inactive. * Being a member of the [yuzu-emu/Maintainers](https://github.com/orgs/yuzu-emu/teams/maintainers/members) GitHub team alone does not necessarily mean that a contributor is still a maintainer of the yuzu project if they fail to satisfy any of the other requirements. Users will be be pruned from the [yuzu-emu/Maintainers](https://github.com/orgs/yuzu-emu/teams/maintainers/members) GitHub team if they become inactive.
* A maintainer that satisfies all requirements may still lose their maintainer status by a two thirds majority vote of the active maintainers of the yuzu project. * A maintainer that satisfies all requirements may still lose their maintainer status by a two thirds majority vote of the active maintainers of the yuzu project.