palantir / python-language-server

An implementation of the Language Server Protocol for Python
MIT License
2.61k stars 283 forks source link

Wrong pylint version in python-language-server[all] #908

Open phdru opened 3 years ago

phdru commented 3 years ago

Hello! There is a bug related to all extras declaration at setup.py, line 61. There is an if that decides pylint version; that if doesn't work with universal wheels that you currently produce. The problem with the if is that it doesn't work with wheels, it only works with source distributions (sdist, .tar.gz). It's because pip doesn't run setup.py when installing, it only uses setup.py when building wheel on the developer's host. Hence the version of pylint depends on the version of Python used to build the wheel.

I see 4 ways of fixing it.

  1. Remove the if altogether, allow pip to choose a version of pylint.
  2. Do not publish wheels, only produce source distributions.
  3. Produce 2 different non-universal wheels for Python 2 and 3 separately.
  4. Make the version declarative. The syntax for it is a bit strange; see https://stackoverflow.com/a/32955538/7976758 and examples in SQLObject's setup.py.

PS. See the bug at wok and my suggested workaround at https://stackoverflow.com/q/66195760/7976758 .

gorrog commented 3 years ago

Thanks for filing this report @phdru - it's affecting me as well.