<story><title>Black, the uncompromising Python code formatter, is stable</title><url>https://pypi.org/project/black/</url></story><parent_chain><item><author>scrollaway</author><text>Congratulations. I&amp;#x27;m a Python developer of 17+ years and Black is truly a huge blessing in the Python ecosystem.&lt;p&gt;That said, I&amp;#x27;m a little sad to see it&amp;#x27;s gone stable without adding support for tabs, which would be extremely simple to add at this point (cf. &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;jleclanche&amp;#x2F;tan&amp;#x2F;commit&amp;#x2F;e23c038167528bdacddd6779c6b4234e2634cfa3&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;jleclanche&amp;#x2F;tan&amp;#x2F;commit&amp;#x2F;e23c038167528bdacdd...&lt;/a&gt;). I have a lot of people using this tab-capable fork, that I did not advertise anywhere.&lt;p&gt;Łukasz seems to have a personal grudge against tabs which may be why the issue for tab support was closed early on, but there&amp;#x27;s a plethora of good reasons to support it behind a flag. I don&amp;#x27;t want to rehash those arguments here on HN but you think you could re-think the approach a bit?&lt;p&gt;I&amp;#x27;d be happy to do a PR if it&amp;#x27;s not getting rejected right away with &amp;quot;no discussion allowed&amp;quot; like the last one was (before Black was moved to PSF maintainership).</text></item><item><author>crlees</author><text>I&amp;#x27;m pleased to announce that Black is finally non-beta software! :party:!&lt;p&gt;Change log:  &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;black.readthedocs.io&amp;#x2F;en&amp;#x2F;latest&amp;#x2F;change_log.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;black.readthedocs.io&amp;#x2F;en&amp;#x2F;latest&amp;#x2F;change_log.html&lt;/a&gt;&lt;p&gt;Going forward we&amp;#x27;ll follow our stability policy (&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;black.readthedocs.io&amp;#x2F;en&amp;#x2F;latest&amp;#x2F;the_black_code_style&amp;#x2F;index.html#stability-policy&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;black.readthedocs.io&amp;#x2F;en&amp;#x2F;latest&amp;#x2F;the_black_code_style&amp;#x2F;...&lt;/a&gt;).&lt;p&gt;Work continues as usual with bugfixes and enhancements, but style changes are now introduced under our new `--preview` CLI switch. This allows us to evolve Black&amp;#x27;s style without too much disruption to users that want consistency. The default style is updated yearly.&lt;p&gt;Thanks to our maintainers for orchestrating the efforts, especially to our most recent reinforcement Batuhan (@isidentical) who was responsible for our match statement support! A hearty thank you to all of our contributors for pushing Black forward, and to our users for being the reason we do it!</text></item></parent_chain><comment><author>btown</author><text>On the contrary, I think it&amp;#x27;s fundamentally &lt;i&gt;useful&lt;/i&gt; to the ecosystem that there be a winner in the tabs-vs-spaces&amp;#x2F;how-many-spaces debate. Code snippets become portable, developers don&amp;#x27;t need to adapt when joining a new team, etc. Indeed, &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.python.org&amp;#x2F;dev&amp;#x2F;peps&amp;#x2F;pep-0008&amp;#x2F;#indentation&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.python.org&amp;#x2F;dev&amp;#x2F;peps&amp;#x2F;pep-0008&amp;#x2F;#indentation&lt;/a&gt; has enshrined 4 spaces as the official recommendation. And when the best-in-class formatter enforces this, that&amp;#x27;s a good thing.&lt;p&gt;To be sure, I personally would have preferred that 2-spaces win out for compatibility with the Javascript ecosystem (so I am perhaps the furthest from the parent poster on the tabs-spaces spectrum!) but I abandoned my preference in favor of PEP-8 years ago, and doing so has opened far more doors for team productivity than it&amp;#x27;s closed.</text></comment>
<story><title>Black, the uncompromising Python code formatter, is stable</title><url>https://pypi.org/project/black/</url></story><parent_chain><item><author>scrollaway</author><text>Congratulations. I&amp;#x27;m a Python developer of 17+ years and Black is truly a huge blessing in the Python ecosystem.&lt;p&gt;That said, I&amp;#x27;m a little sad to see it&amp;#x27;s gone stable without adding support for tabs, which would be extremely simple to add at this point (cf. &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;jleclanche&amp;#x2F;tan&amp;#x2F;commit&amp;#x2F;e23c038167528bdacddd6779c6b4234e2634cfa3&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;jleclanche&amp;#x2F;tan&amp;#x2F;commit&amp;#x2F;e23c038167528bdacdd...&lt;/a&gt;). I have a lot of people using this tab-capable fork, that I did not advertise anywhere.&lt;p&gt;Łukasz seems to have a personal grudge against tabs which may be why the issue for tab support was closed early on, but there&amp;#x27;s a plethora of good reasons to support it behind a flag. I don&amp;#x27;t want to rehash those arguments here on HN but you think you could re-think the approach a bit?&lt;p&gt;I&amp;#x27;d be happy to do a PR if it&amp;#x27;s not getting rejected right away with &amp;quot;no discussion allowed&amp;quot; like the last one was (before Black was moved to PSF maintainership).</text></item><item><author>crlees</author><text>I&amp;#x27;m pleased to announce that Black is finally non-beta software! :party:!&lt;p&gt;Change log:  &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;black.readthedocs.io&amp;#x2F;en&amp;#x2F;latest&amp;#x2F;change_log.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;black.readthedocs.io&amp;#x2F;en&amp;#x2F;latest&amp;#x2F;change_log.html&lt;/a&gt;&lt;p&gt;Going forward we&amp;#x27;ll follow our stability policy (&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;black.readthedocs.io&amp;#x2F;en&amp;#x2F;latest&amp;#x2F;the_black_code_style&amp;#x2F;index.html#stability-policy&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;black.readthedocs.io&amp;#x2F;en&amp;#x2F;latest&amp;#x2F;the_black_code_style&amp;#x2F;...&lt;/a&gt;).&lt;p&gt;Work continues as usual with bugfixes and enhancements, but style changes are now introduced under our new `--preview` CLI switch. This allows us to evolve Black&amp;#x27;s style without too much disruption to users that want consistency. The default style is updated yearly.&lt;p&gt;Thanks to our maintainers for orchestrating the efforts, especially to our most recent reinforcement Batuhan (@isidentical) who was responsible for our match statement support! A hearty thank you to all of our contributors for pushing Black forward, and to our users for being the reason we do it!</text></item></parent_chain><comment><author>js2</author><text>On the contrary, I want to thank the authors of black for not adding tab support.&lt;p&gt;I’ve been writing Python code for two decades. I know all the arguments for tabs vs spaces.&lt;p&gt;Down the path of tabs lies madness.&lt;p&gt;If you want them that badly, please see git’s smudge&amp;#x2F;clean filters.&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;stackoverflow.com&amp;#x2F;questions&amp;#x2F;2316677&amp;#x2F;can-git-automatically-switch-between-spaces-and-tabs&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;stackoverflow.com&amp;#x2F;questions&amp;#x2F;2316677&amp;#x2F;can-git-automati...&lt;/a&gt;&lt;p&gt;There. Now the Python world has a single standard while you are free to use tabs in your checkout. See, you can make all the people happy all the time. :-)</text></comment>