-
Notifications
You must be signed in to change notification settings - Fork 6
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
Update package metadata #17
Conversation
@ofek While I appreciate your intentions here, it's worth waiting on setuptools since it's probably more likely to be maintained long-term than a single-author project hatch/hatchling. I would suggest to wait for the implementation of PEP 621/631 in setuptools (which apparently is very close). |
@jezdez Hello again! I understand that critique but it's worth noting that Would you be open to a different build backend then? Some more info here: https://peps.python.org/pep-0517/#abstract BTW that feature you linked will be experimental for some time. |
Oh another benefit that encouraged python-tuf (which will soon be used by PyPI itself for PEP 458) to switch is that artifacts are reproducible 😄 |
@jezdez Sorry for not following up! I was out for a bit with bronchitis. Do you want me to do anything else here? |
Small update: Hatch will likely be adopted by PyPA in the next week
Nothing major will change, just the repo location |
This is indeed good news, thanks for making the move! |
Transfer complete! https://github.com/pypa/hatch |
Background
Hello there! The Python packaging ecosystem has standardized on the interface for build backends (PEP 517/PEP 660) and the format for metadata declaration (PEP 621/PEP 631). As a result, the use of
setup.py
files is now heavily discouraged.So, I'm spending my free time updating important projects so that they are modernized and set an example for others 😄
Summary of changes
This implements PEP 621, obviating the need for
setup.py
,setup.cfg
, andMANIFEST.in
. Support has not landed insetuptools
, so builds will now usehatchling
. It is quite stable and actively maintained, the only reason the version is 0.x is because 1.0.0 will drop support for Python 2. It's also on the major distribution channels such as Debian, Fedora, conda-forge, Nixpkgs, etc.Other projects have done this such as pipx, tox, all Datadog Agent integrations, etc.
Notes
src/python/ensureconda/
hatchling
and other build backends likesetuptools
have already done so. This will not break anything becausepip
only looks for version candidates that satisfy therequires-python
field. Here are stats for the curious: https://pypistats.org/packages/ensurecondapkg_resources
and thus reducing import/load time by ~400ms for me locally*.egg-info
frompython setup.py develop
; this is now fixed: