Differences between revisions 3 and 4
Revision 3 as of 2004-11-22 06:23:41
Size: 5197
Comment: fix typo
Revision 4 as of 2004-11-22 15:48:37
Size: 5186
Editor: TimPeters
Comment: Spelling of "acceptable"; slightly toned down GPL example
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
This is a tough question to answer. In general, you should use one of the [http://opensource.org/licenses/ OSI approved licenses] . If you think your code may eventually make it into Python or its standard libraries, you could already use one of the acceptible initial licenses for contribution of code to the PSF (these are listed below). This is not a requirement since you'll be able to re-license your code later, as long as you retain ownership of it. But using a license compatible with the contribution process may make life easier in the long run, especially if your code owned by your employer. This is a tough question to answer. In general, you should use one of the [http://opensource.org/licenses/ OSI approved licenses] . If you think your code may eventually make it into Python or its standard libraries, you could already use one of the acceptable initial licenses for contribution of code to the PSF (these are listed below). This is not a requirement since you'll be able to re-license your code later, as long as you retain ownership of it. But using a license compatible with the contribution process may make life easier in the long run, especially if your code owned by your employer.
Line 7: Line 7:
Note that OSI approved open source licenses vary quite a bit in how strongly they grants rights to the user. For example, some licenses explicitly grant rights to patents owned now or in the future by the licensor. Many others do not. At the same time, some licenses like the [http://opensource.org/licenses/gpl-license.php GPL] place restrictions on redistribution and usage that may not be acceptible either to you or many of your potential users. Note that OSI approved open source licenses vary quite a bit in how strongly they grants rights to the user. For example, some licenses explicitly grant rights to patents owned now or in the future by the licensor. Many others do not. At the same time, some licenses like the [http://opensource.org/licenses/gpl-license.php GPL] place restrictions on redistribution and usage that may not be acceptable either to you or to your potential users.
Line 11: Line 11:
When in doubt, buy a book on open source licensing.   When in doubt, buy a book on open source licensing.
Line 19: Line 19:
 * Replace all occurrences of "Python Software Foundation" and "PSF" with your name or organization. 
 
 * Replace all occurrences of "Python Software Foundation" and "PSF" with your name or organization.
Line 33: Line 33:
 * License your code under an acceptible open source license. These currently include only the [http://www.opensource.org/licenses/afl-2.1.php Academic Free License] and the [http://www.opensource.org/licenses/apache2.0.php Apache License 2.0], although this list may be expanded in the future. (No, the PSF License is not acceptible; see below)  * License your code under an acceptable open source license. These currently include only the [http://www.opensource.org/licenses/afl-2.1.php Academic Free License] and the [http://www.opensource.org/licenses/apache2.0.php Apache License 2.0], although this list may be expanded in the future. (No, the PSF License is not acceptable; see below)
Line 50: Line 50:

There has been a fair amount of confusion in the Python community about the PSF License and the process through which code can be contributed into Python and its standard libraries. Here are some of the facts I've been able to glean from discussion.

Which open source license should I use?

This is a tough question to answer. In general, you should use one of the [http://opensource.org/licenses/ OSI approved licenses] . If you think your code may eventually make it into Python or its standard libraries, you could already use one of the acceptable initial licenses for contribution of code to the PSF (these are listed below). This is not a requirement since you'll be able to re-license your code later, as long as you retain ownership of it. But using a license compatible with the contribution process may make life easier in the long run, especially if your code owned by your employer.

Note that OSI approved open source licenses vary quite a bit in how strongly they grants rights to the user. For example, some licenses explicitly grant rights to patents owned now or in the future by the licensor. Many others do not. At the same time, some licenses like the [http://opensource.org/licenses/gpl-license.php GPL] place restrictions on redistribution and usage that may not be acceptable either to you or to your potential users.

One thing is for sure: Slapping a license willy nilly on your code is a bad idea. You should be informed about what licensing is and whether your chosen license is going to do what you want it to.

When in doubt, buy a book on open source licensing.

How do I use the PSF License?

The PSF license was developed specifically and only for Python and its standard libraries. Many projects on Source Forge and elsewhere have adopted it, but not always in an appropriate way. If you feel the PSF License is the one to use with your code, you must change the following parts of the license:

  • Replace all occurrences of "Python Software Foundation" and "PSF" with your name or organization.
  • Replace "Python" with the name of your project.

This includes altering the copyright notice in paragraph 2. The author of the work holds the copyright, not the PSF. While you could transfer copyright to the PSF, that requires a legal process and in most cases the PSF has no interest or reason to accept the copyrights of works outside of Python and its standard libraries.

Note that the PSF license consists only of the top license in the "license stack" that is included in Python. The current (as of this writing) version of the PSF license is PythonSoftwareFoundationLicenseV2Easy. When using the PSF License with your project, you should never include the other parts of the Python license stack, such as the CNRI license or Guido's biography. Python has that history, but your code does not!

What if I want to contribute my code to the PSF?

The PSF does not want contributions of any code other than that which will end up in Python or its standard libraries.

If your code is going to end up in Python or the standard library, the PSF will require you to:

Why can't I contribute code under the PSF License?

The initial open source license under which the contribution is released to the PSF is the legal agreement that grants most of the rights the PSF will have to that code. The contribution agreement itself just gives the PSF the right to relicense the contributed code before distributing it further.

For this reason, and in order to protect contributions from future claims, the PSF requires that the initial open source license contain a clause that specifically grants the right to use patents owned now or in the future by the contributor.

While it seems somewhat ironic that the PSF license cannot be used as the initial license on contributions, the approach does make sound legal sense.

Who signs the contributor agreement?

If the contributor is an employee, then the company should sign the contributor agreement unless (1) the company authorized the employee to make the contribution under his/her own name, or (2) the employee's contribution was independently created outside the scope of his employment. If the contributor is a contractor rather than an employee, then he/she may make the contribution unless his/her contract with the company says otherwise.

When in doubt, a potential contributor should ask their attorney or manager. Ordinarily it is up to the company to train its employees and contractors and to enforce its own policies and contracts; anything else may be their own "negligent supervision."

PythonSoftwareFoundationLicenseFaq (last edited 2023-07-24 22:27:16 by MattOsborn)

Unable to edit the page? See the FrontPage for instructions.