Conversation
pyproject.toml
Outdated
| __version_info__ = {version_tuple} | ||
| ''' | ||
| build.hooks.vcs.version-file = "src/platformdirs/version.py" | ||
| build.targets.sdist.include = ["/src", "/tests", "/tox.ini"] |
There was a problem hiding this comment.
Well there was no MANIFEST.in to go by so I thought this was a decent default. I can remove this if we want to ship everything.
There was a problem hiding this comment.
Because setuptools-scm packages every VCS file by default into the sdist, there's no need for a MANIFEST.in. How does hatchling decide what to put in the sdist?
There was a problem hiding this comment.
Everything by default too, removing now
There was a problem hiding this comment.
Can you define everything? Everything that's version-controlled and everything in the working directory are very different 😆
There was a problem hiding this comment.
Julian
left a comment
There was a problem hiding this comment.
(LGTM after Bernat's question!)
| hooks: | ||
| - id: tox-ini-fmt | ||
| args: [ "-p", "fix" ] | ||
| - repo: https://github.com/asottile/setup-cfg-fmt |
There was a problem hiding this comment.
|
black needed upgrading psf/black#2966 |
|
Should I just remove the pyproject-fmt hook? |
|
Sure 👍 |
Summary of changes
This implements PEP 621, obviating the need for
setup.py. The build backendhatchling(of which I am a maintainer) is quite stable and actively developed, 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, Arch Linux, conda-forge, Nixpkgs, etc.In comparison to
setuptools, Hatchling has reproducible builds, supports the modern PEP 660 editable installation standard, has a more intuitive plugin system, and the codebase is an order of magnitude smaller thus making it more auditable and less prone to bugs.Notes
setup.cfg