-
Notifications
You must be signed in to change notification settings - Fork 16
Unify (most) package metadata and tool configuration #73
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
Conversation
Executable `setup.py` configuration has generally fallen out of favor, with declarative project configuration files like `setup.cfg` and `pyproject.toml` becoming more popular. The following files are subsumed by this change: * `.coveragerc` * `MANIFEST.in` * `apiron/VERSION` (thanks in part to `importlib_metadata`!) * `pytest.ini` * `requirements.txt` * `tox.ini` It also reduces `setup.py` to its minimal form. I think I would've preferred to cut over to `pyproject.toml` if we could, but [coverage does not yet support it](nedbat/coveragepy#699). This also means the configuration for `black` still sits in `pyproject.toml`, because _it_ doesn't support `setup.cfg`. Fortunately, the content of `setup.cfg` should be relatively portable to `pyproject.toml` when the time comes.
@@ -1,5 +1,5 @@ | |||
-r requirements.txt |
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.
requirements.txt
is no longer relevant to dev or are we taking a different approach?
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.
requirements.txt
has been removed in favor of setup.cfg:options:install_requires
. tox
packages and installs apiron
in each virtual environment, so requests
gets picked up as part of that process. You could optionally pip install [-e] .
manually if you're doing interactive testing.
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.
Looks good. Nothing jumping out at me
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.
Looks good, was going to say we could add URLs to homepage or readthedoc, but this is meant to be minimal.
This change is a: (check at least one)
Is this a breaking change? (check one)
Is the:
What does this change address?
Executable
setup.py
configuration has generally fallen out of favor, with declarative project configuration files likesetup.cfg
andpyproject.toml
becoming more popular. Additionally, many tools have historically used tool-specific configuration files but are slowly converging on centralized configuration instead.How does this change work?
The following files are subsumed by moving their configuration/information to
setup.cfg
:.coveragerc
MANIFEST.in
apiron/VERSION
(thanks in part toimportlib_metadata
for the docs!)pytest.ini
requirements.txt
tox.ini
It also reduces
setup.py
to its minimal form.Additional context
I think I would've preferred to cut over to
pyproject.toml
if we could, but coverage does not yet support it. This also means the configuration forblack
still sits inpyproject.toml
, because it doesn't supportsetup.cfg
. Fortunately, the content ofsetup.cfg
should be relatively portable topyproject.toml
when the time comes.