palantir/python-language-server

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

phdru opened this issue · 1 comments

phdru commented

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 .

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