Capability Overview
What SOW covers across both execution paths, both package formats, signing, and platforms — and how it compares to createrepo_c and reprepro.
This section explains the machinery. The Getting Started pages show you which commands to type and the Tutorials walk through complete scenarios; the pages here answer the next question — what is actually happening on disk, and why was it designed that way.
Every page opens with the invariants it protects, then shows the mechanism that enforces them. If you only need syntax, go to the Reference instead.
| Question | Page |
|---|---|
What can SOW do, and how does it compare to createrepo_c and reprepro? | Capability Overview |
What exactly does sow create write, and what does it refuse to touch? | Plain Flat Repositories |
| How do Workspace, Repository and Dist relate, and how does SOW find them? | Managed Workspaces |
| Why is the same package byte visible in three places at once? | Pool & Architecture Views |
Why did my package come back as excluded or limited? | Membership Policy |
| Which key signs what, and what happens when I rotate it? | Signing Model |
What happens if the machine dies mid-add? | Transactions & Recovery |
| How do I prove the tree is safe to ship? | Observability & Audit |
What SOW covers across both execution paths, both package formats, signing, and platforms — and how it compares to createrepo_c and reprepro.
How sow create turns a directory of packages into a flat repository: scanning, staging, atomic replacement, deterministic output, and the Pigsty compatibility operation.
The Workspace to Repository to Dist model, the fixed on-disk layout, how sow.yml drives everything, and the discovery and selection rules.
One package, one owner, many views: how hardlink projection keeps YUM metadata hrefs safe for reposync, why noarch lands in every view, and why the pool must share a filesystem.
How exclude and limit decide which packages stay in a Dist: rule fields, glob matching, version ordering, and why loosening a policy never resurrects a removed member.
Two independent trust chains, three ways to reference a key, in-process versus external signing, and what happens to your repository when you rotate a key.
The three journals, the two-level lock model, the fixed commit order, and what happens when a write command is killed halfway through.
One question per command: status for cheap state, check for a full proof, changes for a delivery plan, log for the operation ledger — plus how generation retention works.