-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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 #2398
Update package metadata #2398
Conversation
d228c21
to
a7ab903
Compare
Thanks for this PR! We have a few other things that are higher on our priority list at the moment, so it may take us a bit to review this. |
967df19
to
2420fd5
Compare
@kclowes There was a conflict so I rebased 🙂 |
CI is passing btw |
1d612d2
to
d84bd20
Compare
d84bd20
to
5849898
Compare
cc @fselmo |
same errors on master |
5849898
to
49e6d7e
Compare
rebased, now passing |
Thanks @ofek. Once we get The Merge changes out the door across our libraries we'll take a look. Thanks for your patience! |
49e6d7e
to
4b48880
Compare
4b48880
to
3796e60
Compare
3796e60
to
8e3806a
Compare
8e3806a
to
a5d6a78
Compare
a5d6a78
to
b4e9798
Compare
Hi @ofek. I'm sorry we've been so long in getting back to you. We discussed your proposal today and decided that we are going to stick with our current process at this time. For future proposals, please open an issue first so we can discuss changes without putting so much work into it first. |
Okay! Can you provide any details about why? |
Yep. We know our current process and it works well. Hatchling does look good, but there's no compelling reason make the change. |
What about setuptools + removing setup.py? |
You are correct, we do have room for improvement. We have talked about removing We do absolutely appreciate your contributions! Again, in order to allow us to fit things into our roadmap, please introduce ideas as Issues so they can be discussed first. Thank you! |
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 execution of
setup.py
files is now deprecated.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
andMANIFEST.in
. The build backendhatchling
(of which I am a maintainer in the PyPA) is now used as that is the default in the official Python packaging tutorial. Hatchling is available on all the major distribution channels such as Debian, Fedora, Arch Linux, conda-forge, Nixpkgs, Alpine Linux, FreeBSD/OpenBSD, Gentoo Linux, MacPorts, OpenEmbedded, Spack, etc.Notes
Version location
The version is now stored in
web3/__init__.py
, removing the need forpkg_resources
and thus reducing import time ofweb3
by ~400ms for me locally.Source distribution
The ones on PyPI are erroneously shipping a build artifact
*.egg-info
frompip install -e .
:Also, the old
MANIFEST.in
was trying to ship arequirements.txt
but there is no such file, onlyrequirements-docs.txt
.Both of these issues are now fixed.
Cute Animal Picture