SOW Blog
Release notes, design notes, and project news for SOW, Pigsty’s APT and YUM package repository manager.
SOW v0.6.1
SOW 0.6.1 updates Go to 1.27.3, refreshes dependencies, and fixes invalid-input diagnostics without changing workspace formats.
SOW v0.6.0
SOW 0.6.0 keeps previous Plain RPM indexes, records Managed publication times, strengthens verification and recovery, and reduces repeated I/O.
SOW v0.5.0
SOW v0.5.0 adds Plain RPM publication timestamps and fixes repository recovery, signing, and package paths.
SOW v0.4.0
SOW v0.4.0 reduces repeated verification, verifies RPM key sets independently, adds target rebinding, and improves migration and publication recovery.
Coordinated Publication Decision
The v0.4.0 decision to keep SOW's native publication providers, and the earlier rclone proposal that did not ship.
SOW Design Evolution: From Route Graphs to the Repository Core
How SOW moved from the v0.1 distribution platform to a repository engine, and how v0.2 through v0.6 refined that model.
SOW v0.3.0
SOW v0.3.0 reduces repeated package reads and database queries, batches package commits, and adds build progress events.
Design Principles
Why SOW separates package storage, repository builds, and publication.
System Model
The objects and state transitions that connect packages, distributions, generations, and publication targets.
Publication & Recovery
How SOW uploads a repository, resumes interrupted publication, and removes unused files.
SOW v0.2.0
SOW v0.2.0 introduced Plain and Managed RPM/DEB repositories, signing, publication, retained generations, and RPM leaf export.
Why SOW Uses One Payload Tree per Repository
One package pool per repository, with metadata-only distribution views that share its files.
-
SOW v0.6.1
SOW 0.6.1 is a maintenance release with updated dependencies and clearer error messages. It keeps the CLI, database schema v13, configuration sow/v3, and public repository layout. Workspaces already on 0.5.0 or 0.6.0 need no schema migration. Get the …
SOW 0.6.1 is a maintenance release with updated dependencies and clearer error messages. It keeps the CLI, database schema v13, configuration sow/v3, and public repository layout. Workspaces already on 0.5.0 or 0.6.0 need no schema migration. Get the …
-
SOW v0.6.0
SOW 0.6.0 improves repository updates, file verification, and recovery after an interruption. It keeps the current command set, configuration format, and public repository layout. A Managed workspace already on 0.5.0 needs no database migration. This …
SOW 0.6.0 improves repository updates, file verification, and recovery after an interruption. It keeps the current command set, configuration format, and public repository layout. A Managed workspace already on 0.5.0 needs no database migration. This …
-
SOW v0.5.0
SOW 0.5.0 adds publication timestamps for existing YUM repositories and fixes Managed repository recovery, signing, and package-path handling. It also reduces repeated package verification during builds. Install the release from Download SOW. If you …
SOW 0.5.0 adds publication timestamps for existing YUM repositories and fixes Managed repository recovery, signing, and package-path handling. It also reduces repeated package verification during builds. Install the release from Download SOW. If you …
-
SOW v0.4.0
SOW 0.4.0 improved Managed repository verification and recovery. check 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 …
SOW 0.4.0 improved Managed repository verification and recovery. check 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 …
-
Coordinated Publication Decision
SOW 0.4.0 kept the native filesystem and r2 publication backends. An earlier proposal used rclone and added remote audit and preview commands. The native design was selected because SOW needs to track each conditional write and its result. Current …
SOW 0.4.0 kept the native filesystem and r2 publication backends. An earlier proposal used rclone and added remote audit and preview commands. The native design was selected because SOW needs to track each conditional write and its result. Current …
-
SOW Design Evolution: From Route Graphs to the Repository Core
SOW moved from a Git-based distribution control plane in v0.1 to a repository engine in v0.2. This article traces that change and the refinements through v0.6.0. The versions below refer to released Git tags, including v0.6.0. Some archived plans …
SOW moved from a Git-based distribution control plane in v0.1 to a repository engine in v0.2. This article traces that change and the refinements through v0.6.0. The versions below refer to released Git tags, including v0.6.0. Some archived plans …
-
SOW v0.3.0
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 …
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 …
-
Design Principles
SOW separates package storage, repository builds, and publication. These principles explain where each kind of state belongs and how operations use it. One owner for each record Record Owner Package bytes and identity Repository Desired membership …
SOW separates package storage, repository builds, and publication. These principles explain where each kind of state belongs and how operations use it. One owner for each record Record Owner Package bytes and identity Repository Desired membership …
-
System Model
SOW uses configuration for repository settings, SQLite for managed state, and a public directory for client access. The model separates the packages you select from the files that have been built and published. Objects Workspace ├── Repository │ ├── …
SOW uses configuration for repository settings, SQLite for managed state, and a public directory for client access. The model separates the packages you select from the files that have been built and published. Objects Workspace ├── Repository │ ├── …
-
Publication & Recovery
A build creates a local snapshot (Generation). Publication uploads its files to a target and records progress for recovery. Each target keeps a checkpoint that identifies its last completed publication. State ownership Repository records Target …
A build creates a local snapshot (Generation). Publication uploads its files to a target and records progress for recovery. Each target keeps a checkpoint that identifies its last completed publication. State ownership Repository records Target …
-
SOW v0.2.0
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. This page describes the 0.2.0 release. Use the current documentation for installation and …
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. This page describes the 0.2.0 release. Use the current documentation for installation and …
-
Why SOW Uses One Payload Tree per Repository
This decision was drafted on 2026-08-05 and shipped in SOW v0.2.0 on 2026-08-08. SOW 0.6.0 still uses this layout. Each Repository stores one package tree and lets its distribution views reference that tree. Decision Each SOW Repository owns one …
This decision was drafted on 2026-08-05 and shipped in SOW v0.2.0 on 2026-08-08. SOW 0.6.0 still uses this layout. Each Repository stores one package tree and lets its distribution views reference that tree. Decision Each SOW Repository owns one …