-
Notifications
You must be signed in to change notification settings - Fork 92
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
Switching from setup.py to pyproject.toml #1409
Conversation
NOTE: I ran the |
@drewj-usnctech @sombrereau I don't expect this to affect you. But, just in case, I thought you'd want a head's up. |
👍 😻 |
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.
A few comments to consider. Though I'm well out of my wheelhouse with providing an actual review!
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.
I'll approve, but someone should provide a secondary review as I'm not particularly well versed in this section of ARMI....
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.
I love this so much.
Tony ended up getting you to add the docs to the toml, which was a great addition. I really can't think of anything missing here. I eyeball checked that the dependencies and old MANIFEST.in files matched. All looks great to me!
Here we are switching from `setup.py` to `pyproject.toml`, but the new `pyproject.toml` file actually replaces: * `MANIFEST.in` * `pytest.ini` * `requirements-docs.txt` * `requirements-testing.txt` * `requirements.txt` * `ruff.toml` * `setup.py` Please notice this means that the version of ARMI is now defined in `pyproject.toml` not `armi/meta.py`. So the code has to get the version information from `importlib`.
What is the change?
Here we are switching from
setup.py
topyproject.toml
, but the newpyproject.toml
file actually replaces:MANIFEST.in
pytest.ini
requirements-docs.txt
requirements-testing.txt
requirements.txt
ruff.toml
setup.py
Please notice this means that the version of ARMI is now defined in
pyproject.toml
notarmi/meta.py
. So the code has to get the version information fromimportlib
.Why is the change being made?
The Python Org is forcing our hand on this. The official Python packaging docs now recommend switching to
pyproject.toml
. So this will close #1124.However, the new solution is certainly more modern. I like that we are centralizing so many thing into one place.
Checklist
doc/release/0.X.rst
) are up-to-date with any important changes.doc
folder.setup.py
.