<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Compatibility on Barn</title>
    <link>https://barn.pgsty.com/tags/compatibility/</link>
    <description>Recent content in Compatibility on Barn</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    
    
    
      <lastBuildDate>Mon, 09 Nov 2026 00:00:00 +0800</lastBuildDate>
    
    
      <atom:link href="https://barn.pgsty.com/tags/compatibility/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>Evolving the CLI Without Breaking Its Contracts</title>
        <link>https://barn.pgsty.com/blog/design/cli-contracts/</link>
        <pubDate>Wed, 04 Nov 2026 10:00:00 +0800</pubDate>
        
        <guid>https://barn.pgsty.com/blog/design/cli-contracts/</guid>
        <description>&lt;p&gt;Barn already uses Cobra. The useful part of the 2026-11-04 CLI proposal is its separation of command syntax, application orchestration, and observable behavior. This essay retains that design, checked against &lt;code&gt;v1.1.0&lt;/code&gt; on 2026-11-09. The package split and broader command reorganization remain proposals; current usage belongs in the &lt;a href=&#34;https://barn.pgsty.com/docs/reference/cli/&#34;&gt;CLI reference&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;existing-boundaries&#34;&gt;Keep the existing boundaries&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;cmd/barn/command_*.go&lt;/code&gt; defines the command families. Each execution constructs a fresh Cobra tree, avoiding flag values leaking between calls. Command handlers collect a &lt;code&gt;commandOutcome&lt;/code&gt;; a shared renderer handles text or structured results, while typed failures retain their exit code, reason, recovery hint, and any partial result. Linux lifecycle, image verification, and native Mac behavior remain in their domain packages.&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
