Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge setup.cfg spec with pyproject.toml one and deprecate setup.py and setup.cfg #1160

Closed
KOLANICH opened this issue Sep 29, 2017 · 4 comments
Labels
enhancement Needs Discussion Issues where the implementation still needs to be discussed.

Comments

@KOLANICH
Copy link
Contributor

KOLANICH commented Sep 29, 2017

Now we have a bunch of files. It's a mess:
1 python packages metadata is in fact generated by setup.py script. This means if you need to parse it you'll have to execute the script.
2 Recently pyproject.toml was introduced, which contains for now only the description of the packages needed to build a package and data in backend-specific format. Why don't we have the things which are part of setup.cfg standardized too?

So I propose to
0 ship setuptools with python. I mean preinstall it as if it was installed by pip.
1 integrate setup.cfg spec into pyproject.toml and publish a PEP
2 setuptools should be workable without setup.py, only with pyproject.toml in a dir
3 pyproject.toml is the primary source of metainfo. setup.py should be executed if and only if pyproject.toml uses any variables from it.
4 Write a warning in red that setup.py is deprecated each time setuptools.setup is used

@ghost
Copy link

ghost commented Sep 29, 2017

0 ship setuptools with python

Not going to happen. In fact, we're discussing moving distutils into setuptools (@jaraco, see distutils-sig).

@tuukkamustonen
Copy link

tuukkamustonen commented Oct 19, 2017

1 merge setup.cfg into pyproject.toml and publish a PEP

Just noting that setup.cfg is being used also by several other tools like flake8, pytest, etc.

4 pyproject.toml is the primary source of metainfo. setup.py should be executed if and only if it pyproject.toml uses some variables from it.

Care to elaborate how would pyproject.toml use variables from setup.py?

@RonnyPfannschmidt
Copy link
Contributor

as things currently are, setup.py is the entrypoint and could use variables from pyproject.toml

i propose starting with a tool.setuptools.opptions section for putting plain setup.py parameters

a tool.setuptools.metadata for the plain metadata sections and tool.setuptools.comands for commands/aliases

@pganssle
Copy link
Member

pganssle commented Nov 2, 2019

I'm going to close this in favor of #1688. We are not going to deprecate setup.py, and Nathaniel is probably right that any deprecation period for setup.cfg would probably be "forever" (though it's certainly possible).

@pganssle pganssle closed this as completed Nov 2, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Needs Discussion Issues where the implementation still needs to be discussed.
Projects
None yet
Development

No branches or pull requests

4 participants