-
-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Use pyproject.toml #6774
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
Use pyproject.toml #6774
Conversation
fbe591a
to
9facb10
Compare
9facb10
to
27b2b7e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice to have this working! :}
Can you explain why we don't need wheel or setuptools anymore? What is doing the work that replaces them?
Picky nits:
- some places use single quotes ', others use double ", some use both -> pyproject.toml.in lines ~50 and ~100. Does it matter? That is, is toml like python in its treatment of " vs '?
- I found a skimage -> networkx conversion.
Co-authored-by: Dan Schult <[email protected]>
In
Basically, pip 10+ will create a new virtual environment, install If we use There is more detail here https://learn.scientific-python.org/development/guides/packaging_classic/#pep-517518-support-high-priority. |
I think the above means we can simplify things in our CI more (perhaps). I haven't had time to look into it, but was planning to talk to Henry about it soon. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice! Thanks! i approve this PR
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks @jarrodmillman for making this transition. I'm not an expert on PEP517/518 but from my limited understanding I think this makes sense!
* Use pyproject.toml * Update pyproject.toml with requirements * Update tools/generate_pyproject.toml.py Co-authored-by: Dan Schult <[email protected]> --------- Co-authored-by: Dan Schult <[email protected]>
* Use pyproject.toml * Update pyproject.toml with requirements * Update tools/generate_pyproject.toml.py Co-authored-by: Dan Schult <[email protected]> --------- Co-authored-by: Dan Schult <[email protected]>
* Use pyproject.toml * Update pyproject.toml with requirements * Update tools/generate_pyproject.toml.py Co-authored-by: Dan Schult <[email protected]> --------- Co-authored-by: Dan Schult <[email protected]>
This uses
pyproject.toml
and removessetup.py
,.mypi.ini
, andruff.toml
. I replicated the previous behavior wheresetup.py
was grabbing optional dependencies from therequirements
files using the same system we used in scikit-image (scikit-image/scikit-image#6726 and scikit-image/scikit-image#6763) and numpydoc (numpy/numpydoc#474).pyproject.toml
is autogenerated from therequirements
andtools/pyproject.toml.in
viapython tools/generate_pyproject.toml.py
. Thepre-commit
monitors everything to make sure things don't get out-of-sync.