<?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>Release Notes on SOW</title>
    <link>https://sow.pgsty.com/blog/release/</link>
    <description>Recent content in Release Notes on SOW</description>
    <generator>Hugo</generator>
    <language>en</language>
    
    
    
      <lastBuildDate>Wed, 11 Nov 2026 22:34:22 +0800</lastBuildDate>
    
    
      <atom:link href="https://sow.pgsty.com/blog/release/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>SOW v0.7.1</title>
        <link>https://sow.pgsty.com/blog/release/sow-v0.7.1/</link>
        <pubDate>Wed, 11 Nov 2026 22:00:00 +0800</pubDate>
        <dc:creator>Vonng</dc:creator>
        <guid>https://sow.pgsty.com/blog/release/sow-v0.7.1/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.7.1&lt;/strong&gt; · &lt;time datetime=&#34;2026-11-11&#34;&gt;2026-11-11&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/releases/tag/v0.7.1&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/archive/refs/tags/v0.7.1.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/archive/refs/tags/v0.7.1.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow&#34;&gt;pgsty/sow&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;SOW 0.7.1 updates the Go toolchain and dependencies. It also fixes recovery, package validation, RPM export, and S3/R2 handling.&lt;/p&gt;&#xA;&lt;p&gt;Download the release from &lt;a href=&#34;https://github.com/pgsty/sow/releases/tag/v0.7.1&#34;&gt;GitHub&lt;/a&gt; or the &lt;a href=&#34;https://sow.pgsty.com/download/&#34;&gt;Download page&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;These notes cover changes since &lt;strong&gt;0.7.0&lt;/strong&gt;. Database schema &lt;strong&gt;v13&lt;/strong&gt;, configuration schema &lt;strong&gt;sow/v3&lt;/strong&gt;, the CLI, and the public repository layout remain compatible. Workspaces on &lt;strong&gt;0.5.0 through 0.7.0&lt;/strong&gt; need no schema migration.&lt;/p&gt;&#xA;&lt;h2 id=&#34;recovery&#34;&gt;Recovery and repository state&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Recover interrupted legacy &lt;code&gt;dist.new&lt;/code&gt; and &lt;code&gt;dist.init&lt;/code&gt; operations when effective signing is absent.&lt;/li&gt;&#xA;&lt;li&gt;Preserve unproven C2 migration stage files intact under &lt;code&gt;.sow/&amp;lt;repo&amp;gt;/abandoned/&lt;/code&gt; and report their location. Empty stages are removed, repeated recovery is safe, and local GC can proceed. Inspect the reported files before removing them.&lt;/li&gt;&#xA;&lt;li&gt;Reopen directory cursors between deletion batches so cleanup completes on macOS APFS and BSD filesystems.&lt;/li&gt;&#xA;&lt;li&gt;Keep multi-statement SQLite reads in one read-only transaction. Split large Dist membership queries below SQLite&amp;rsquo;s parameter limit.&lt;/li&gt;&#xA;&lt;li&gt;Normalize legacy repository time records with fractional seconds and reject years outside &lt;code&gt;1..9999&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;packages&#34;&gt;Package validation and RPM export&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Reject RPM v6 consistently in Plain &lt;code&gt;create&lt;/code&gt;, every &lt;code&gt;prune&lt;/code&gt; path, and Managed ingestion.&lt;/li&gt;&#xA;&lt;li&gt;Limit decompressed DEB control archives and APT/RPM metadata streams, including oversized PAX headers.&lt;/li&gt;&#xA;&lt;li&gt;Recognize Linux &lt;code&gt;renameat2&lt;/code&gt; unsupported-operation errors and retain the portable fallback.&lt;/li&gt;&#xA;&lt;li&gt;Allow &lt;code&gt;export rpm-leaf&lt;/code&gt; when an unrelated filesystem publication target is unmounted. Physical path overlap is still rejected.&lt;/li&gt;&#xA;&lt;li&gt;Use the selected Dist&amp;rsquo;s recorded build publication time for the exported metadata signature. A later build of another Dist no longer changes that time. The exported &lt;code&gt;repomd.xml&lt;/code&gt; data timestamp remains &lt;code&gt;0&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Accept repeated package inputs when &lt;code&gt;sow add&lt;/code&gt; receives both explicit files and their parent directory.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;s3-r2&#34;&gt;S3 and R2&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The updated AWS SDK retries bodyless HTTP 429 responses. SOW preserves the HTTP error classification when those retries are exhausted.&lt;/p&gt;</description>
      </item>
    <item>
        <title>SOW v0.7.0</title>
        <link>https://sow.pgsty.com/blog/release/sow-v0.7.0/</link>
        <pubDate>Mon, 09 Nov 2026 09:00:00 +0800</pubDate>
        <dc:creator>Vonng</dc:creator>
        <guid>https://sow.pgsty.com/blog/release/sow-v0.7.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.7.0&lt;/strong&gt; · &lt;time datetime=&#34;2026-11-09&#34;&gt;2026-11-09&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/releases/tag/v0.7.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/archive/refs/tags/v0.7.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/archive/refs/tags/v0.7.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow&#34;&gt;pgsty/sow&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;SOW 0.7.0 adds &lt;strong&gt;flat RPM pruning&lt;/strong&gt; and a shared &lt;strong&gt;password-file signing interface&lt;/strong&gt;. It also fixes defects in migration, recovery, publication, RPM signature verification, and version ordering found during the release review.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Availability:&lt;/strong&gt; SOW 0.7.0 is available on &lt;a href=&#34;https://github.com/pgsty/sow/releases/tag/v0.7.0&#34;&gt;GitHub&lt;/a&gt; and the &lt;a href=&#34;https://sow.pgsty.com/download/&#34;&gt;Download page&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;These notes cover the changes since &lt;strong&gt;0.6.1&lt;/strong&gt;. Database schema &lt;strong&gt;v13&lt;/strong&gt;, configuration schema &lt;strong&gt;sow/v3&lt;/strong&gt;, and the public repository layout stay unchanged. Workspaces on 0.5.0 through 0.6.1 need no schema migration.&lt;/p&gt;</description>
      </item>
    <item>
        <title>SOW v0.6.1</title>
        <link>https://sow.pgsty.com/blog/release/sow-v0.6.1/</link>
        <pubDate>Thu, 22 Oct 2026 20:30:00 +0800</pubDate>
        <dc:creator>Vonng</dc:creator>
        <guid>https://sow.pgsty.com/blog/release/sow-v0.6.1/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.6.1&lt;/strong&gt; · &lt;time datetime=&#34;2026-10-22&#34;&gt;2026-10-22&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/releases/tag/v0.6.1&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/archive/refs/tags/v0.6.1.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/archive/refs/tags/v0.6.1.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow&#34;&gt;pgsty/sow&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;SOW 0.6.1 is a maintenance release with updated dependencies and clearer error messages.&#xA;It keeps the CLI, database schema &lt;strong&gt;v13&lt;/strong&gt;, configuration &lt;strong&gt;sow/v3&lt;/strong&gt;, and public repository layout.&#xA;Workspaces already on 0.5.0 or 0.6.0 need no schema migration.&lt;/p&gt;&#xA;&lt;p&gt;Get the packages and archives from the &lt;a href=&#34;https://sow.pgsty.com/download/&#34;&gt;download page&lt;/a&gt;, with checksums from the&#xA;&lt;a href=&#34;https://github.com/pgsty/sow/releases/tag/v0.6.1&#34;&gt;v0.6.1 release&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;toolchain-and-dependencies&#34;&gt;Toolchain and dependencies&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Source builds now require &lt;strong&gt;Go 1.27.3 or newer&lt;/strong&gt;. All release binaries use Go 1.27.3.&#xA;The release updates the libraries used for encryption, S3 access, compression, SQLite, and Debian package parsing.&lt;/p&gt;</description>
      </item>
    <item>
        <title>SOW v0.6.0</title>
        <link>https://sow.pgsty.com/blog/release/sow-v0.6.0/</link>
        <pubDate>Sat, 17 Oct 2026 00:00:00 +0800</pubDate>
        <dc:creator>Vonng</dc:creator>
        <guid>https://sow.pgsty.com/blog/release/sow-v0.6.0/</guid>
        <description>&lt;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.6.0&lt;/strong&gt; · &lt;time datetime=&#34;2026-10-17&#34;&gt;2026-10-17&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/releases/tag/v0.6.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/archive/refs/tags/v0.6.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/archive/refs/tags/v0.6.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow&#34;&gt;pgsty/sow&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;SOW 0.6.0 improves repository updates, file verification, and recovery after an interruption.&#xA;It keeps the current command set, configuration format, and public repository layout.&#xA;A Managed workspace already on 0.5.0 needs no database migration.&lt;/p&gt;&#xA;&lt;p&gt;This note covers the changes since 0.5.0. Use the &lt;a href=&#34;https://sow.pgsty.com/docs/start/install/&#34;&gt;installation guide&lt;/a&gt; for upgrade steps&#xA;and the &lt;a href=&#34;https://sow.pgsty.com/download/&#34;&gt;download page&lt;/a&gt; for release availability.&lt;/p&gt;&#xA;&lt;h2 id=&#34;changes-for-repository-operators&#34;&gt;Changes for repository operators&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;wide expand td-table--wide&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Area&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Change in 0.6.0&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Effect on your workflow&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Plain RPM updates&lt;/td&gt;&#xA;      &lt;td&gt;Keep current and immediately previous checksum-named metadata&lt;/td&gt;&#xA;      &lt;td&gt;Clients can finish fetching metadata referenced by the previous index&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Managed builds&lt;/td&gt;&#xA;      &lt;td&gt;Record one publication time for metadata and signatures&lt;/td&gt;&#xA;      &lt;td&gt;Recovery preserves the original time; unchanged builds keep their existing output&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;File verification&lt;/td&gt;&#xA;      &lt;td&gt;Check file identity throughout authenticated reads&lt;/td&gt;&#xA;      &lt;td&gt;SOW detects replaced or rewritten files, including rewrites that restore the modification time&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Signing keys&lt;/td&gt;&#xA;      &lt;td&gt;Read complete OpenPGP key bundles&lt;/td&gt;&#xA;      &lt;td&gt;SOW checks all supplied trusted keys and rejects malformed input&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;State and recovery&lt;/td&gt;&#xA;      &lt;td&gt;Preserve locks, consistent reads, and committed results&lt;/td&gt;&#xA;      &lt;td&gt;Maintenance errors do not make completed changes appear to have rolled back&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;Large repositories&lt;/td&gt;&#xA;      &lt;td&gt;Reuse verified data and limit parallel work&lt;/td&gt;&#xA;      &lt;td&gt;Builds, imports, checks, and publication avoid repeated work&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;plain-rpm-updates-keep-the-previous-indexes&#34;&gt;Plain RPM updates keep the previous indexes&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;A client first downloads &lt;code&gt;repomd.xml&lt;/code&gt;, then requests the metadata files named inside it.&#xA;An update between those requests could previously remove the old metadata files before the client fetched them.&lt;/p&gt;</description>
      </item>
    <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;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.5.0&lt;/strong&gt; · &lt;time datetime=&#34;2026-09-29&#34;&gt;2026-09-29&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/releases/tag/v0.5.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/archive/refs/tags/v0.5.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/archive/refs/tags/v0.5.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow&#34;&gt;pgsty/sow&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;SOW 0.5.0 adds publication timestamps for existing YUM repositories and fixes Managed&#xA;repository recovery, signing, and package-path handling. It also reduces repeated package&#xA;verification during builds.&lt;/p&gt;&#xA;&lt;p&gt;Install the release from &lt;a href=&#34;https://sow.pgsty.com/download/&#34;&gt;Download SOW&lt;/a&gt;. If you use a Managed workspace from&#xA;0.3 or 0.4, migrate each Repository before further writes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;span id=&#34;upgrade-and-developer-notes&#34; data-td-print-local&gt;&lt;/span&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;upgrade-a-managed-workspace&#34;&gt;Upgrade a Managed workspace&#xA;&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Stop commands that write to the workspace.&lt;/li&gt;&#xA;&lt;li&gt;Back up the complete workspace, including &lt;code&gt;sow.yml&lt;/code&gt;, &lt;code&gt;.sow/&lt;/code&gt;, and all Repository roots.&lt;/li&gt;&#xA;&lt;li&gt;Install SOW 0.5.0.&lt;/li&gt;&#xA;&lt;li&gt;Migrate, build, and check each Repository. Replace &lt;code&gt;pgsql&lt;/code&gt; and &lt;code&gt;/srv/sow&lt;/code&gt; with your names.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-cd56ea79-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;3&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-cd56ea79-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 repo migrate pgsql -C /srv/sow&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sow build -r pgsql -C /srv/sow&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sow check -r pgsql -C /srv/sow&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;The migration updates the database to schema v13. Configuration remains &lt;code&gt;sow/v3&lt;/code&gt;, and the&#xA;public layout remains &lt;code&gt;pool/&lt;/code&gt; plus &lt;code&gt;dists/&lt;/code&gt;. The first build refreshes RPM authentication&#xA;and APT metadata records. Later builds reuse matching RPM verification records.&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;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.4.0&lt;/strong&gt; · &lt;time datetime=&#34;2026-08-24&#34;&gt;2026-08-24&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/releases/tag/v0.4.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/archive/refs/tags/v0.4.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/archive/refs/tags/v0.4.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow&#34;&gt;pgsty/sow&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;SOW 0.4.0 improved Managed repository verification and recovery. &lt;code&gt;check&lt;/code&gt; reads each physical package once for its content hash. RPM verification keeps separate trust decisions for separate key sets. Publication targets can change their public URL or cache lifetime through an audited rebind operation.&lt;/p&gt;&#xA;&lt;p&gt;Plain behavior and the public &lt;code&gt;pool/&lt;/code&gt; and &lt;code&gt;dists/&lt;/code&gt; layout stayed the same. This page describes version 0.4.0; use the &lt;a href=&#34;https://sow.pgsty.com/docs/start/install/&#34;&gt;installation guide&lt;/a&gt; to upgrade to the current release.&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;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.3.0&lt;/strong&gt; · &lt;time datetime=&#34;2026-08-10&#34;&gt;2026-08-10&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/releases/tag/v0.3.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/archive/refs/tags/v0.3.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/archive/refs/tags/v0.3.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow&#34;&gt;pgsty/sow&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;SOW 0.3.0 reduced repeated package reads and database queries. Plain generation uses one pass over package content. Managed builds cache parsed package data and commit new pool files in batches. This release also removed retired runtime and publication code.&lt;/p&gt;&#xA;&lt;p&gt;&lt;span id=&#34;plain-one-package-content-pass&#34; data-td-print-local&gt;&lt;/span&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;plain-read-each-package-once&#34;&gt;Plain: read each package once&#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. &lt;code&gt;--jobs&lt;/code&gt; controls parallel work. SOW renders metadata from the parsed results, then checks that the package set and file attributes still match before writing the indexes.&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;div class=&#34;td-release-card-static&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;v0.2.0&lt;/strong&gt; · &lt;time datetime=&#34;2026-08-08&#34;&gt;2026-08-08&lt;/time&gt;&lt;/p&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/releases/tag/v0.2.0&#34;&gt;View release&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/archive/refs/tags/v0.2.0.tar.gz&#34;&gt;Source · tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow/archive/refs/tags/v0.2.0.zip&#34;&gt;Source · zip&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;https://github.com/pgsty/sow&#34;&gt;pgsty/sow&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;SOW 0.2.0 introduced Plain and Managed workflows for RPM and DEB repositories. It builds static package repositories with one Go executable on Linux or macOS.&lt;/p&gt;&#xA;&lt;p&gt;This page describes the 0.2.0 release. Use the &lt;a href=&#34;https://sow.pgsty.com/docs/&#34;&gt;current documentation&lt;/a&gt; for installation and operations today.&lt;/p&gt;&#xA;&lt;p&gt;&lt;span id=&#34;two-operating-modes&#34; data-td-print-local&gt;&lt;/span&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;build-a-flat-repository&#34;&gt;Build a flat repository&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Plain mode indexes RPM and DEB files at the top level of a directory:&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
