Page MenuHomePhabricator

eventlogging vagrant role: 'ParsedRequirement' object has no attribute 'req'
Closed, DeclinedPublic

Description

==> default: Notice: /Stage[main]/Eventlogging/Exec[eventlogging_virtualenv_pip_install]/returns: DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
==> default: Notice: /Stage[main]/Eventlogging/Exec[eventlogging_virtualenv_pip_install]/returns: Obtaining file:///vagrant/srv/eventlogging
==> default: Notice: /Stage[main]/Eventlogging/Exec[eventlogging_virtualenv_pip_install]/returns:     ERROR: Command errored out with exit status 1:
==> default: Notice: /Stage[main]/Eventlogging/Exec[eventlogging_virtualenv_pip_install]/returns:      command: /vagrant/srv/eventlogging/virtualenv/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/vagrant/srv/eventlogging/setup.py'"'"'; __file__='"'"'/vagrant/srv/eventlogging/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-jPjrXq
==> default: Notice: /Stage[main]/Eventlogging/Exec[eventlogging_virtualenv_pip_install]/returns:          cwd: /vagrant/srv/eventlogging/
==> default: Notice: /Stage[main]/Eventlogging/Exec[eventlogging_virtualenv_pip_install]/returns:     Complete output (5 lines):
==> default: Notice: /Stage[main]/Eventlogging/Exec[eventlogging_virtualenv_pip_install]/returns:     Traceback (most recent call last):
==> default: Notice: /Stage[main]/Eventlogging/Exec[eventlogging_virtualenv_pip_install]/returns:       File "<string>", line 1, in <module>
==> default: Notice: /Stage[main]/Eventlogging/Exec[eventlogging_virtualenv_pip_install]/returns:       File "/vagrant/srv/eventlogging/setup.py", line 27, in <module>
==> default: Notice: /Stage[main]/Eventlogging/Exec[eventlogging_virtualenv_pip_install]/returns:         install_requires = [str(ir.req) for ir in install_requirements]
==> default: Notice: /Stage[main]/Eventlogging/Exec[eventlogging_virtualenv_pip_install]/returns:     AttributeError: 'ParsedRequirement' object has no attribute 'req'
==> default: Notice: /Stage[main]/Eventlogging/Exec[eventlogging_virtualenv_pip_install]/returns:     ----------------------------------------
==> default: Notice: /Stage[main]/Eventlogging/Exec[eventlogging_virtualenv_pip_install]/returns: ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
==> default: Error: /vagrant/srv/eventlogging/virtualenv/bin/pip install --no-binary mysqlclient -e . returned 1 instead of one of [0]
==> default: Error: /Stage[main]/Eventlogging/Exec[eventlogging_virtualenv_pip_install]/returns: change from notrun to 0 failed: /vagrant/srv/eventlogging/virtualenv/bin/pip install --no-binary mysqlclient -e . returned 1 instead of one of [0]

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

The issue is with the eventlogging Python library, which uses this hack to reuse requirements.txt in setup.py:

try: # for pip >= 10
    from pip._internal.req import parse_requirements
except ImportError: # for pip <= 9.0.3
    from pip.req import parse_requirements

# parse_requirements() returns generator of pip.req.InstallRequirement objects
install_requirements = parse_requirements('requirements.txt', session=False)
# install_requires is a list of requirements
install_requires = [str(ir.req) for ir in install_requirements]

See ansible/awx#6880 for the same issue in another Python package.

Milimetric added a subscriber: Milimetric.

We're putting most effort on MEP and the new flow. This is the python side of EventLogging which will be deprecated next quarter. Is it preventing you from doing work now? We could just deprecate now if the only problem is in general while using Vagrant this comes up?

Change 602488 had a related patch set uploaded (by Gergő Tisza; owner: Gergő Tisza):
[mediawiki/vagrant@master] Drop eventlogging module

https://gerrit.wikimedia.org/r/602488

Change 602488 merged by Ottomata:
[mediawiki/vagrant@master] Drop eventlogging module

https://gerrit.wikimedia.org/r/602488