alpha

Open Source Licenses

Quick reference for selecting the right open source license for your project.

#license#open-source#apache#mit#bsd#gpl#agpl#python#pypi

Open Source Licenses

Choose License by Goal

GoalLicense
Maximum adoption, don’t care about attributionMIT
Attribution + trademark/patent protectionApache 2.0
Force derivatives to be open sourceGPL-3.0
Force derivatives + SaaS to be open sourceAGPL-3.0

License Feature Comparison

AspectMITBSD-3Apache 2.0GPL-3.0AGPL-3.0
Use in proprietary softwareYesYesYesNoNo
Modify without sharingYesYesYesNoNo
SaaS use without sharingYesYesYesYesNo
Attribution requiredYesYesYesYesYes
Patent grantNoNoYesYesYes
Trademark protectionNoYesYesNoNo

License Recommendations

MIT - Default for maximum adoption. Simple, short, universally understood.

BSD-3-Clause - Like MIT, adds “no endorsement” clause. Prevents using your name to promote derivatives.

Apache 2.0 - Attribution with protection. Includes patent grant (protects against patent trolls) and explicit trademark clause.

GPL-3.0 - Copyleft license. Derivatives MUST be open source. Does not cover SaaS.

AGPL-3.0 - GPL + closes the SaaS loophole. Network use triggers source disclosure. Effectively discourages corporate adoption.

Setting Up Apache 2.0 License

Download the license:

curl -s https://www.apache.org/licenses/LICENSE-2.0.txt -o LICENSE

Edit the LICENSE file:

  1. Add Copyright <year> <name> at top
  2. Remove APPENDIX section (ends at “END OF TERMS AND CONDITIONS”)
  3. Clean up formatting (remove excessive indentation)

Update pyproject.toml:

license = "Apache-2.0"