A contributions and credit policy is a written policy laying out what contributions to an open source project are welcome, how they will be handled, and how credit will be distributed. This project explains how to design a policy for an open source project, as well as how a policy can save maintainers time and effort.
Open source software projects receive a wide variety of contributions from many different people and organizations. Each person has their own assumptions and expectations for how a project should respond to a contribution: how or if it is reviewed, whether it is merged, how credit is assigned, whether it will be changed or rewritten, etc.
When there is a mismatch between the expected response and the actual response, both the maintainers and the contributors suffer. This is an especially important problem for open source software because credit is often a major motivation for contributing.
Some concrete examples:
- Someone debugs a serious Linux kernel memory error, writes a fix, and sends the change to the maintainer. The maintainer writes a very similar fix and checks it in under his own name, giving the original author credit only for reporting the bug.
- Someone sends in a contribution, but project maintainers are too overworked to review the contribution. Some time later, another person fixes the same problem without ever seeing the first contribution. The first person accuses them of plagiarism when it was actually a case of two people independently coming up with similar contributions.
- Someone who has personal connections with the maintainers of an open source project scans the outstanding contributions that have not yet been reviewed. They rewrite someone else's contribution without crediting them and request review from the maintainers, who review and approve their contribution.
- A standards body works together to develop and review drafts of standards. People who write early drafts discover that later drafts use their work without crediting it.
- Someone writes a bot that uses AI to scan source code and submit automatically generated contributions, nearly all of which are garbage that waste the reviewers' time. When their contributions are rejected, they criticize the project maintainers.
One thing is clear: people have wildly different expectations for how contributions should be handled.
Our proposed solution to this problem is for each project to write down and publish a formal contributions and credit policy. The policy describes what contributions are welcome, how they will be handled, and what kind of credit and acknowledgement contributors can expect.
A policy can reduce maintainer workload in the following ways:
- Maintainers and contributors have more similar expectations for review, merging, and credit
- Maintainers are more likely to get the kind of contributions they want
- Maintainers can refer to the policy when making difficult decisions
- Maintainers can avoid or end arguments by pointing at the policy
For help creating a contributions and credit policy, see the policy creation guide.
See the list of projects with contributions and credit policies.
- Linux Weekly News article by Valerie Aurora
- Talk by Maria Matějka about the policy release at RIPE 88
- Talk by Valerie Aurora proposing a policy at RIPE 87
We welcome contributions to this project. Please see our contributions and credit policy for more information on how to contribute.
This contributions and credit policy was created by Valerie Aurora, Maria Matějka (project BIRD, CZ.NIC), and other members of the RIPE Open Source Working Group. See the CREDITS.md file for a full list of contributors.
This project is licensed Creative Commons Zero (CC0-1.0).
We request but do not require that derivative works give credit to the contributors to this project. Example:
This policy was constructed using the contributions and credits policy guide created by members of the RIPE Open Source Working Group. For a full list of contributors, see https://github.com/contribution-credit/policy/blob/main/CREDITS.md