- The namespace is not private and anyone can create a backport there without adhering to any standards. This has the problem of false security for potential users and code that is not thoroughly tested.
- Some projects flatten the name of the backport, specially when they just want to backport one function. Which result in awfully long names.
- You need to import all the namespace boilerplate in your backport project.
- Licensing: Not all people put their backports with the PSF license.
- it is not clear from which version/revision things were backported.
- at the end, one still needs to have this conditional imports that force you to have this compatibility layer, so naming is not that important.
What I would do is instead of having a namespace is to actually have just one project (no strong opinions about the name) with community curated backports.
The project should/could:
- enforce the PSF license
- define different namespaces for the different backports, like backport27, backport33, backport34
- keep track of revision used in the latest backport and notify to maintainers of changes
- be tested in all platforms specified
- have guidelines for backporters
- provide diffs of what was changed and limitations of the backport
- generate different packages for different python versions or maybe even allow people to select their own bundle.
- it could even provide some import magic like:
import backports33
backports33.install('shutil.wich')
import shutil
shutil.wich(...)