We need input from our Django core contributors and maintainers, on how we ensure all contributions are done in accordance with our licensing and copyright requirements!
Current state
We currently use Contributor License Agreements for Django core. Those are legal contracts between the DSF and contributing individuals or organizations, which help us guarantee that:
- All contributors have the rights to their contributions (copyright), and transfer this right to the DSF. This allows us to change Django’s license in the future if we wanted to.
- All contributors are responsible to make sure their contributions are compatible with our license (no patented or copyleft code).
This is good but creates hurdles:
- We aren’t systematically checking that all code in PRs or patches is from people who have a signed CLA.
- The CLA process is daunting to individuals, and a legal hurdle for companies (requires legal review)
What we need
We need to revamp this. There are two options:
- Retain a CLA process but with more automation. This would mean systematic review that all contributors in PRs and patches have signed the CLA, ideally via a GitHub “CLA Assistant” bot to run on PRs (and equivalent for patches)
- Switch to a Developer Certificate of Origin. This is a simpler agreement, that doesn’t require legal review, that is much simpler for contributors to make and for us to check as it integrates with git natively.
DCO in practice
Switching to a DCO would mean:
- We (DSF) lose the ability to relicense Django in the future. That isn’t part of a DCO
- All commits merged in Django have to be signed by their contributor (
-s
, Signed-Off-By)
This is simpler but needs to happen for every commit.
Keen to hear people’s thoughts on this!