buildbot-worker does not check for incorrect versions of dependencies
- Dominant language
- Python
- Stars
- 5.5k
- Forks
- 1.7k
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 6
Description
Manual at http://docs.buildbot.net/current/manual/installation/requirements.html
I'm interested in buildbot. One of my build machines is a Ubuntu 16.04 system. I tried installing buildbot-worker on it before I delved too deep into buildbot. I can't get the worker to run.
Version info:
```
user@Ubuntu1604:~$ lsb_release --all
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.7 LTS
Release: 16.04
Codename: xenial
user@Ubuntu1604:~$ uname -a
Linux Ubuntu1604 4.15.0-142-generic #146~16.04.1-Ubuntu SMP Tue Apr 13 09:26:57 UTC 2021 i686 athlon i686 GNU/Linux
user@Ubuntu1604:~$ python2 --version
Python 2.7.12
user@Ubuntu1604:~$ pip2 --version
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
user@Ubuntu1604:~$ python3 --version
Python 3.5.2
user@Ubuntu1604:~$ pip3 --version
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
```
Installation fails using pip2:
```
user@Ubuntu1604:~$ pip2 install --user buildbot-worker
Collecting buildbot-worker
Using cached https://files.pythonhosted.org/packages/e1/de/d0b578e4e2e30b4c5eca5ddfb71b9db6b9673918b954b504743424df5e47/buildbot_worker-3.1.1-py2.py3-none-any.whl
Collecting future (from buildbot-worker)
Collecting twisted>=17.9.0 (from buildbot-worker)
Using cached https://files.pythonhosted.org/packages/c2/41/3f30da0f7025480eff8feb9ef0927c6db6bbbf6e64985cac77ee0210a903/Twisted-21.2.0.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 1, in
File "/tmp/pip-build-3k6nwy/twisted/setup.py", line 10, in
import pathlib
ImportError: No module named pathlib
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-3k6nwy/twisted/
You are using pip version 8.1.1, however version 21.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
```
I then tried manually/forcefully installing pathlib on pip2, but then the buildbot-worker installation failed with ``` AttributeError: 'PosixPath' object has no attribute 'read_text'``` instead.
Install succeeds using pip3, but running it fails:
```
user@Ubuntu1604:~$ pip3 install --user buildbot-worker
Installing collected packages: setuptools, zope.interface, six, attrs, Automat, constantly, idna, hyperlink, incremental, twisted, future, buildbot-worker
Successfully installed Automat-20.2.0 attrs-20.3.0 buildbot-worker-3.1.1 constantly-15.1.0 future-0.18.2 hyperlink-21.0.0 idna-3.1 incremental-21.3.0 setuptools-56.1.0 six-1.15.0 twisted-21.2.0 zope.interface-5.4.0
You are using pip version 8.1.1, however version 21.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
user@Ubuntu1604:~$ buildbot-worker
Traceback (most recent call last):
File "/home/user/.local/bin/buildbot-worker", line 7, in
from buildbot_worker.scripts.runner import run
File "/home/user/.local/lib/python3.5/site-packages/buildbot_worker/scripts/runner.py", line 28, in
from twisted.python import log
File "/home/user/.local/lib/python3.5/site-packages/twisted/python/log.py", line 20, in
from twisted.python import reflect
File "/home/user/.local/lib/python3.5/site-packages/twisted/python/reflect.py", line 377, in
def _safeFormat(formatter: Union[types.FunctionType, Type[str]], o: object) -> str:
File "/usr/lib/python3.5/typing.py", line 552, in __getitem__
dict(self.__dict__), parameters, _root=True)
File "/usr/lib/python3.5/typing.py", line 512, in __new__
for t2 in all_params - {t1} if not isinstance(t2, TypeVar)):
File "/usr/lib/python3.5/typing.py", line 512, in
for t2 in all_params - {t1} if not isinstance(t2, TypeVar)):
File "/usr/lib/python3.5/typing.py", line 1077, in __subclasscheck__
if super().__subclasscheck__(cls):
File "/usr/lib/python3.5/abc.py", line 225, in __subclasscheck__
for scls in cls.__subclasses__():
TypeError: descriptor '__subclasses__' of 'type' object needs an argument
```
Does Buildbot-worker actually support 2.7 and 3.5? Is the doc out of date?
Contributor guide
Research direction
Start with the installation requirements manual and the `buildbot-worker` entry point, then reproduce the reported installs on the listed Python 2.7 and 3.5 environments. Compare the documented support with the dependency versions that are selected; done means the supported-version guidance or dependency checks correctly prevent these incompatible installations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- ci-cd
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100