<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>s3 on SOW</title>
    <link>https://sow.pgsty.com/tags/s3/</link>
    <description>Recent content in s3 on SOW</description>
    <generator>Hugo</generator>
    <language>en</language>
    
    
    
      <lastBuildDate>Wed, 11 Nov 2026 00:00:00 +0000</lastBuildDate>
    
    
      <atom:link href="https://sow.pgsty.com/tags/s3/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>
        
        <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>
    
  </channel>
</rss>
