Use pyproject.toml - #6774
Conversation
fbe591a to
9facb10
Compare
9facb10 to
27b2b7e
Compare
dschult
left a comment
There was a problem hiding this comment.
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 <dschult@colgate.edu>
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. |
dschult
left a comment
There was a problem hiding this comment.
Nice! Thanks! i approve this PR
rossbar
left a comment
There was a problem hiding this comment.
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 <dschult@colgate.edu> --------- Co-authored-by: Dan Schult <dschult@colgate.edu>
* Use pyproject.toml * Update pyproject.toml with requirements * Update tools/generate_pyproject.toml.py Co-authored-by: Dan Schult <dschult@colgate.edu> --------- Co-authored-by: Dan Schult <dschult@colgate.edu>
* Use pyproject.toml * Update pyproject.toml with requirements * Update tools/generate_pyproject.toml.py Co-authored-by: Dan Schult <dschult@colgate.edu> --------- Co-authored-by: Dan Schult <dschult@colgate.edu>
This uses
pyproject.tomland removessetup.py,.mypi.ini, andruff.toml. I replicated the previous behavior wheresetup.pywas grabbing optional dependencies from therequirementsfiles 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.tomlis autogenerated from therequirementsandtools/pyproject.toml.inviapython tools/generate_pyproject.toml.py. Thepre-commitmonitors everything to make sure things don't get out-of-sync.