Open amercader opened 1 week ago
To migrate an existing package, all packages sharing the namespace must be migrated simultaneously.
Should we create a new namespace for extensions to allow for the transition? e.g. ckanext
for legacy pkg_resources-namespace and ckanx
/ ckanext3
or something for the new way?
Initially discussed in https://github.com/ckan/ckan/issues/8382#issuecomment-2353014999.
The
ckanext
package used by plugins is a namespace package. CKAN currently uses a deprecated setuptools pkg_resources-based way of defining namespaces packages. The recommendation seems to be to start migrating away from this method.To gather a bit more information my suggested plan is:
I started work on 1 in the pep420-namespace-packages branch (it also includes https://github.com/ckan/ckan/pull/8456) and it is not as straightforward as it seems. Switching the namespace package method changes imports in subtle ways, that are reflected in seemingly unrelated test failures. For instance the last ones are caused by trying to capture an exception class defined in one of the tests modules (
AuthTestException
). Inspecting this in the work branch gives us:While on master:
Other worrying signs include warnings like this one, which don't occur in master:
Quick tests in extensions for point 2 also resulted in errors .
All this to say that more investigation is required in order to plan a transition. Any suggestions from users with experience around these topics is appreciated.