<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Release on Barn</title>
    <link>https://barn.pgsty.com/tags/release/</link>
    <description>Recent content in Release on Barn</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    
    
    
      <lastBuildDate>Mon, 21 Sep 2026 00:00:00 +0800</lastBuildDate>
    
    
      <atom:link href="https://barn.pgsty.com/tags/release/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>Farrow 0.8.0: clearer recovery and refreshed images</title>
        <link>https://barn.pgsty.com/blog/release/farrow-0.8.0/</link>
        <pubDate>Mon, 21 Sep 2026 00:00:00 +0800</pubDate>
        
        <guid>https://barn.pgsty.com/blog/release/farrow-0.8.0/</guid>
        <description>&lt;p&gt;Farrow 0.8.0 reduces manual work after interrupted setup and partial VM starts.&#xA;It also refreshes the Debian and Ubuntu images while retaining every previous&#xA;Catalog artifact and the identity of existing VMs.&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;&lt;strong&gt;Host preparation follows the command.&lt;/strong&gt; Interactive &lt;code&gt;start&lt;/code&gt;, &lt;code&gt;restart&lt;/code&gt;, and&#xA;&lt;code&gt;reload&lt;/code&gt; can prepare missing host tools and restore an intact Farrow network.&#xA;On macOS, new network installation completes Homebrew discovery/installation&#xA;or the verified archive download before requesting administrator authentication,&#xA;so Homebrew cannot invalidate a credential acquired too early.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;A failed node does not block independent peers.&lt;/strong&gt; A missing host share fails&#xA;its own node during &lt;code&gt;up&lt;/code&gt; or &lt;code&gt;start&lt;/code&gt;; stopped peers can still start when a new&#xA;node fails to prepare. Errors name the source and mount, and Farrow does not&#xA;create an empty replacement. Restart/reload/recreate check share access before&#xA;stopping existing VMs.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Recovery preserves identity.&lt;/strong&gt; A missing public key is derived from the&#xA;original private key. A lost private key produces backup-recovery guidance&#xA;instead of a new login identity. macOS vmnet log-directory recovery retains&#xA;network ownership evidence and avoids false subnet-conflict reports.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Failures keep their context.&lt;/strong&gt; Scoped retry commands preserve the inventory,&#xA;repository, and applicable flags; a &lt;code&gt;start&lt;/code&gt; retry remains &lt;code&gt;start&lt;/code&gt;. Setup and&#xA;its retry share one operation ID, and bounded event logs work before deployment&#xA;state exists. Uncached image information no longer requires QEMU.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Cleanup reports the final result.&lt;/strong&gt; Explicit persistent-disk deletion and&#xA;purge no longer describe disks as both retained and deleted. Owned disks left&#xA;by a previously removed node do not block destruction of the remaining lab.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;september-images&#34;&gt;September images&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Embedded Catalog &lt;code&gt;2026092001&lt;/code&gt; contains 37 artifacts across nine families,&#xA;including all 27 previous artifacts. These new stable versions cover amd64&#xA;and arm64:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Farrow 0.7.0: simpler test labs and automatic recovery</title>
        <link>https://barn.pgsty.com/blog/release/farrow-0.7.0/</link>
        <pubDate>Wed, 16 Sep 2026 00:00:00 +0800</pubDate>
        
        <guid>https://barn.pgsty.com/blog/release/farrow-0.7.0/</guid>
        <description>&lt;p&gt;Farrow 0.7.0 makes local test labs easier to start and recover. Repeat &lt;code&gt;farrow up&lt;/code&gt;&#xA;to finish interrupted work, retry incomplete guest setup, and refresh older&#xA;guest helpers without restarting running VMs.&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;&lt;strong&gt;A shorter first run.&lt;/strong&gt; Interactive &lt;code&gt;up&lt;/code&gt; can create the default inventory,&#xA;prepare missing host tools, and restore an intact inactive Farrow network.&#xA;Short checks stay quiet; long work shows progress and a compact final result.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Usable guests stay available.&lt;/strong&gt; Data disks, shares, guest hostnames,&#xA;node-to-node SSH, and private networking initialize independently. Optional&#xA;failures report specific limitations while working management SSH remains&#xA;available. Healthy stages are skipped on subsequent &lt;code&gt;up&lt;/code&gt; calls.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Test disks recover automatically.&lt;/strong&gt; Working filesystems are reused;&#xA;unrecognized or confirmed damaged filesystems are reset and mounted again.&#xA;The result explicitly reports discarded data. Probe errors, missing devices,&#xA;busy mounts, and backend I/O errors do not trigger formatting.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fewer manual fixes.&lt;/strong&gt; Unwritable shares fall back to read-only and retry after&#xA;permissions are corrected. Occupied automatic SSH ports are reassigned for&#xA;stopped guests. Interrupted image transfers resume, and official repositories&#xA;can fail over without bypassing digest verification.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Clearer output and state.&lt;/strong&gt; Successful commands show a short summary;&#xA;limitations are grouped, and JSON/YAML keep structured results. Guest warnings&#xA;use a disposable cache outside the schema-2 VM documents and node artifact&#xA;directories, so older releases can still read and manage the deployment.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;upgrade-notes&#34;&gt;Upgrade notes&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Data disks are disposable test storage. &lt;code&gt;up&lt;/code&gt; may clear a damaged filesystem,&#xA;including one marked &lt;code&gt;persistent&lt;/code&gt;.&lt;/strong&gt; Persistence retains a disk across VM&#xA;destroy/recreate; it does not preserve corrupt filesystem contents during&#xA;recovery. Keep valuable data outside these test disks. Root disks and host&#xA;shared directories are not reset by this recovery.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Farrow 0.6.0: Ubuntu 24.04 and smoother local labs</title>
        <link>https://barn.pgsty.com/blog/release/farrow-0.6.0/</link>
        <pubDate>Sat, 05 Sep 2026 00:00:00 +0800</pubDate>
        
        <guid>https://barn.pgsty.com/blog/release/farrow-0.6.0/</guid>
        <description>&lt;p&gt;Farrow 0.6.0 defaults to Ubuntu 24.04 and improves the everyday loop of&#xA;planning, starting, expanding, and rebuilding a local Pigsty lab.&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;&lt;strong&gt;Ubuntu 24.04 by default.&lt;/strong&gt; New inventories and the embedded catalog use&#xA;&lt;code&gt;u24:stable&lt;/code&gt;. Catalog revision &lt;code&gt;2026090501&lt;/code&gt; also includes the Debian 12/13&#xA;and Rocky Linux 8/9 updates already available in the official repositories.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Useful plans before setup.&lt;/strong&gt; &lt;code&gt;plan&lt;/code&gt; for Catalog images works without QEMU or host networking&#xA;installed (registered &lt;code&gt;local-*&lt;/code&gt; images still need &lt;code&gt;qemu-img&lt;/code&gt; cache validation) and shows exact image versions, resource totals, pending starts,&#xA;changed fields, disk effects, and commands that retain custom &lt;code&gt;-f&lt;/code&gt; paths.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Readable status and errors.&lt;/strong&gt; Status shows images, CPU, and memory; one&#xA;damaged node no longer hides healthy peers. Corrupt state names the actual&#xA;file and cause. Image digest failures return exit 7; SSH exit 255 passes&#xA;through unchanged. &lt;code&gt;--no-wait&lt;/code&gt; clearly reports that readiness was skipped.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Checks before disruption.&lt;/strong&gt; Selected &lt;code&gt;recreate&lt;/code&gt; detects conflicting peer&#xA;changes before deleting disks. &lt;code&gt;reload&lt;/code&gt; checks startup dependencies before&#xA;stopping guests. Stop, destroy, and runtime cleanup handle deployment state&#xA;consistently under the existing lock.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Guest names stay current.&lt;/strong&gt; Starting commands and node removal refresh&#xA;Farrow-managed guest hosts entries and control-node SSH configuration.&#xA;Recreated peers remain reachable without clearing guest &lt;code&gt;known_hosts&lt;/code&gt;.&#xA;User SSH text and global option scope are preserved.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fewer CLI surprises.&lt;/strong&gt; Custom &lt;code&gt;init&lt;/code&gt; paths produce usable next commands;&#xA;presentation flags respect option values; malformed integer sizes and extra&#xA;YAML documents are rejected without truncation. &lt;code&gt;ALL_PROXY&lt;/code&gt;/&lt;code&gt;all_proxy&lt;/code&gt;&#xA;provides a fallback while respecting scheme-specific proxies and &lt;code&gt;NO_PROXY&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;upgrade-notes&#34;&gt;Upgrade notes&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Upgrading Farrow does not replace existing disks or change an explicitly&#xA;selected image. If an old inventory relied on the implicit Debian 13 default,&#xA;add &lt;code&gt;vm_image: d13&lt;/code&gt; under &lt;code&gt;all.vars&lt;/code&gt; before applying it with 0.6.0. Review&#xA;&lt;code&gt;farrow plan&lt;/code&gt; before applying changes; &lt;code&gt;farrow start&lt;/code&gt; uses the applied state.&lt;/p&gt;</description>
      </item>
    <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>
    <item>
        <title>Farrow 0.5.0: explicit disposal, explicit repositories, reproducible images</title>
        <link>https://barn.pgsty.com/blog/release/farrow-0.5.0/</link>
        <pubDate>Thu, 03 Sep 2026 00:00:00 +0800</pubDate>
        
        <guid>https://barn.pgsty.com/blog/release/farrow-0.5.0/</guid>
        <description>&lt;div class=&#34;td-callout td-callout--note&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-circle-info&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Note&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;This page describes 0.5.0. Official mirror failover was added in 0.7.0,&#xA;and the unreleased 0.9 candidate removes the &lt;code&gt;rm&lt;/code&gt; alias. Use&#xA;&lt;a href=&#34;https://barn.pgsty.com/docs/reference/cli/&#34;&gt;current CLI guidance&lt;/a&gt; for your installed version.&lt;/p&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Farrow 0.5.0 was the public pre-1.0 release superseded by 0.6.0. It adds an explicit command&#xA;for disposable labs, makes repository geography an operator choice, and adds a&#xA;reproducible path for preparing the next official guest images. The Pigsty&#xA;Inventory contract, deployment state format, and embedded Catalog revision&#xA;&lt;code&gt;2026082903&lt;/code&gt; are unchanged.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Farrow 0.3.0: explicit catalogs and actionable readiness</title>
        <link>https://barn.pgsty.com/blog/release/farrow-0.3.0/</link>
        <pubDate>Wed, 02 Sep 2026 00:00:00 +0800</pubDate>
        
        <guid>https://barn.pgsty.com/blog/release/farrow-0.3.0/</guid>
        <description>&lt;p&gt;Farrow 0.3.0 was the public pre-1.0 release superseded by 0.4.0. It removes implicit&#xA;Catalog refreshes, turns guest bootstrap failures into actionable per-node&#xA;results, and simplifies the CLI without changing the Pigsty Inventory or&#xA;fixed-IP deployment model.&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;&lt;code&gt;up&lt;/code&gt;, &lt;code&gt;plan&lt;/code&gt;, and ordinary &lt;code&gt;image&lt;/code&gt; commands use one active local Catalog&#xA;snapshot and never fetch Catalog metadata implicitly. &lt;code&gt;farrow update&lt;/code&gt;&#xA;explicitly fetches the configured repository; &lt;code&gt;image sync&lt;/code&gt; activates an&#xA;exact URL or file.&lt;/li&gt;&#xA;&lt;li&gt;Guest bootstrap writes an atomic failure stage. Partial operations report&#xA;every failed node, stage, and error, and readiness failures point directly to&#xA;&lt;code&gt;farrow logs &amp;lt;node&amp;gt;&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Already-running guests can be rechecked without restarting QEMU. A partial&#xA;lifecycle still rebuilds the SSH client configuration from every committed&#xA;node.&lt;/li&gt;&#xA;&lt;li&gt;Netplan matches deterministic MAC addresses without renaming interfaces.&#xA;&lt;code&gt;vm_disks[].fs: auto&lt;/code&gt; prefers XFS and falls back to ext4 when necessary.&lt;/li&gt;&#xA;&lt;li&gt;The redundant &lt;code&gt;ss&lt;/code&gt; command and ambiguous root/flag shorthands are removed.&#xA;&lt;code&gt;image reset&lt;/code&gt; replaces &lt;code&gt;reset-manifest&lt;/code&gt;, which remains an alias.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;verification-boundary&#34;&gt;Verification boundary&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Source commit &lt;code&gt;da6d02426da93c677c94c67fec4eb4fcecf4766a&lt;/code&gt; passed the complete local&#xA;source gate and a full GoReleaser snapshot: unit and race tests, vet,&#xA;Staticcheck, &lt;code&gt;govulncheck&lt;/code&gt;, four target builds, image-pipeline and installer&#xA;boundaries, archive/package parity, dependency licenses, SBOMs, and native&#xA;Linux package verification. The tag workflow repeated those checks before the&#xA;Release was made public.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Farrow 0.2.0: selected convergence and release integrity</title>
        <link>https://barn.pgsty.com/blog/release/farrow-0.2.0/</link>
        <pubDate>Tue, 01 Sep 2026 00:00:00 +0800</pubDate>
        
        <guid>https://barn.pgsty.com/blog/release/farrow-0.2.0/</guid>
        <description>&lt;p&gt;Farrow 0.2.0 was the public pre-1.0 release superseded by 0.3.0. It keeps the Pigsty&#xA;inventory and on-disk deployment format introduced by 0.1.0 while fixing the&#xA;network and selected-convergence boundaries found during the final native&#xA;replay.&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;A less-specific VPN exclusion such as &lt;code&gt;10.0.0.0/8&lt;/code&gt; no longer blocks&#xA;Farrow&amp;rsquo;s owned &lt;code&gt;10.10.10.0/24&lt;/code&gt;; equal or more-specific foreign routes,&#xA;overlapping interfaces, occupied addresses, and a missing owned route still&#xA;fail closed.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;farrow up &amp;lt;node&amp;gt;&lt;/code&gt; downloads and prepares only the selected node. Desired&#xA;inventory peers without state appear as &lt;code&gt;absent&lt;/code&gt;; SSH/hosts/provisioning,&#xA;UUID and port allocation, lifecycle commands, and persistent-disk checks use&#xA;the committed node set without losing future scale-out intent.&lt;/li&gt;&#xA;&lt;li&gt;New guests write &lt;code&gt;# farrow-deployment-host&lt;/code&gt; and remove both that marker and&#xA;the released &lt;code&gt;# farrow-project-host&lt;/code&gt; marker before adding current host rows.&lt;/li&gt;&#xA;&lt;li&gt;Command cancellation, structured output, confirmation, &lt;code&gt;reload&lt;/code&gt;, diagnostic&#xA;redaction, installer retention, and the smaller dependency graph from the&#xA;unpublished intermediate work are included directly in 0.2.0.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;native-and-release-evidence&#34;&gt;Native and release evidence&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The exact source commit completed a macOS arm64/HVF replay with MonoProxy&#xA;active: selected &lt;code&gt;u24-1&lt;/code&gt; create/SSH/stop/start, incremental cached &lt;code&gt;el9-1&lt;/code&gt;&#xA;create, two-node SSH, five explicit absent peers, and whole destroy all passed.&#xA;On Ubuntu 26.04 amd64/KVM, the current Linux binary audited an existing&#xA;four-node deployment and reached its control guest without mutation.&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
