Skip to content

SOW Blog

Release notes, design notes, and project news for SOW, Pigsty’s APT and YUM package repository manager.

SOW Blog
SOW v0.6.1 releasemaintenancedependencies
SOW v0.6.0 releaseplainmanagedrecoverysigningperformance
SOW v0.5.0 releaseplainyumsigningmigration
SOW v0.4.0 releasemanagedsigningpublishmigration
Coordinated Publication Decision publishtransactionobject-storagedecision
SOW Design Evolution: From Route Graphs to the Repository Core architecturerepositorymigrationdecision
SOW v0.3.0 releaseplainmanagedtransaction
Design Principles plainmanagedrepository
System Model repositorydistpoolgeneration
Publication & Recovery publishtransactionobject-storage
SOW v0.2.0 releasemanagedsigningpublishgeneration
Why SOW Uses One Payload Tree per Repository repositorypoolrpmaptcompatibilitydecision
  • SOW v0.6.1

    By Vonng In Release 421 words 2 min

    VonngReleasereleasemaintenancedependencies

    Featured Image for 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

    By Vonng In Release 1399 words 7 min

    VonngReleasereleaseplainmanagedrecoverysigningperformance

    Featured Image for 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

    By Vonng In Release 765 words 4 min

    VonngReleasereleaseplainyumsigningmigration

    Featured Image for 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

    By Vonng In Release 917 words 5 min

    VonngReleasereleasemanagedsigningpublishmigration

    Featured Image for 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

    By Vonng In Design 296 words 2 min

    VonngDesignpublishtransactionobject-storagedecision

    Featured Image for 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

    By Vonng In Design 993 words 5 min

    VonngDesignarchitecturerepositorymigrationdecision

    Featured Image for 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

    By Vonng In Release 605 words 3 min

    VonngReleasereleaseplainmanagedtransaction

    Featured Image for 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

    By Vonng In Design 428 words 3 min

    VonngDesignplainmanagedrepository

    Featured Image for 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

    By Vonng In Design 497 words 3 min

    VonngDesignrepositorydistpoolgeneration

    Featured Image for 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

    By Vonng In Design 647 words 4 min

    VonngDesignpublishtransactionobject-storage

    Featured Image for 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

    By Vonng In Release 330 words 2 min

    VonngReleasereleasemanagedsigningpublishgeneration

    Featured Image for 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

    By Vonng In Design 686 words 4 min

    VonngDesignrepositorypoolrpmaptcompatibilitydecision

    Featured Image for 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 …