<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>UX on Barn</title>
    <link>https://barn.pgsty.com/tags/ux/</link>
    <description>Recent content in UX on Barn</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    
    
    
      <lastBuildDate>Wed, 02 Sep 2026 00:00:00 +0800</lastBuildDate>
    
    
      <atom:link href="https://barn.pgsty.com/tags/ux/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>Farrow 0.4.0: one command, working data disks, one voice</title>
        <link>https://barn.pgsty.com/blog/release/farrow-0.4.0/</link>
        <pubDate>Wed, 02 Sep 2026 00:00:00 +0800</pubDate>
        
        <guid>https://barn.pgsty.com/blog/release/farrow-0.4.0/</guid>
        <description>&lt;p&gt;Farrow 0.4.0 was the public pre-1.0 release superseded by 0.5.0. It makes the first run one&#xA;command, fixes the default data disk on Debian and Ubuntu images, and gives every&#xA;command the same output style. The Pigsty Inventory format, the fixed-IP&#xA;deployment model, the state layout, and the embedded Catalog revision&#xA;&lt;code&gt;2026082903&lt;/code&gt; are unchanged.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-changed&#34;&gt;What changed&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;On a terminal, &lt;code&gt;farrow up&lt;/code&gt; runs &lt;code&gt;farrow setup&lt;/code&gt; itself when the fixed-IP&#xA;network has never been installed, shows the setup plan, asks before the&#xA;privileged step, and then continues. &lt;code&gt;farrow init&lt;/code&gt; points at &lt;code&gt;farrow up&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;vm_disks[].fs&lt;/code&gt; defaults to &lt;code&gt;auto&lt;/code&gt;: a blank disk is formatted XFS when the&#xA;guest has &lt;code&gt;mkfs.xfs&lt;/code&gt; and ext4 otherwise, the same choice Pigsty&amp;rsquo;s Vagrant flow&#xA;makes. The old &lt;code&gt;xfs&lt;/code&gt; default failed on Debian and Ubuntu images, which ship&#xA;without xfsprogs. Deployments created with the old default are not reported&#xA;as drift and their persistent disks stay compatible.&lt;/li&gt;&#xA;&lt;li&gt;The guest error marker carries the failing command&amp;rsquo;s last message, so &lt;code&gt;up&lt;/code&gt;&#xA;reports &lt;code&gt;guest bootstrap failed during data-disks: xfs requested but mkfs.xfs is unavailable&lt;/code&gt; instead of an exit status.&lt;/li&gt;&#xA;&lt;li&gt;Lifecycle commands and &lt;code&gt;status&lt;/code&gt; print a node table and, after &lt;code&gt;up&lt;/code&gt;, a&#xA;&lt;code&gt;next: farrow ssh &amp;lt;node&amp;gt;&lt;/code&gt; hint. &lt;code&gt;plan&lt;/code&gt; and &lt;code&gt;validate&lt;/code&gt; print one line when&#xA;nothing changes; &lt;code&gt;image list&lt;/code&gt;, &lt;code&gt;network status&lt;/code&gt;, &lt;code&gt;doctor&lt;/code&gt;, and preflight&#xA;errors use plain sentences without machine codes; &lt;code&gt;spec hash&lt;/code&gt; and other&#xA;internals moved to &lt;code&gt;--json&lt;/code&gt;. Errors about an unknown node list the nodes.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;farrow ssh &amp;lt;node&amp;gt; -- &#39;df -h /data; id&#39;&lt;/code&gt; passes the remote command exactly as&#xA;OpenSSH does.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;upgrading&#34;&gt;Upgrading&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;A d13, d12, or Ubuntu node created by 0.3.0 or earlier whose &lt;code&gt;/data&lt;/code&gt; never&#xA;mounted needs one &lt;code&gt;farrow recreate &amp;lt;node&amp;gt;&lt;/code&gt;; the disk is then formatted ext4 on&#xA;those images and XFS on Enterprise Linux images. Automation that runs &lt;code&gt;up&lt;/code&gt; on an&#xA;unprepared host without a terminal still needs &lt;code&gt;farrow setup --yes&lt;/code&gt; first.&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
