And related to my last comment: have you considered an approach with fixed prefixes?
In other words, PyPI could declare two (or more) global, top level prefixes:
corp-
(orcom-
) for paying/corporate PyPI organization ownersorg-
for non-profit/community organizations
Because these top-level prefixes would be unique and novel, the procedural challenges about handling pre-existing project names become moot: a new namespace will always be globally unique by construction, rather than by convention/enforcement.
By way of example: if FooCorp wants a namespace, it could be given corp-foo-
, under which it could define child grants per the current semantics in the PEP.
I’m curious what you and others think of this idea – I think it has advantages in terms of enabling uniqueness out-of-the-box and giving PyPI/other repositories a way to “type” namespaces, but I can also see (strong!) arguments that it’s too long/verbose and also potentially is confusable with Java-style reverse domains.
Edit: I just realized this idea doesn’t work very cleanly, since projects can already register stuff under the org-
etc. prefixes. So PyPI would need to assign new prefixes that are already globally unique, and there probably aren’t many of those left that are also short and descriptive. That, or consider the sunk cost of org
and corp
(or similar) small relative to an unbounded number of top-level prefixes.