SOW Blog
Release notes, design notes, and project news for SOW — the self-contained APT / YUM package repository manager by Pigsty.
SOW v0.4.0
SOW v0.4.0 makes Managed verification single-pass, adds independently verified RPM trust rings and safe publication-target rebinding, and hardens migration, recovery, and public delivery checks.
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 v0.1 was retired, v0.2 shipped the single-payload Repository core, and v0.3-v0.4 hardened it.
SOW v0.3.0
SOW v0.3.0 reduces package work across Plain and Managed repositories, adds cached package facts and bounded commits, tightens durability, and consolidates release quality gates.
Design Principles
The invariants SOW uses to keep ownership, generated state, publication, and evidence understandable.
System Model
The objects and state transitions that connect packages, distributions, generations, and publication targets.
Publication & Recovery
The target-scoped state machine for publishing, recovering, retaining, and safely deleting repository objects.
SOW v0.2.0
SOW v0.2.0 provides Plain and Managed RPM/DEB repositories, verified generations, signing, publication, retention, GC, and RPM leaf export.
Why SOW Uses One Payload Tree per Repository
The decision to replace RPM view-local package hardlinks with one canonical pool and metadata-only views.
-
SOW v0.4.0
SOW 0.4.0 is an integrity and recovery release for Managed repositories. It makes the deep checker’s I/O contract explicit, prevents RPM trust from being assembled across unrelated keys, adds an audited way to correct mutable publication-target …
SOW 0.4.0 is an integrity and recovery release for Managed repositories. It makes the deep checker’s I/O contract explicit, prevents RPM trust from being assembled across unrelated keys, adds an audited way to correct mutable publication-target …
-
Coordinated Publication Decision
Decision finalized for SOW 0.4.0 An earlier version of this record proposed an rclone executor, publish --dry-run, and a separate sow audit command. None of those surfaces shipped in 0.4.0. SOW has no rclone dependency, publish has no --dry-run, and …
Decision finalized for SOW 0.4.0 An earlier version of this record proposed an rclone executor, publish --dry-run, and a separate sow audit command. None of those surfaces shipped in 0.4.0. SOW has no rclone dependency, publish has no --dry-run, and …
-
SOW Design Evolution: From Route Graphs to the Repository Core
This record dates to the 2026-08-10 consolidation of SOW around its Repository core. It distills the useful decisions from the earlier planning, ADR, review, migration, and verification trees without turning every intermediate artifact into …
This record dates to the 2026-08-10 consolidation of SOW around its Repository core. It distills the useful decisions from the earlier planning, ADR, review, migration, and verification trees without turning every intermediate artifact into …
-
SOW v0.3.0
SOW 0.3.0 is a performance, durability, and product-focus release. Plain repository generation completes with one package-content pass. Managed repositories avoid per-object membership queries, reuse authenticated package facts, and promote payloads …
SOW 0.3.0 is a performance, durability, and product-focus release. Plain repository generation completes with one package-content pass. Managed repositories avoid per-object membership queries, reuse authenticated package facts, and promote payloads …
-
Design Principles
SOW is not primarily a metadata generator. It is an ownership and state-transition system whose output happens to be APT and RPM repositories. The following principles keep that system small enough to reason about. One owner for every durable fact …
SOW is not primarily a metadata generator. It is an ownership and state-transition system whose output happens to be APT and RPM repositories. The following principles keep that system small enough to reason about. One owner for every durable fact …
-
System Model
The model is deliberately layered. Configuration expresses intent, the database records owned state, and the public tree is a deterministic projection. None of those layers may quietly become a substitute for another. Object hierarchy Workspace ├── …
The model is deliberately layered. Configuration expresses intent, the database records owned state, and the public tree is a deterministic projection. None of those layers may quietly become a substitute for another. Object hierarchy Workspace ├── …
-
Publication & Recovery
Building and publishing are separate state transitions. A build produces a target-neutral Generation. Publication applies that Generation to one provider prefix and records enough evidence to recover without guessing. Ownership split …
Building and publishing are separate state transitions. A build produces a target-neutral Generation. Publication applies that Generation to one provider prefix and records enough evidence to recover without guessing. Ownership split …
-
SOW v0.2.0
SOW 0.2.0 is a self-contained RPM and DEB repository manager from Pigsty. Release artifacts target Linux and macOS as single Go executables. Two operating modes Plain mode indexes RPM and DEB files already present at one directory’s top level: sow …
SOW 0.2.0 is a self-contained RPM and DEB repository manager from Pigsty. Release artifacts target Linux and macOS as single Go executables. Two operating modes Plain mode indexes RPM and DEB files already present at one directory’s top level: sow …
-
Why SOW Uses One Payload Tree per Repository
This decision was drafted on 2026-08-05 during the pre-v0.2 release design consolidation and shipped in SOW v0.2.0 on 2026-08-08. It remains the layout contract in v0.3 and v0.4. It records an architecture choice, not a blanket compatibility claim: …
This decision was drafted on 2026-08-05 during the pre-v0.2 release design consolidation and shipped in SOW v0.2.0 on 2026-08-08. It remains the layout contract in v0.3 and v0.4. It records an architecture choice, not a blanket compatibility claim: …