Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pytz package can't be installed from an index other that root/pypi #1030

Open
4 tasks done
FrozenDragoon opened this issue Mar 7, 2024 · 1 comment
Open
4 tasks done

Comments

@FrozenDragoon
Copy link

FrozenDragoon commented Mar 7, 2024

When trying to install from the root/devpi index, I receive the same "invalid version" error described in #939

I'm using devpi-constrained (is this issue more applicable in that repo?)
I'm using the latest version of devpi, and I've read through #939 and #940.
I'm running this in a docker container, fronted by an NGINX reverse-proxy.

I haven't yet tried downgrading or anything.

root/devpi

devpi-1  | 2024-03-07 19:07:40,044 INFO  [req15] GET /root/devpi/+simple/pytz/
devpi-1  | 2024-03-07 19:07:40,067 ERROR Exception while serving /root/devpi/+simple/pytz/
devpi-1  | Traceback (most recent call last):
devpi-1  |   File "/env/lib/python3.11/site-packages/pyramid/tweens.py", line 13, in _error_handler
devpi-1  |     response = request.invoke_exception_view(exc_info)
devpi-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/pyramid/view.py", line 786, in invoke_exception_view
devpi-1  |     raise HTTPNotFound
devpi-1  | pyramid.httpexceptions.HTTPNotFound: The resource could not be found.
devpi-1  | 
devpi-1  | During handling of the above exception, another exception occurred:
devpi-1  | 
devpi-1  | Traceback (most recent call last):
devpi-1  |   File "/env/lib/python3.11/site-packages/waitress/channel.py", line 428, in service
devpi-1  |     task.service()
devpi-1  |   File "/env/lib/python3.11/site-packages/waitress/task.py", line 168, in service
devpi-1  |     self.execute()
devpi-1  |   File "/env/lib/python3.11/site-packages/waitress/task.py", line 436, in execute
devpi-1  |     app_iter = self.channel.server.application(environ, start_response)
devpi-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/waitress/proxy_headers.py", line 64, in translate_proxy_headers
devpi-1  |     return app(environ, start_response)
devpi-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/devpi_server/middleware.py", line 23, in __call__
devpi-1  |     return self.app(environ, start_response)
devpi-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/pyramid/router.py", line 270, in __call__
devpi-1  |     response = self.execution_policy(environ, self)
devpi-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/pyramid/router.py", line 276, in default_execution_policy
devpi-1  |     return router.invoke_request(request)
devpi-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/pyramid/router.py", line 245, in invoke_request
devpi-1  |     response = handle_request(request)
devpi-1  |                ^^^^^^^^^^^^^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/devpi_server/views.py", line 193, in request_log_handler
devpi-1  |     response = handler(request)
devpi-1  |                ^^^^^^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/devpi_server/views.py", line 234, in request_tx_handler
devpi-1  |     response = handler(request)
devpi-1  |                ^^^^^^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/devpi_web/views.py", line 112, in request_trailing_slash_redirect_handler
devpi-1  |     return handler(request)
devpi-1  |            ^^^^^^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/pyramid/tweens.py", line 43, in excview_tween
devpi-1  |     response = _error_handler(request, exc)
devpi-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/pyramid/tweens.py", line 17, in _error_handler
devpi-1  |     reraise(*exc_info)
devpi-1  |   File "/env/lib/python3.11/site-packages/pyramid/util.py", line 733, in reraise
devpi-1  |     raise value
devpi-1  |   File "/env/lib/python3.11/site-packages/pyramid/tweens.py", line 41, in excview_tween
devpi-1  |     response = handler(request)
devpi-1  |                ^^^^^^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/pyramid/router.py", line 143, in handle_request
devpi-1  |     response = _call_view(
devpi-1  |                ^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/pyramid/view.py", line 674, in _call_view
devpi-1  |     response = view_callable(context, request)
devpi-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/pyramid/viewderivers.py", line 392, in viewresult_to_response
devpi-1  |     result = view(context, request)
devpi-1  |              ^^^^^^^^^^^^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/pyramid/viewderivers.py", line 113, in _class_requestonly_view
devpi-1  |     response = getattr(inst, attr)()
devpi-1  |                ^^^^^^^^^^^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/devpi_server/views.py", line 592, in simple_list_project
devpi-1  |     stage.get_simplelinks(
devpi-1  |   File "/env/lib/python3.11/site-packages/devpi_server/model.py", line 934, in get_simplelinks
devpi-1  |     for link_info in res:
devpi-1  |   File "/env/lib/python3.11/site-packages/devpi_server/model.py", line 52, in apply_filter_iter
devpi-1  |     if next(filter_iter, True):
devpi-1  |        ^^^^^^^^^^^^^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/devpi_constrained/main.py", line 105, in get_simple_links_filter_iter
devpi-1  |     if link_info.version in version_filter:
devpi-1  |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/devpi_common/metadata.py", line 338, in __contains__
devpi-1  |     return self.specifier.contains(version)
devpi-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/packaging/specifiers.py", line 905, in contains
devpi-1  |     item = Version(item)
devpi-1  |            ^^^^^^^^^^^^^
devpi-1  |   File "/env/lib/python3.11/site-packages/packaging/version.py", line 200, in __init__
devpi-1  |     raise InvalidVersion(f"Invalid version: '{version}'")
devpi-1  | packaging.version.InvalidVersion: Invalid version: '2004d'

root/pypi

devpi-1  | 2024-03-07 19:10:55,856 INFO  [req16] GET /root/pypi/+simple/pytz/
devpi-1  | 2024-03-07 19:10:55,975 INFO  [req17] GET /root/pypi/+f/328/171f4e3623139/pytz-2024.1-py2.py3-none-any.whl

devpi Index config

~ # devpi use http://localhost:3141 &> /dev/null
~ # devpi login root --password ***
logged in 'root', credentials valid for 10.00 hours
~ # devpi index devpi
http://localhost:3141/root/devpi:
  type=constrained
  bases=root/pypi
  volatile=True
  acl_upload=root
  acl_toxresult_upload=:ANONYMOUS:
  constraints=altgraph==0.*,attrs==23.*,black==24.*,certifi==2024.*,charset-normalizer==3.*,click==8.*,coloredlogs==15.*,colorama==0.*,et-xmlfile==1.*,exceptiongroup==1.*,flake8==7.*,flake8-annotations==3.*,flake8-bugbear==24.*,flake8-comprehensions==3.*,humanfriendly==10.*,idna==3.*,iniconfig==2.*,jmespath==1.*,mccabe==0.*,mypy==1.*,mypy-extensions==1.*,numpy==1.*,openpyxl==3.*,packaging==23.*,pandas==1.*,pathspec==0.*,pefile==2023.*,platformdirs==4.*,pluggy==1.*,pycodestyle==2.*,pyflakes==3.*,pyfmg==0.*,pyinstaller==6.*,pyinstaller-hooks-contrib==2024.*,pyreadline3==3.*,pytest==8.*,python-dateutil==2.*,pytz==2024.*,pywin32-ctypes==0.*,PyYAML==6.*,requests==2.*,six==1.*,tabulate==0.*,terminaltables==3.*,tomli==2.*,types-PyYAML==6.*,types-requests==2.*,types-urllib3==1.*,typing-extensions==4.*,tzdata==2024.*,urllib3==2.*,XlsxWriter==3.*,*
  mirror_whitelist=
  mirror_whitelist_inheritance=intersection

  • Are you using the latest released version?
  • Provide the output of pip list from the virtual environment you are using.
# pip list
Package              Version
-------------------- -----------
anyio                4.3.0
argon2-cffi          23.1.0
argon2-cffi-bindings 21.2.0
attrs                23.2.0
beautifulsoup4       4.12.3
build                1.1.1
certifi              2024.2.2
cffi                 1.16.0
Chameleon            4.5.2
charset-normalizer   3.3.2
check-manifest       0.49
cmarkgfm             2024.1.14
defusedxml           0.7.1
devpi-client         7.0.2
devpi-common         4.0.3
devpi-constrained    2.0.1
devpi-server         6.10.0
devpi-web            4.2.1
docutils             0.20.1
h11                  0.14.0
httpcore             1.0.4
httpx                0.27.0
hupper               1.12.1
idna                 3.6
iniconfig            2.0.0
itsdangerous         2.1.2
lazy                 1.6
nh3                  0.2.15
packaging            23.2
passlib              1.7.4
PasteDeploy          3.1.0
pip                  24.0
pkginfo              1.10.0
plaster              1.1.2
plaster-pastedeploy  1.0.1
platformdirs         4.2.0
pluggy               1.4.0
py                   1.11.0
pycparser            2.21
Pygments             2.17.2
pyproject_hooks      1.0.0
pyramid              2.0.2
pyramid-chameleon    0.3
python-dateutil      2.9.0.post0
readme_renderer      43.0
repoze.lru           0.7
requests             2.31.0
ruamel.yaml          0.18.6
ruamel.yaml.clib     0.2.8
setuptools           68.2.2
six                  1.16.0
sniffio              1.3.1
soupsieve            2.5
strictyaml           1.7.3
translationstring    1.4
urllib3              2.2.1
venusian             3.1.0
waitress             3.0.0
WebOb                1.8.7
wheel                0.41.2
Whoosh               2.7.4
zope.deprecation     5.0
zope.interface       6.2
~ # 
  • Provide the Python and operating system versions under which the issue occurs.
~ # python --version
Python 3.11.8
~ # cat /etc/os-release 
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.19.1
PRETTY_NAME="Alpine Linux v3.19"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"
  • If possible, provide a minimal example to reproduce the issue.
@fschulze
Copy link
Contributor

fschulze commented Mar 8, 2024

This is definitely triggered by devpi-constrained. I have to investigate whether it is caused by devpi-server or devpi-constrained. The underlying problem is the dropped support for legacy versions in some supporting libraries. This should have been fixed by now, but it seems I missed something somewhere.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants