Mercurial > kallithea
view MANIFEST.in @ 8970:11cae16e5a5d stable
setup: use old importlib_metadata version to fix kombu failing on python < 3.8
Many libraries use the importlib_metadata library as fallback when running on
Python versions older than 3.8 . For example setuptools when easy_install is
used for install the Kallithea console_scripts entrypoints in the bin folder.
The dependencies on importlib_metadata were indirect and without constrains on
version number.
The problem is that Celery uses Kombu, which (on Python < 3.8) uses
importlib_metadata in a way that is incompatible with importlib_metadata > 5.
Most obvious, building docs failed as:
Running Sphinx v5.1.1
Configuration error:
There is a programmable error in your configuration file:
Traceback (most recent call last):
File ".../kallithea/venv/lib64/python3.7/site-packages/sphinx/config.py", line 347, in eval_config_file
exec(code, namespace)
File ".../kallithea/docs/conf.py", line 17, in <module>
import kallithea
File ".../kallithea/kallithea/__init__.py", line 45, in <module>
CELERY_APP = celery.Celery() # needed at import time but is lazy and can be configured later
File ".../kallithea/venv/lib64/python3.7/site-packages/celery/local.py", line 492, in __getattr__
[name])
File ".../kallithea/venv/lib64/python3.7/site-packages/celery/app/__init__.py", line 2, in <module>
from celery import _state
File ".../kallithea/venv/lib64/python3.7/site-packages/celery/_state.py", line 15, in <module>
from celery.utils.threads import LocalStack
File ".../kallithea/venv/lib64/python3.7/site-packages/celery/utils/__init__.py", line 16, in <module>
from .nodenames import nodename, nodesplit, worker_direct
File ".../kallithea/venv/lib64/python3.7/site-packages/celery/utils/nodenames.py", line 6, in <module>
from kombu.entity import Exchange, Queue
File ".../kallithea/venv/lib64/python3.7/site-packages/kombu/entity.py", line 7, in <module>
from .serialization import prepare_accept_content
File ".../kallithea/venv/lib64/python3.7/site-packages/kombu/serialization.py", line 440, in <module>
for ep, args in entrypoints('kombu.serializers'): # pragma: no cover
File ".../kallithea/venv/lib64/python3.7/site-packages/kombu/utils/compat.py", line 82, in entrypoints
for ep in importlib_metadata.entry_points().get(namespace, [])
AttributeError: 'EntryPoints' object has no attribute 'get'
That made readthedocs builds fail, when it in the default web configuration
used Python 3.7 .
Fixed by introducing an explicit dependency on importlib_metadata < 5.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Tue, 13 Dec 2022 16:46:09 +0100 |
parents | a8b59e65b98f |
children |
line wrap: on
line source
include .coveragerc include .eslintrc.js include Apache-License-2.0.txt include CONTRIBUTORS include COPYING include Jenkinsfile include LICENSE-MERGELY.html include LICENSE.md include MIT-Permissive-License.txt include README.rst include conftest.py include dev_requirements.txt include development.ini include pytest.ini include pytype_requirements.txt include requirements.txt include tox.ini recursive-include docs * recursive-include init.d * recursive-include kallithea/alembic * include kallithea/bin/ldap_sync.conf recursive-include kallithea/front-end * recursive-include kallithea/i18n * recursive-include kallithea/public * recursive-include kallithea/templates * recursive-include kallithea/tests/fixtures * recursive-include kallithea/tests/scripts * include kallithea/tests/models/test_dump_html_mails.ref.html include kallithea/tests/performance/test_vcs.py include kallithea/tests/vcs/aconfig recursive-include scripts *