twolfson / restructuredtext-lint

reStructuredText linter
The Unlicense
171 stars 20 forks source link

DEPRECATION: restructuredtext-lint is being installed using the legacy 'setup.py install' method #62

Closed jrobichaud closed 8 months ago

jrobichaud commented 9 months ago
Installing collected packages: restructuredtext-lint
  DEPRECATION: restructuredtext-lint is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559
  Running setup.py install for restructuredtext-lint ... done
twolfson commented 9 months ago

Ooh, good find! I'll take a look at this by the end of this weekend

Unless you'd like to take a look (if so, let me know)

twolfson commented 9 months ago

I looked at some docs, but just tried to reproduce the issue and I'm struggling to do so with pip==23.3.2

Are you using something other than pip? And what version are you using?

$ mkvirtualenv rst-lint-test
$ pip --version
pip 23.3.1 from /home/todd/.virtualenvs/rst-lint-test/lib/python3.8/site-packages/pip (python 3.8)
$ pip install --upgrade pip
$ pip --version
pip 23.3.2 from /home/todd/.virtualenvs/rst-lint-test/lib/python3.8/site-packages/pip (python 3.8)
$ pip install restructuredtext-lint
Collecting restructuredtext-lint
  Using cached restructuredtext_lint-1.4.0-py3-none-any.whl
Collecting docutils<1.0,>=0.11 (from restructuredtext-lint)
  Downloading docutils-0.20.1-py3-none-any.whl.metadata (2.8 kB)
Downloading docutils-0.20.1-py3-none-any.whl (572 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 572.7/572.7 kB 5.1 MB/s eta 0:00:00
Installing collected packages: docutils, restructuredtext-lint
Successfully installed docutils-0.20.1 restructuredtext-lint-1.4.0

If I use --no-cache, the result is the same:

$ pip uninstall restructuredtext-lint
$ pip install restructuredtext-lint --no-cache
Collecting restructuredtext-lint
  Downloading restructuredtext_lint-1.4.0.tar.gz (16 kB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: docutils<1.0,>=0.11 in ./.virtualenvs/rst-lint-test/lib/python3.8/site-packages (from restructuredtext-lint) (0.20.1)
Building wheels for collected packages: restructuredtext-lint
  Building wheel for restructuredtext-lint (setup.py) ... done
  Created wheel for restructuredtext-lint: filename=restructuredtext_lint-1.4.0-py3-none-any.whl size=13774 sha256=41b31e5d895a83a2dee0a43910850427273a0d50166877e69aee9cd4e2165497
  Stored in directory: /tmp/pip-ephem-wheel-cache-n37_c9m0/wheels/b6/9d/8a/31f24f45d7b026ec9ca2dc1626c8d1229063351d1cae47284a
Successfully built restructuredtext-lint
Installing collected packages: restructuredtext-lint
Successfully installed restructuredtext-lint-1.4.0
jrobichaud commented 9 months ago

I was using python 3.11 or 3.12.

jrobichaud commented 9 months ago

If you need a reference to a working example, you can look at my library django-structlog or many other projects.

twolfson commented 9 months ago

Ah, thanks! I'll take a look at reproducing with that =) My apt-cache seems to only go up to 3.9, so I'll need to find another way to reproduce it

twolfson commented 9 months ago

No reproduction with a Python 3.11 Docker, will try 3.12:

$ docker run --detach --volume /home/todd:/host-pwd --name rst-lint-python3.11 python:3.11 tail -f /dev/null
$ docker exec -it rst-lint-python3.11 /bin/bash
root@208003ce3d2c:/# pip --version
pip 23.2.1 from /usr/local/lib/python3.11/site-packages/pip (python 3.11)
root@208003ce3d2c:/# pip install --upgrade pip
Requirement already satisfied: pip in /usr/local/lib/python3.11/site-packages (23.2.1)
Collecting pip
...
Successfully installed pip-23.3.2
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
root@208003ce3d2c:/# pip --version
pip 23.3.2 from /usr/local/lib/python3.11/site-packages/pip (python 3.11)
root@208003ce3d2c:/# pip install restructuredtext-lint
Collecting restructuredtext-lint
  Downloading restructuredtext_lint-1.4.0.tar.gz (16 kB)
  Preparing metadata (setup.py) ... done
Collecting docutils<1.0,>=0.11 (from restructuredtext-lint)
  Downloading docutils-0.20.1-py3-none-any.whl.metadata (2.8 kB)
Downloading docutils-0.20.1-py3-none-any.whl (572 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 572.7/572.7 kB 6.4 MB/s eta 0:00:00
Building wheels for collected packages: restructuredtext-lint
  Building wheel for restructuredtext-lint (setup.py) ... done
  Created wheel for restructuredtext-lint: filename=restructuredtext_lint-1.4.0-py3-none-any.whl size=13773 sha256=0f62a48ab82d764854d080222760302e9c0dac9d726ad282077016a671d545aa
  Stored in directory: /root/.cache/pip/wheels/1b/be/48/dd54f11ac394512fe1575657f4d5efc908be9d9fb694105b9f
Successfully built restructuredtext-lint
Installing collected packages: docutils, restructuredtext-lint
Successfully installed docutils-0.20.1 restructuredtext-lint-1.4.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
twolfson commented 9 months ago

Same results with Python 3.12. Can you provide explicit steps to reproduce the message?

$ docker run --detach --volume /home/todd:/host-pwd --name rst-lint-python3.12 python:3.12 tail -f /dev/null
$ docker exec -it rst-lint-python3.12 /bin/bash
root@13177e1c0af2:/# pip --version
pip 23.2.1 from /usr/local/lib/python3.12/site-packages/pip (python 3.12)
root@13177e1c0af2:/# pip install --upgrade pip
Requirement already satisfied: pip in /usr/local/lib/python3.12/site-packages (23.2.1)
Collecting pip
  Obtaining dependency information for pip from https://files.pythonhosted.org/packages/15/aa/3f4c7bcee2057a76562a5b33ecbd199be08cdb4443a02e26bd2c3cf6fc39/pip-23.3.2-py3-none-any.whl.metadata
  Downloading pip-23.3.2-py3-none-any.whl.metadata (3.5 kB)
Downloading pip-23.3.2-py3-none-any.whl (2.1 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 12.1 MB/s eta 0:00:00
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 23.2.1
    Uninstalling pip-23.2.1:
      Successfully uninstalled pip-23.2.1
Successfully installed pip-23.3.2
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
root@13177e1c0af2:/# pip --version
pip 23.3.2 from /usr/local/lib/python3.12/site-packages/pip (python 3.12)
root@13177e1c0af2:/# pip install restructuredtext-lint
Collecting restructuredtext-lint
  Downloading restructuredtext_lint-1.4.0.tar.gz (16 kB)
  Preparing metadata (setup.py) ... done
Collecting docutils<1.0,>=0.11 (from restructuredtext-lint)
  Downloading docutils-0.20.1-py3-none-any.whl.metadata (2.8 kB)
Downloading docutils-0.20.1-py3-none-any.whl (572 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 572.7/572.7 kB 6.0 MB/s eta 0:00:00
Building wheels for collected packages: restructuredtext-lint
  Building wheel for restructuredtext-lint (setup.py) ... done
  Created wheel for restructuredtext-lint: filename=restructuredtext_lint-1.4.0-py3-none-any.whl size=13774 sha256=60c9775a5a7574ccfc43132275530f20b7b5b395270078f035a22f0179e14723
  Stored in directory: /root/.cache/pip/wheels/3c/9d/1d/ad34a7ae0b69263cf5ac1c0fbce817044962b2b87fb51921d6
Successfully built restructuredtext-lint
Installing collected packages: docutils, restructuredtext-lint
Successfully installed docutils-0.20.1 restructuredtext-lint-1.4.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

EDIT: Also tried with pip install django-structlog in this environment and no change

jrobichaud commented 9 months ago

I managed to reproduce the problem, it happens when using pip 23.0 but not with pip 23.3.2.

The tendency was to migrate projects to use pyproject.toml instead of setup.py but it appears in pip 23.1 they removed the deprecation warning.

I am not sure if its currently a problem or not. 🤔

It relates this: https://github.com/pypa/pip/pull/11874

twolfson commented 9 months ago

Ah, great sleuthing!

I'll do a sanity check pass the pip 23.3.2 still installs the proper rst-lint CLI (by the end of the weekend)

If it does, then I think we're in the clear and can mark this as a wontfix for now

jrobichaud commented 9 months ago

Just wondering, is there anything preventing this project to migrate to use pyproject.toml instead?

twolfson commented 9 months ago

Mostly personal bandwidth. Easier to let things sit still, rather than changing them and needing to fix additional things that break

twolfson commented 8 months ago

My Docker sandbox was still set up =D It looks like rst-lint does work with the latest pip. Closing this issue as wontfix

Thank you for reporting this and helping us potentially catch it!

$ docker exec -it rst-lint-python3.12 /bin/bash
root@13177e1c0af2:/# rst-lint
usage: rst-lint [-h] [--version] [--format {text,json}] [--encoding ENCODING]
                [--level {debug,info,warning,error,severe}] [--rst-prolog RST_PROLOG]
                path [path ...]
rst-lint: error: the following arguments are required: path