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 π
The earliest supported Python 2 & 3 version of Hatchling is 2.7 & 3.7, respectively, therefore I've also set those as the minimum here. Python <3.7 is EOL and other build backends like flit-core and setuptools also dropped support. This will not break anything because pip only looks for version candidates that satisfy the requires-python field. Here are stats for the curious: https://pypistats.org/packages/pyperclip
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, Gentoo Linux, MacPorts, OpenEmbedded, Spack, etc.The earliest supported Python 2 & 3 version of Hatchling is 2.7 & 3.7, respectively, therefore I've also set those as the minimum here. Python <3.7 is EOL and other build backends like
flit-core
andsetuptools
also dropped support. 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/pyperclipNotes