Hi, I think that the PSFL is a great license and has served Python very well. However I think it can be improved upon to equally be able to serve the broader Python community. Some of these improvements will probably require involvement from Packaging, but I think that work can only start if/ when the PSF wishes to move forward. Obligatory IANAL, I have only tried to use the PSFL both professionally and in hobby pursuits and come up against barriers.
OSI approval -
The gold standard for open source projects, however it is very unclear (to me) if the PSFL is or is not approved. According to trove classifiers it is; the trove classifier is
License :: OSI Approved :: Python Software Foundation License. According to Wikipedia it is on
OSI's approved licenses list. On SPDX it does not get the
OSI Approved? tick. It does appear on the OSI site but does not get the badge of approval. Further confusing this point, PSFL can be found on this page which states
The following licenses have been approved by the OSI but also appears on this other page under the statemet
Licenses in this group are specific to their authors and cannot be reused by others.
Reuse by those not associated with the PSF -
That last point by OSI is one I have heard elsewhere and is where I think the PSF could make the biggest difference. The PSFL, obviously, has a lot of language specific to this organization and its trademarks. Reusing this license would of course require replacing those values, but its not so easy as with other popular licenses. Consider BSD-3 where the values needing replaced are both contained to the first line and stubbed out with tokens that are easily replaceable. In the PSFL there are more values and they are more spread out.
It is my understanding that the text of a license agreement is also copyrighted, not always under the same terms as the license itself. So although one could go and manually change the year and copyright holder, doing so may actually violate another copyright. And to what extent can the PSFL be changed? aGPL includes the copyright for the license text in the same body but explicitly disallows changing any part of it. Would the PSF allow re-wording? What about referenced to “Python” in the license - if an individual is releasing software related to the language, a new or modified interpreter, are they allowed to keep this trademark in their license?
Use by package authors -
This is mainly capturing some data from the python ecosystem. There are currently 482 projects on PyPI that are tagged with
License :: OSI Approved :: Python Software Foundation License. Most of these are not associate with the PSF but could appear to claim association by using a license that in both the name and in the only official body mention the PSF. I have checked just a few of them, but it appears that when using this classifier projects either don’t include a LICENSE file, or when they do it is a license written BSD-style. I don’t see any projects attempting to copy the actual text.
For other language communities, the best practice is often to follow the license that the language uses, unless or until you have a reason to deviate. That ship has probably sailed for Python, and maybe was never going to occur with the high level of contributions from non-traditional programming disciplines that have their own licensing best practices. But changes to this license might make it easier for those coming from other programming communities and being used to following the community when it comes to choosing a license. It would be nice to see the PSFL projects approach the numbers returned for “BSD”, “MIT”, “Apache”, or “*GPL*” which all show “10,000+” results on PyPI.