Choosing a License


Your source publication needs a license. In the US, unless a license is specified, users have no legal right to download, modify, or distribute the product. Furthermore, people can’t contribute to your code unless you tell them what rules to play by. Choosing a license is complicated, so here are some pointers:

Open source. There are plenty of open source licenses available to choose from.

In general, these licenses tend to fall into one of two categories:

  1. licenses that focus more on the user’s freedom to do with the software as they please (these are the more permissive open source licenses such as the MIT, BSD, and Apache)
  2. licenses that focus more on making sure that the code itself — including any changes made to it and distributed along with it — always remains free (these are the less permissive free software licenses such as the GPL and LGPL)

The latter are less permissive in the sense that they don’t permit someone to add code to the software and distribute it without also including the source code for their changes.

To help you choose one for your project, there’s a license chooser; use it.

More Permissive

  • PSFL (Python Software Foundation License) – for contributing to Python itself
  • MIT / BSD / ISC
    • MIT (X11)
    • New BSD
    • ISC
  • Apache

Less Permissive:

  • LGPL
  • GPL
    • GPLv2
    • GPLv3

A good overview of licenses with explanations of what one can, cannot, and must do using a particular software can be found at tl;drLegal.