<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>My Blog on Dan Passaro</title><link>https://danpassaro.dev/blog/</link><description>Recent content in My Blog on Dan Passaro</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 20 Sep 2026 15:27:12 -0400</lastBuildDate><atom:link href="https://danpassaro.dev/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>New to Python packaging? Avoid hatch</title><link>https://danpassaro.dev/blog/new-to-python-packaging-avoid-hatch/</link><pubDate>Sun, 20 Sep 2026 15:27:12 -0400</pubDate><guid>https://danpassaro.dev/blog/new-to-python-packaging-avoid-hatch/</guid><description>&lt;p&gt;I recently built &lt;a href="https://codeberg.org/dan-passaro/gql-builder"&gt;a Python
library&lt;/a&gt; for the first time in a
while, and to make it available in PyPI I followed &lt;a href="https://packaging.python.org/en/latest/tutorials/packaging-projects/"&gt;the official Python
packaging
guide&lt;/a&gt;. But
it turns out there&amp;rsquo;s some rough edges in the suggested tools.&lt;/p&gt;
&lt;p&gt;Namely, the build backend &lt;a href="https://hatch.pypa.io/"&gt;hatch&lt;/a&gt; puts &lt;strong&gt;all&lt;/strong&gt; the files
in the project directory into the built sdist, except from some files it chooses
to exclude, which led to a gitignored file as well as VCS metadata getting
packaged and uploaded to PyPI. This really surprised me, and I think most Python
users new to packaging would be better served by choosing a conservative build
backend like &lt;a href="https://docs.astral.sh/uv/concepts/build-backend/"&gt;uv_build&lt;/a&gt;,
which puts only the Python source modules and some specific project-level files
into the sdist.&lt;/p&gt;</description></item></channel></rss>