<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: zanie</title><link>https://news.ycombinator.com/user?id=zanie</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 10 Apr 2026 04:47:07 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=zanie" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by zanie in "Open source security at Astral"]]></title><description><![CDATA[
<p>We do address this in the article! It's defense in depth, not theater.<p>We audit all of our actions, check if they pull in mutable dependencies, contribute upstream fixes, and migrate off using any action when we can.<p>(I work at Astral)</p>
]]></description><pubDate>Thu, 09 Apr 2026 12:16:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47702701</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=47702701</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47702701</guid></item><item><title><![CDATA[New comment by zanie in "Astral to Join OpenAI"]]></title><description><![CDATA[
<p>A brief note, your numbers are way off here — Astral subsequently raised a Series A and B (as mentioned in the blog post) but did not announce them. We were doing great financially.<p>(I work at Astral)</p>
]]></description><pubDate>Thu, 19 Mar 2026 14:42:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=47440375</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=47440375</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47440375</guid></item><item><title><![CDATA[New comment by zanie in "Announcing the Beta release of ty"]]></title><description><![CDATA[
<p>Ruff wasn't named after the bird, we just think it's funny that Charlie didn't know it was a bird. He made up the word :)</p>
]]></description><pubDate>Wed, 17 Dec 2025 19:10:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=46304074</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=46304074</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46304074</guid></item><item><title><![CDATA[New comment by zanie in "Announcing the Beta release of ty"]]></title><description><![CDATA[
<p>This is also documented at <a href="https://github.com/astral-sh/ty?tab=readme-ov-file#contributing" rel="nofollow">https://github.com/astral-sh/ty?tab=readme-ov-file#contribut...</a> and <a href="https://github.com/astral-sh/ty/blob/main/CONTRIBUTING.md#repository-structure" rel="nofollow">https://github.com/astral-sh/ty/blob/main/CONTRIBUTING.md#re...</a></p>
]]></description><pubDate>Tue, 16 Dec 2025 23:21:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=46296117</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=46296117</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46296117</guid></item><item><title><![CDATA[New comment by zanie in "Announcing the Beta release of ty"]]></title><description><![CDATA[
<p>As noted in the linked issue<p>> At time of writing, many of the remaining rules require type inference and/or multi-file analysis, and aren't ready to be implemented in Ruff.<p>ty is actually a big step in this direction as it provides multi-file analysis and type inference.<p>(I work at Astral)</p>
]]></description><pubDate>Tue, 16 Dec 2025 22:21:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46295425</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=46295425</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46295425</guid></item><item><title><![CDATA[New comment by zanie in "Uv is the best thing to happen to the Python ecosystem in a decade"]]></title><description><![CDATA[
<p>You're upset that uv doesn't yet support something that no other tool in the ecosystem supports?<p>I'd love for uv to lock build dependencies, but due to the dynamic nature of Python package metadata it's quite a hard problem. It'll be supported eventually though.<p>(I work on uv)</p>
]]></description><pubDate>Thu, 30 Oct 2025 16:57:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=45762213</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=45762213</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45762213</guid></item><item><title><![CDATA[New comment by zanie in "Code formatting comes to uv experimentally"]]></title><description><![CDATA[
<p>It's intentionally distinct from the `uv tool` interface — it won't change `ruff` or `uv tool run` behaviors.</p>
]]></description><pubDate>Fri, 22 Aug 2025 17:44:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=44987412</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=44987412</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44987412</guid></item><item><title><![CDATA[New comment by zanie in "PYX: The next step in Python packaging"]]></title><description><![CDATA[
<p>Thanks that's helpful.<p>Did you try reducing the concurrency limit?</p>
]]></description><pubDate>Thu, 14 Aug 2025 12:44:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=44899743</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=44899743</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44899743</guid></item><item><title><![CDATA[New comment by zanie in "PYX: The next step in Python packaging"]]></title><description><![CDATA[
<p>Please open an issue with some details about the memory usage. We're happy to investigate and feedback on how it's working in production is always helpful.<p>(I work on uv)</p>
]]></description><pubDate>Thu, 14 Aug 2025 03:58:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=44896601</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=44896601</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44896601</guid></item><item><title><![CDATA[New comment by zanie in "PYX: The next step in Python packaging"]]></title><description><![CDATA[
<p>Thanks for the feedback!</p>
]]></description><pubDate>Wed, 13 Aug 2025 23:21:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=44895056</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=44895056</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44895056</guid></item><item><title><![CDATA[New comment by zanie in "PYX: The next step in Python packaging"]]></title><description><![CDATA[
<p>Yes, we let you override our detection of your hardware. Though we haven't implemented dumping detected information on one platform for use on another, it's definitely feasible, e.g., we're exploring a static metadata format as a part of the wheel variant proposal <a href="https://github.com/wheelnext/pep_xxx_wheel_variants/issues/42" rel="nofollow">https://github.com/wheelnext/pep_xxx_wheel_variants/issues/4...</a></p>
]]></description><pubDate>Wed, 13 Aug 2025 22:58:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=44894877</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=44894877</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44894877</guid></item><item><title><![CDATA[New comment by zanie in "PYX: The next step in Python packaging"]]></title><description><![CDATA[
<p>It's actually not powered by Wheel Variants right now, though we are generally early adopters of the initiative :)</p>
]]></description><pubDate>Wed, 13 Aug 2025 19:39:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=44892862</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=44892862</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44892862</guid></item><item><title><![CDATA[New comment by zanie in "PYX: The next step in Python packaging"]]></title><description><![CDATA[
<p>We're hoping that building a commercial service makes it clear that we have a sustainable business model and that our tools (like uv) will remain free and permissively licensed.<p>(I work at Astral)</p>
]]></description><pubDate>Wed, 13 Aug 2025 19:38:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=44892842</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=44892842</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44892842</guid></item><item><title><![CDATA[New comment by zanie in "I'm switching to Python and actually liking it"]]></title><description><![CDATA[
<p>If you open even a brief issue and tag me @zanieb I'm happy to take a look!</p>
]]></description><pubDate>Wed, 16 Jul 2025 21:43:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=44587111</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=44587111</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44587111</guid></item><item><title><![CDATA[New comment by zanie in "The uv build back end is now stable"]]></title><description><![CDATA[
<p>We consider it a breaking change to switch the default, so that's coming a bit later.</p>
]]></description><pubDate>Thu, 03 Jul 2025 17:24:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=44457291</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=44457291</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44457291</guid></item><item><title><![CDATA[New comment by zanie in "Switching Pip to Uv in a Dockerized Flask / Django App"]]></title><description><![CDATA[
<p>Installation in Docker just looks like<p><pre><code>    COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
</code></pre>
<a href="https://docs.astral.sh/uv/guides/integration/docker/#using-uv-in-docker" rel="nofollow">https://docs.astral.sh/uv/guides/integration/docker/#using-u...</a><p>(We'd recommend pinning the version or SHA in production)</p>
]]></description><pubDate>Tue, 24 Jun 2025 15:42:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=44367429</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=44367429</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44367429</guid></item><item><title><![CDATA[New comment by zanie in "Pyrefly: A new type checker and IDE experience for Python"]]></title><description><![CDATA[
<p>ty doesn't invoke a Python interpreter to discover imports yet — so you need to either set `VIRTUAL_ENV` or pass `--python` to configure your target environment. We'll expand support here in the future, but this part of ty's interface is intentionally minimal while we focus on core type checking features.</p>
]]></description><pubDate>Sun, 18 May 2025 03:52:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=44018885</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=44018885</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44018885</guid></item><item><title><![CDATA[New comment by zanie in "Ty: A fast Python type checker and language server"]]></title><description><![CDATA[
<p>The plan remains the same as when the company was announced (<a href="https://astral.sh/blog/announcing-astral-the-company-behind-ruff#whats-next" rel="nofollow">https://astral.sh/blog/announcing-astral-the-company-behind-...</a>) — paid services that build on and integrate with the free tooling.</p>
]]></description><pubDate>Thu, 08 May 2025 18:32:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=43929615</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=43929615</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43929615</guid></item><item><title><![CDATA[New comment by zanie in "Ty: A fast Python type checker and language server"]]></title><description><![CDATA[
<p>ditto! but we gave impressively non-overlapping answers</p>
]]></description><pubDate>Wed, 07 May 2025 19:52:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=43919941</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=43919941</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43919941</guid></item><item><title><![CDATA[New comment by zanie in "Ty: A fast Python type checker and language server"]]></title><description><![CDATA[
<p>As in, how are we parsing the Python code into an AST?<p>CPython uses a generated parser. The grammar is defined in <a href="https://github.com/python/cpython/blob/main/Grammar/python.gram">https://github.com/python/cpython/blob/main/Grammar/python.g...</a> which is used to generate the specification at <a href="https://docs.python.org/3/reference/grammar.html#full-grammar-specification" rel="nofollow">https://docs.python.org/3/reference/grammar.html#full-gramma...</a><p>We use a hand-written parser, in Rust, based on the specification. 
We've written that previously at <a href="https://astral.sh/blog/ruff-v0.4.0#a-hand-written-parser" rel="nofollow">https://astral.sh/blog/ruff-v0.4.0#a-hand-written-parser</a></p>
]]></description><pubDate>Wed, 07 May 2025 19:49:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=43919910</link><dc:creator>zanie</dc:creator><comments>https://news.ycombinator.com/item?id=43919910</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43919910</guid></item></channel></rss>