<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Reference on SOW</title>
    <link>https://sow.pgsty.com/categories/reference/</link>
    <description>Recent content in Reference on SOW</description>
    <generator>Hugo</generator>
    <language>en</language>
    
    
    
      <lastBuildDate>Fri, 28 Aug 2026 18:32:04 +0800</lastBuildDate>
    
    
      <atom:link href="https://sow.pgsty.com/categories/reference/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>sow.yml Reference</title>
        <link>https://sow.pgsty.com/docs/reference/config/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/docs/reference/config/</guid>
        <description>&lt;p&gt;&lt;code&gt;sow.yml&lt;/code&gt; is the single configuration file of a managed workspace. It sits at the&#xA;workspace root, declares which repositories and distributions exist, and holds the&#xA;membership policy and signing settings that every build applies. Plain mode&#xA;(&lt;code&gt;sow create&lt;/code&gt;) never reads it.&lt;/p&gt;&#xA;&lt;p&gt;This page lists every field the parser accepts. Anything not listed here is rejected —&#xA;there are no undocumented keys and no keys reserved for future use.&lt;/p&gt;&#xA;&lt;h2 id=&#34;how-the-file-is-read&#34;&gt;How the file is read&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;SOW parses &lt;code&gt;sow.yml&lt;/code&gt; with a strict decoder. Practically, that means:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Package References</title>
        <link>https://sow.pgsty.com/docs/reference/package-ref/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/docs/reference/package-ref/</guid>
        <description>&lt;p&gt;&lt;code&gt;sow rm&lt;/code&gt;, &lt;code&gt;sow show&lt;/code&gt;, and &lt;code&gt;sow where&lt;/code&gt; all take a &lt;code&gt;PACKAGE&lt;/code&gt; argument. This page defines&#xA;what you may write there. The same grammar applies to all three commands; only the&#xA;handling of an ambiguous name differs.&lt;/p&gt;&#xA;&lt;p&gt;Nothing here applies to &lt;code&gt;sow add&lt;/code&gt;, which takes filesystem paths, not references.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-five-forms&#34;&gt;The five forms&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Form&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Example&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Matches&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Content digest&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;sha256:d06d7f23b9cf...b98b1229&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Exactly one package object&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;RPM coordinate&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;rpm:pev2-0:1.23.0-1.noarch&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Exactly one RPM&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;DEB coordinate&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;deb:libpq5=18.3-1.pgdg12+1:amd64&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Exactly one DEB&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Filename&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pev2-1.23.0-1.noarch.rpm&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;The package stored under that filename&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Bare name&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;pev2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Every version and architecture of that name&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;The first three are exact: they name one object and either hit it or fail. The last two&#xA;are conveniences that may match more than one object.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Repository Layout</title>
        <link>https://sow.pgsty.com/docs/reference/layout/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/docs/reference/layout/</guid>
        <description>&lt;p&gt;SOW has one fixed Managed layout: package payloads live once under &lt;code&gt;pool/&lt;/code&gt;, while&#xA;&lt;code&gt;dists/&lt;/code&gt; contains metadata-only client views. The complete repository directory is the&#xA;unit to serve, copy, or publish.&lt;/p&gt;&#xA;&lt;h2 id=&#34;plain-mode&#34;&gt;Plain mode&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;sow create&lt;/code&gt; writes indexes next to existing packages and leaves every unrelated file&#xA;unchanged:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-38ea1027-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;text&#34; data-td-line-count=&#34;11&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-38ea1027-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/srv/offline/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── blackbox_exporter-0.28.0-1.x86_64.rpm&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── libpq5_18.3-1.pgdg12+1_amd64.deb&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── repodata/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── &amp;lt;sha256&amp;gt;-primary.xml.gz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── &amp;lt;sha256&amp;gt;-filelists.xml.gz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── &amp;lt;sha256&amp;gt;-other.xml.gz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   └── repomd.xml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── Packages&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── Packages.gz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── repo_complete                         # only with --pigsty&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Flat RPM metadata uses a bare package basename; flat DEB metadata uses &lt;code&gt;./&amp;lt;filename&amp;gt;&lt;/code&gt;.&#xA;While a build is active, &lt;code&gt;.sow-plain-stage-*&lt;/code&gt; contains private generated output. Plain has no&#xA;durable journal or recovery state; a later create discards stale reserved temporary paths and&#xA;rebuilds. Never serve or copy those temporary paths.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Reference</title>
        <link>https://sow.pgsty.com/docs/reference/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/docs/reference/</guid>
        <description>&lt;p&gt;This section is the stable contract for configuration fields, package references, paths,&#xA;exit codes, JSON, platforms, and integrations. CLI syntax and state transitions live in&#xA;&lt;a href=&#34;https://sow.pgsty.com/docs/command/&#34;&gt;Commands&lt;/a&gt;; use &lt;a href=&#34;https://sow.pgsty.com/docs/start/&#34;&gt;Get Started&lt;/a&gt; for the operating model.&lt;/p&gt;&#xA;&lt;p&gt;Output examples show shape; identifiers, paths, hashes, timestamps, and counts vary by&#xA;workspace. The built-in &lt;code&gt;sow help&lt;/code&gt; remains the exact syntax authority.&lt;/p&gt;&#xA;&lt;div class=&#34;td-content-cards td-content-cards--auto&#34; id=&#34;td-cards-4da5a176-0&#34;&gt;&#xA;&#xA;&lt;article id=&#34;td-card-4da5a176-cards-0-0&#34; class=&#34;td-content-card&#34;&gt;&#xA;&lt;div class=&#34;td-content-card__body&#34;&gt;&#xA;&lt;div class=&#34;td-content-card__head&#34;&gt;&lt;a class=&#34;td-content-card__title&#34; href=&#34;https://sow.pgsty.com/docs/reference/config/&#34;&gt;sow.yml Reference&lt;/a&gt;&lt;/div&gt;&#xA;&lt;div class=&#34;td-content-card__description&#34;&gt;&lt;p&gt;The complete configuration schema: workspace, repository, distribution, membership&#xA;policy, signing, and publication targets.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;/article&gt;&#xA;&lt;article id=&#34;td-card-4da5a176-cards-0-1&#34; class=&#34;td-content-card&#34;&gt;&#xA;&lt;div class=&#34;td-content-card__body&#34;&gt;&#xA;&lt;div class=&#34;td-content-card__head&#34;&gt;&lt;a class=&#34;td-content-card__title&#34; href=&#34;https://sow.pgsty.com/docs/reference/package-ref/&#34;&gt;Package References&lt;/a&gt;&lt;/div&gt;&#xA;&lt;div class=&#34;td-content-card__description&#34;&gt;&lt;p&gt;The five ways to name a package on the command line, how ambiguity is resolved, and&#xA;which forms &lt;code&gt;rm&lt;/code&gt;, &lt;code&gt;show&lt;/code&gt;, and &lt;code&gt;where&lt;/code&gt; accept.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Exit Codes</title>
        <link>https://sow.pgsty.com/docs/reference/exit-codes/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/docs/reference/exit-codes/</guid>
        <description>&lt;p&gt;Every &lt;code&gt;sow&lt;/code&gt; command exits with one of seven codes. They are stable, they are the same for&#xA;every command, and they are meant to be branched on in scripts — the distinction between&#xA;&amp;ldquo;this failed&amp;rdquo; and &amp;ldquo;this was correctly refused&amp;rdquo; is the whole point of having more than one&#xA;nonzero code.&lt;/p&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Code&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Meaning&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Complete success, or an idempotent no-op&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Runtime I/O, parser, renderer, or unknown internal error&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Usage, workspace discovery, or configuration error&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Partial success: at least one item committed, at least one failed&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;4&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Write lock unavailable — held and &lt;code&gt;--no-wait&lt;/code&gt;, or the timeout expired&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;5&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Integrity or recovery error, or &lt;code&gt;check&lt;/code&gt; judged the result not deliverable&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;6&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Expected rejection: conflict, protected, no match, incompatible architecture&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Human-readable results go to stdout; warnings and diagnostics go to stderr. Each code has&#xA;a stable message prefix on stderr, and a matching &lt;code&gt;class&lt;/code&gt; in&#xA;&lt;a href=&#34;https://sow.pgsty.com/docs/reference/json/&#34;&gt;JSON output&lt;/a&gt;:&lt;/p&gt;</description>
      </item>
    <item>
        <title>JSON Output</title>
        <link>https://sow.pgsty.com/docs/reference/json/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/docs/reference/json/</guid>
        <description>&lt;p&gt;Every command that produces data accepts &lt;code&gt;--json&lt;/code&gt;. The output is a single line on stdout&#xA;carrying a versioned envelope, so you can pipe it straight into &lt;code&gt;jq&lt;/code&gt; without worrying&#xA;about which command produced it.&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-f63c61a0-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-f63c61a0-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sow status --json&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-f63c61a0-fence-1&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;json&#34; data-td-line-count=&#34;6&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-f63c61a0-fence-1-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;schema&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;sow.cli/v1&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;status&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;ok&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;repository&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;pigsty&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;operation&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;null&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;result&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:{&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;repository&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;pigsty&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;status&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;clean&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;ready_to_copy&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;desired_revision&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;built_generation&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;00000000000000000004&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;dirty_dists&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:[],&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;dirty_reasons&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:[],&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;pending&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:{&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;count&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;bytes&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;recent_operation&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:{&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;8632724976452398569&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;kind&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;add&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;state&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;done&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;created_at&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;2026-08-04T04:07:17.665377Z&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;updated_at&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;2026-08-04T04:07:18.293848Z&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;repository_locked&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;errors&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:[]}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;(Line-wrapped here for readability; the real output is one line.)&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-envelope&#34;&gt;The envelope&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Field&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Type&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Meaning&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;schema&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;string&lt;/td&gt;&#xA;      &lt;td&gt;Always &lt;code&gt;sow.cli/v1&lt;/code&gt;. Check it before parsing anything else.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;command&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;string&lt;/td&gt;&#xA;      &lt;td&gt;The command as invoked, including the subcommand: &lt;code&gt;add&lt;/code&gt;, &lt;code&gt;repo ls&lt;/code&gt;, &lt;code&gt;config show&lt;/code&gt;.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;ok&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;bool&lt;/td&gt;&#xA;      &lt;td&gt;&lt;code&gt;true&lt;/code&gt; when &lt;code&gt;errors&lt;/code&gt; is empty. Equivalent to exit code &lt;code&gt;0&lt;/code&gt;.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;repository&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;string or null&lt;/td&gt;&#xA;      &lt;td&gt;The selected repository, or &lt;code&gt;null&lt;/code&gt; for workspace-wide and plain-mode commands.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;operation&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;string or null&lt;/td&gt;&#xA;      &lt;td&gt;The operation ID for write commands, &lt;code&gt;null&lt;/code&gt; for read-only ones.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;result&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;object or null&lt;/td&gt;&#xA;      &lt;td&gt;Command-specific payload, described below.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;&lt;code&gt;errors&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td&gt;array&lt;/td&gt;&#xA;      &lt;td&gt;Zero or more &lt;code&gt;{code, class, message}&lt;/code&gt; objects.&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;All seven fields are always present. &lt;code&gt;result&lt;/code&gt; is &lt;code&gt;null&lt;/code&gt; when the command failed before meaningful&#xA;work — an unknown flag, discovery failure, or invalid configuration before a Repository was&#xA;selected, for example. Committed partial results and diagnostic results from &lt;code&gt;check&lt;/code&gt; or&#xA;&lt;code&gt;rm --check&lt;/code&gt; are preserved even when the command exits nonzero.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Platforms &amp; Integrations</title>
        <link>https://sow.pgsty.com/docs/reference/compatibility/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://sow.pgsty.com/docs/reference/compatibility/</guid>
        <description>&lt;p&gt;This page defines the environments SOW ships for, the storage semantics it requires, and&#xA;the exact scope of its automated integrations. Repository generation happens inside the&#xA;SOW binary; a real package manager remains the final check for a deployed repository.&lt;/p&gt;&#xA;&lt;h2 id=&#34;release-targets&#34;&gt;Release targets&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Operating system&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: right&#34;&gt;&lt;code&gt;amd64&lt;/code&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: right&#34;&gt;&lt;code&gt;arm64&lt;/code&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Artifact&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Linux&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: right&#34;&gt;yes&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: right&#34;&gt;yes&lt;/td&gt;&#xA;      &lt;td&gt;archive, RPM, DEB&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;macOS&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: right&#34;&gt;yes&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: right&#34;&gt;yes&lt;/td&gt;&#xA;      &lt;td&gt;archive&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Windows&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: right&#34;&gt;no&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: right&#34;&gt;no&lt;/td&gt;&#xA;      &lt;td&gt;not supported&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Release binaries use &lt;code&gt;CGO_ENABLED=0&lt;/code&gt; and require no language runtime. The 0.4.0 artifacts were&#xA;built with Go 1.27.0; the source module requires Go 1.27.0 or newer. Archives include &lt;code&gt;README.md&lt;/code&gt;,&#xA;&lt;code&gt;CHANGELOG.md&lt;/code&gt;, and the Apache-2.0 &lt;code&gt;LICENSE&lt;/code&gt;;&#xA;Linux packages install the same license with the binary. Use &lt;a href=&#34;https://sow.pgsty.com/docs/command/&#34;&gt;&lt;code&gt;sow version&lt;/code&gt;&lt;/a&gt;&#xA;to print the product version, target OS/architecture, and build toolchain.&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
