4
New to Python packaging? Avoid hatch
(danpassaro.dev)
Welcome to the Python community on the programming.dev Lemmy instance!
Past
November 2023
October 2023
July 2023
August 2023
September 2023
? I linked directly to the documentation I read, and that's how I wound up using hatch in the first place. Did you read my article...? Reading the official Python documentation is what led to me uploading my
.jjfolder and a gitignored.envfile to PyPI and writing this post. And writing the post was not a waste of time.That's fine. I'm sure there are other build backends that work similarly to uv_build and only grab what's needed to distribute your library. The point isn't that everyone needs to use uv_build, the point is that hatch has surprising and imo dangerous default behavior.
You see, I've actually read your article, you even linked to the hatchling site yourself. It takes little effort. Demonstration
This doesn't explain that hatch will package everything in the project directory by default. As a new user making a package, why would you think to look for hatch configuration options?
I mentioned in the article (maybe you don't read that carefully?) that hatch can be configured to do what you need, but if you're just following the packaging guide, which doesn't mention this behavior or provide any kind of heads up to new users, you won't be aware that it is going to even try to look at a directory like
.jj. And why would it? I wouldn't expect a compiler or a tool like Maven to look at files that aren't needed to build the project. Why does hatch?Your demonstration just shows if you're already aware of the problem and you know the cause of the problem, you can find a solution. I say as much in the article and agree with the point. The point of my article is this is surprising default behavior and it's better to just use a tool that has sensible defaults.
I wouldn't try to follow hunches on how tool that has extensive and accessible documentation works, your novice is a strawman that has expectations but unable to do anything for some reason. So he should completely change the workflow.
Nothing personal, I liked your article in general, but pretending that default is all there is isn't great way to frame it, you could have linked relevant documentation and provided a snippet on how it should be done instead of dismissing it entirely, because default doesn't meet your expectations