MichaelKim0407 / flake8-use-fstring

MIT License
51 stars 7 forks source link

Change to `build` for packaging #33

Open MichaelKim0407 opened 10 months ago

MichaelKim0407 commented 10 months ago

Using setup.py to build is being deprecated:

SetuptoolsDeprecationWarning: setup.py install is deprecated.
!!

        ********************************************************************************
        Please avoid running ``setup.py`` directly.
        Instead, use pypa/build, pypa/installer or other
        standards-based tools.

        See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
        ********************************************************************************

!!

Right now this library is maintenance-only, and I don't foresee any changes that would justify changing the build system. (Since we probably won't be releasing any new builds anyway.) Furthermore as the maintainer my primary concern is that my library works without introducing things I don't understand.

With that said, as this has been raised a few times (see #19 #31 #32), I'm opening this ticket to keep track of this issue and to create a place for discussion. I am open to be convinced. However I would like to ask people not to just come with a PR without discussing first.

jmahlik commented 10 months ago

Coming from https://github.com/MichaelKim0407/flake8-use-fstring/pull/32#issuecomment-1788189068. Jotting down some info here.

The main pros to adding a pyproject.toml now days would be:

The main cons:

MichaelKim0407 commented 10 months ago

I would like some clarification here. There are two different processes that currently involve setup.py: 1) building the package for release; 2) installing the package by users.

  1. When you say pip, are you referring to the installation process? I am confused because the issue we have here concerns the build process. Or does build invoke pip?
  2. In what process is pyproject.toml used? The build process, the installation process, or both?
  3. Why does pip make an isolated venv when installing? Does it only happen when pyproject.toml exists? And again, I ran into the problem when I ran build, but you are talking about the installation process, so I'm confused.