Apache2 is the only popular open source license that makes explicit provision for licensing contributions.
Here’s the key paragraph:
- Submission of Contributions.
Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions.
That means there’s no question about the legality of incorporating a contribution. No Contributor License Agreement is needed.
And if that weren’t enough, there is an extensive paragraph with an expansive definition of a “Contribution” (emphasis mine):
“Contribution” shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, “submitted” means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as “Not a Contribution.”
Here’s how ridiculously inclusive this is: you could hypothetically talk to me in the hallway of a conference to tell me about a bug and how to fix it, and even that counts as a contribution. So obviously any normal contribution is covered. The only way something you share with me is not a contribution is by explicitly stating the opposite.
I like open source because of the communities that build together. Apache2 puts that collaborative effort on a solid legal footing.