<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>SOW Blog on SOW</title>
    <link>https://sow.pgsty.com/blog/</link>
    <description>Recent content in SOW Blog on SOW</description>
    <generator>Hugo</generator>
    <language>en</language>
    
    
    
      <lastBuildDate>Tue, 29 Sep 2026 15:14:57 +0800</lastBuildDate>
    
    
      <atom:link href="https://sow.pgsty.com/blog/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>SOW v0.5.0</title>
        <link>https://sow.pgsty.com/blog/release/sow-v0.5.0/</link>
        <pubDate>Tue, 29 Sep 2026 00:00:00 +0800</pubDate>
        <dc:creator>Vonng</dc:creator>
        <guid>https://sow.pgsty.com/blog/release/sow-v0.5.0/</guid>
        <description>&lt;p&gt;SOW 0.5.0 focuses on adopting SOW for existing flat YUM repositories. The main addition is&#xA;&lt;code&gt;sow create --metadata-timestamp SECONDS&lt;/code&gt;: publishers can retain a valid publication time&#xA;when replacing another metadata generator, including repositories used by EL7 YUM clients.&lt;/p&gt;&#xA;&lt;p&gt;See &lt;a href=&#34;https://sow.pgsty.com/download/&#34;&gt;Download SOW&lt;/a&gt; for installation options and the&#xA;&lt;a href=&#34;https://sow.pgsty.com/docs/start/install/#upgrade-from-04-to-05&#34;&gt;upgrade guide&lt;/a&gt; for an existing workspace.&lt;/p&gt;&#xA;&lt;h2 id=&#34;publication-time-for-an-existing-yum-repository&#34;&gt;Publication time for an existing YUM repository&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;EL7 YUM compares the largest metadata timestamp in a downloaded &lt;code&gt;repomd.xml&lt;/code&gt; with its&#xA;cached copy. If the new index has an older timestamp, YUM can reject it and retain the&#xA;cached index. A new checksum, a different revision, or a newer file modification time&#xA;does not satisfy this comparison.&lt;/p&gt;</description>
      </item>
    <item>
        <title>SOW v0.4.0</title>
        <link>https://sow.pgsty.com/blog/release/sow-v0.4.0/</link>
        <pubDate>Mon, 24 Aug 2026 00:00:00 +0000</pubDate>
        <dc:creator>Vonng</dc:creator>
        <guid>https://sow.pgsty.com/blog/release/sow-v0.4.0/</guid>
        <description>&lt;p&gt;SOW 0.4.0 is an integrity and recovery release for Managed repositories. It makes&#xA;the deep checker&amp;rsquo;s I/O contract explicit, prevents RPM trust from being assembled&#xA;across unrelated keys, adds an audited way to correct mutable publication-target&#xA;settings, and closes the remaining v0.3 migration and interrupted-publication gaps.&lt;/p&gt;&#xA;&lt;p&gt;Plain repository behavior and the public &lt;code&gt;pool/ + dists/&lt;/code&gt; layout do not change.&lt;/p&gt;&#xA;&lt;h2 id=&#34;upgrade-from-03&#34;&gt;Upgrade from 0.3&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-callout td-callout--important&#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-exclamation&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Migrate every v0.3 Repository explicitly&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;Stop all Workspace writers, back up the Workspace, install 0.4.0, and run&#xA;&lt;code&gt;sow repo migrate REPOSITORY&lt;/code&gt;&#xA;once for each Repository before ordinary reads or writes. The migration is&#xA;explicit and one-way; do not reopen a migrated database with SOW 0.3.&lt;/p&gt;</description>
      </item>
    <item>
        <title>SOW v0.3.0</title>
        <link>https://sow.pgsty.com/blog/release/sow-v0.3.0/</link>
        <pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate>
        <dc:creator>Vonng</dc:creator>
        <guid>https://sow.pgsty.com/blog/release/sow-v0.3.0/</guid>
        <description>&lt;p&gt;SOW 0.3.0 is a performance, durability, and product-focus release. Plain repository&#xA;generation completes with one package-content pass. Managed repositories avoid&#xA;per-object membership queries, reuse authenticated package facts, and promote payloads&#xA;in bounded group commits. The shipping binary and its release pipeline are also&#xA;consolidated around the repository workflows that SOW supports.&lt;/p&gt;&#xA;&lt;h2 id=&#34;plain-one-package-content-pass&#34;&gt;Plain: one package-content pass&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The default unsigned &lt;code&gt;sow create&lt;/code&gt; path hashes and parses each RPM or DEB once, with&#xA;parallelism controlled by &lt;code&gt;--jobs&lt;/code&gt;. Metadata is rendered from the retained inspection&#xA;result. Before publication, SOW performs one final package-set and file-&lt;code&gt;stat&lt;/code&gt; snapshot&#xA;check, catching concurrent input changes without reading and hashing every package again.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Coordinated Publication Decision</title>
        <link>https://sow.pgsty.com/blog/design/coordinated-publication/</link>
        <pubDate>Fri, 14 Aug 2026 00:00:00 +0000</pubDate>
        <dc:creator>Vonng</dc:creator>
        <guid>https://sow.pgsty.com/blog/design/coordinated-publication/</guid>
        <description>&lt;div class=&#34;td-callout td-callout--important&#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-exclamation&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Decision finalized for SOW 0.4.0&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;An earlier version of this record proposed an rclone executor, &lt;code&gt;publish --dry-run&lt;/code&gt;, and a&#xA;separate &lt;code&gt;sow audit&lt;/code&gt; command. None of those surfaces shipped in 0.4.0. SOW has no&#xA;rclone dependency, &lt;code&gt;publish&lt;/code&gt; has no &lt;code&gt;--dry-run&lt;/code&gt;, and &lt;code&gt;sow audit&lt;/code&gt; is not a command.&lt;/p&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;This page preserves the decision boundary so a historical proposal cannot be mistaken for the&#xA;current product. The normative behavior is documented in&#xA;&lt;a href=&#34;https://sow.pgsty.com/docs/command/publish/&#34;&gt;&lt;code&gt;sow publish&lt;/code&gt;&lt;/a&gt; and&#xA;&lt;a href=&#34;https://sow.pgsty.com/blog/design/publication/&#34;&gt;Publication &amp;amp; Recovery&lt;/a&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>SOW v0.2.0</title>
        <link>https://sow.pgsty.com/blog/release/sow-docs-launch/</link>
        <pubDate>Sat, 08 Aug 2026 00:00:00 +0000</pubDate>
        <dc:creator>Vonng</dc:creator>
        <guid>https://sow.pgsty.com/blog/release/sow-docs-launch/</guid>
        <description>&lt;p&gt;SOW 0.2.0 is a self-contained RPM and DEB repository manager from&#xA;&lt;a href=&#34;https://pigsty.io&#34;&gt;Pigsty&lt;/a&gt;. Release artifacts target Linux and macOS as single Go&#xA;executables.&lt;/p&gt;&#xA;&lt;h2 id=&#34;two-operating-modes&#34;&gt;Two operating modes&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Plain mode&lt;/strong&gt; indexes RPM and DEB files already present at one directory&amp;rsquo;s top level:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-b4801182-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-b4801182-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 create /srv/repo&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;It writes &lt;code&gt;repodata/&lt;/code&gt;, &lt;code&gt;Packages&lt;/code&gt;, and &lt;code&gt;Packages.gz&lt;/code&gt; in place. Plain mode has no&#xA;Workspace, state database, generations, or DEB &lt;code&gt;Release&lt;/code&gt; signing.&lt;/p&gt;</description>
      </item>
    <item>
        <title>SOW Design Evolution: From Route Graphs to the Repository Core</title>
        <link>https://sow.pgsty.com/blog/design/evolution/</link>
        <pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate>
        <dc:creator>Vonng</dc:creator>
        <guid>https://sow.pgsty.com/blog/design/evolution/</guid>
        <description>&lt;p&gt;This record dates to the 2026-08-10 consolidation of SOW around its Repository core. It&#xA;distills the useful decisions from the earlier planning, ADR, review, migration, and&#xA;verification trees without turning every intermediate artifact into maintained product&#xA;documentation.&lt;/p&gt;&#xA;&lt;p&gt;Some sealed folders use “v0.2” and “v0.3” for consecutive pre-release design lines. The&#xA;version labels below refer only to released Git tags: the C2 hardlink line was replaced&#xA;before v0.2.0 was tagged.&lt;/p&gt;&#xA;&lt;p&gt;The detailed history is preserved in four companion records:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Publication &amp; Recovery</title>
        <link>https://sow.pgsty.com/blog/design/publication/</link>
        <pubDate>Sat, 08 Aug 2026 00:00:00 +0000</pubDate>
        <dc:creator>Vonng</dc:creator>
        <guid>https://sow.pgsty.com/blog/design/publication/</guid>
        <description>&lt;p&gt;Building and publishing are separate state transitions. A build produces a target-neutral&#xA;Generation. Publication applies that Generation to one provider prefix and records enough&#xA;evidence to recover without guessing.&lt;/p&gt;&#xA;&lt;h2 id=&#34;ownership-split&#34;&gt;Ownership split&#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;Repository-scoped&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Target-prefix-scoped&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Package Object&lt;/td&gt;&#xA;      &lt;td&gt;Publication Attempt&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Desired and Built state&lt;/td&gt;&#xA;      &lt;td&gt;Applied Checkpoint&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Generation and Changeset&lt;/td&gt;&#xA;      &lt;td&gt;Remote inventory&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Retained payload/metadata references&lt;/td&gt;&#xA;      &lt;td&gt;Grace and deletion evidence&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 split prevents a successful filesystem publication from being treated as proof about&#xA;R2, and prevents one target&amp;rsquo;s partial attempt from contaminating another target.&lt;/p&gt;</description>
      </item>
    <item>
        <title>System Model</title>
        <link>https://sow.pgsty.com/blog/design/model/</link>
        <pubDate>Sat, 08 Aug 2026 00:00:00 +0000</pubDate>
        <dc:creator>Vonng</dc:creator>
        <guid>https://sow.pgsty.com/blog/design/model/</guid>
        <description>&lt;p&gt;The model is deliberately layered. Configuration expresses intent, the database records&#xA;owned state, and the public tree is a deterministic projection. None of those layers may&#xA;quietly become a substitute for another.&lt;/p&gt;&#xA;&lt;h2 id=&#34;object-hierarchy&#34;&gt;Object hierarchy&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-4d6aec63-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;text&#34; data-td-line-count=&#34;10&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-4d6aec63-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;Workspace&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── Repository&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── Package Object&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── Dist&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   │   └── Membership -&amp;gt; Package Object&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── Desired state&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── Built Generation&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   └── Retained Generation references&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── Publication Target&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    └── Repository + provider + prefix&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h3 id=&#34;workspace&#34;&gt;Workspace&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;A Workspace supplies discovery, configuration, and coordination. It owns &lt;code&gt;sow.yml&lt;/code&gt;, the&#xA;private &lt;code&gt;.sow/&lt;/code&gt; directory, and stable lock paths. It is not a package deduplication domain.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Design Principles</title>
        <link>https://sow.pgsty.com/blog/design/principles/</link>
        <pubDate>Sat, 08 Aug 2026 00:00:00 +0000</pubDate>
        <dc:creator>Vonng</dc:creator>
        <guid>https://sow.pgsty.com/blog/design/principles/</guid>
        <description>&lt;p&gt;SOW is not primarily a metadata generator. It is an ownership and state-transition system&#xA;whose output happens to be APT and RPM repositories. The following principles keep that&#xA;system small enough to reason about.&lt;/p&gt;&#xA;&lt;h2 id=&#34;one-owner-for-every-durable-fact&#34;&gt;One owner for every durable fact&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Every durable fact has one scope and one authority:&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;Fact&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Owner&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Package bytes and package identity&lt;/td&gt;&#xA;      &lt;td&gt;Repository&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Desired memberships and Built state&lt;/td&gt;&#xA;      &lt;td&gt;Repository&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Generation and Changeset&lt;/td&gt;&#xA;      &lt;td&gt;Repository&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Publication target binding and revisions&lt;/td&gt;&#xA;      &lt;td&gt;Repository + target storage/prefix&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Publication attempt and applied checkpoint&lt;/td&gt;&#xA;      &lt;td&gt;Repository + target prefix&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Remote inventory, grace, and delete evidence&lt;/td&gt;&#xA;      &lt;td&gt;Repository + target prefix&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;State is not silently shared across Repositories or publish prefixes. The same package may&#xA;therefore exist once in each Repository or target. That is intentional: local deduplication&#xA;must not create distributed ownership.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Why SOW Uses One Payload Tree per Repository</title>
        <link>https://sow.pgsty.com/blog/design/single-payload/</link>
        <pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate>
        <dc:creator>Vonng</dc:creator>
        <guid>https://sow.pgsty.com/blog/design/single-payload/</guid>
        <description>&lt;p&gt;This decision was drafted on 2026-08-05 during the pre-v0.2 release design consolidation&#xA;and shipped in SOW v0.2.0 on 2026-08-08. It remains the layout contract in v0.3 and v0.4.&#xA;It records an architecture choice, not a blanket compatibility claim: protocol closure,&#xA;ordinary package clients, mirror tools, static hosting, and object storage are verified as&#xA;separate evidence layers.&lt;/p&gt;&#xA;&lt;h2 id=&#34;decision&#34;&gt;Decision&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Each SOW Repository owns one public tree:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-d78f7449-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;text&#34; data-td-line-count=&#34;5&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-d78f7449-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;&amp;lt;repository&amp;gt;/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  pool/                         # canonical package bytes&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  dists/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;lt;dist&amp;gt;/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;lt;architecture&amp;gt;/           # protocol metadata only&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;A Package Object has one canonical payload path inside one Repository. Adding the same&#xA;object to several Dists or architecture views adds membership and metadata references; it&#xA;does not create another canonical package file.&lt;/p&gt;</description>
      </item>
    <item>
        <title>The v0.2 Reset: Plain and Managed Instead of a Universal Control Plane</title>
        <link>https://sow.pgsty.com/blog/design/v02-reset/</link>
        <pubDate>Fri, 31 Jul 2026 00:00:00 +0000</pubDate>
        <dc:creator>Vonng</dc:creator>
        <guid>https://sow.pgsty.com/blog/design/v02-reset/</guid>
        <description>&lt;div class=&#34;td-callout td-callout--important&#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-exclamation&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Development-line versus release version&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;The archived “v0.2” design line initially used C2 view-local RPM hardlinks.&#xA;That was a real development implementation, but it was replaced by the&#xA;single-payload design before the final v0.2.0 tag. The released v0.2.0 layout&#xA;already used one canonical Pool and metadata-only views.&lt;/p&gt;&#xA;&lt;p&gt;Several archived v0.2/v0.3 files nevertheless say “v0.2.0” used C2 hardlinks.&#xA;They were written before the tag existed and used “v0.2.0” for the planned&#xA;build. The delivered boundary is defined by the final 0.2.0 Changelog, release&#xA;note, and source tag, all of which record one canonical Pool and metadata-only&#xA;views.&lt;/p&gt;</description>
      </item>
    <item>
        <title>What SOW v0.1 Actually Proved</title>
        <link>https://sow.pgsty.com/blog/design/v01-evidence/</link>
        <pubDate>Fri, 31 Jul 2026 00:00:00 +0000</pubDate>
        <dc:creator>Vonng</dc:creator>
        <guid>https://sow.pgsty.com/blog/design/v01-evidence/</guid>
        <description>&lt;div class=&#34;td-callout td-callout--important&#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-exclamation&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Version-bound evidence&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;Every result on this page belongs to the v0.1 source, layout, fixtures, and&#xA;environment recorded at the time. It does not establish compatibility or&#xA;release readiness for current SOW.&lt;/p&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;The v0.1 archive contains 112 dated evidence reports from 2026-07-11 through&#xA;2026-07-31. Publishing all of them as blog posts would make the public site less useful:&#xA;many are narrow fault closures, repeated current-source audits, or transcripts for a&#xA;specific implementation seam.&lt;/p&gt;</description>
      </item>
    <item>
        <title>SOW v0.1 Decision Ledger: What Survived and What Was Retired</title>
        <link>https://sow.pgsty.com/blog/design/v01-decisions/</link>
        <pubDate>Sun, 12 Jul 2026 00:00:00 +0000</pubDate>
        <dc:creator>Vonng</dc:creator>
        <guid>https://sow.pgsty.com/blog/design/v01-decisions/</guid>
        <description>&lt;div class=&#34;td-callout td-callout--important&#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-exclamation&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Historical decision ledger&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;The v0.1.0 tag contains 44 ADR files numbered 0001 through 0045; 0006 is absent.&#xA;This page preserves their meaning without republishing each historical implementation&#xA;contract as current guidance.&lt;/p&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;An ADR is valuable even when its implementation is retired. It records the failure mode&#xA;the team refused to ignore, the boundary selected at the time, and often the evidence&#xA;required before a dangerous operation could proceed.&lt;/p&gt;</description>
      </item>
    <item>
        <title>The Original SOW v0.1 Program: A Git for Package Repositories</title>
        <link>https://sow.pgsty.com/blog/design/v01-program/</link>
        <pubDate>Sat, 11 Jul 2026 00:00:00 +0000</pubDate>
        <dc:creator>Vonng</dc:creator>
        <guid>https://sow.pgsty.com/blog/design/v01-program/</guid>
        <description>&lt;div class=&#34;td-callout td-callout--important&#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-exclamation&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Historical design record&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;This article describes the v0.1 program initiated on 2026-07-11 and sealed in&#xA;the v0.1.0 source baseline on 2026-07-31. The Git/CAS/Route/Edge product model&#xA;is retired. Current behavior is defined by &lt;a href=&#34;https://sow.pgsty.com/docs/&#34;&gt;SOW Docs&lt;/a&gt; and the maintained&#xA;&lt;a href=&#34;https://sow.pgsty.com/blog/design/model/&#34;&gt;System Model&lt;/a&gt;.&lt;/p&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;SOW did not begin as a small repository indexer. The original goal was to replace a large&#xA;Pigsty Makefile-and-rclone workflow with one Go control plane for APT, YUM, and static&#xA;assets. It would own local state, package lifecycle, upstream synchronization, channels,&#xA;views, snapshots, publication to two independent clouds, CDN behavior, commercial access&#xA;control, migration, recovery, and verification.&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
