Skip to content

managed

27 pages
  • SOW v0.4.0

    By Vonng In Release 917 words 5 min

    VonngReleasereleasemanagedsigningpublishmigration

    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 …

  • SOW v0.3.0

    By Vonng In Release 605 words 3 min

    VonngReleasereleaseplainmanagedtransaction

    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

    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 …

  • SOW v0.2.0

    By Vonng In Release 330 words 2 min

    VonngReleasereleasemanagedsigningpublishgeneration

    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 …

  • The v0.2 Reset: Plain and Managed Instead of a Universal Control Plane

    By Vonng In Design 1188 words 6 min

    VonngDesignhistoryv0.2plainmanagedarchitecturedecision

    The v0.2 Reset: Plain and Managed Instead of a Universal Control Plane

    On 2026-07-31, after sealing the v0.1 source baseline, SOW began a product reset. The goal was a small repository engine that could replace Pigsty’s daily package-build workflow. It kept the earlier lessons about integrity and recovery while removing …

    On 2026-07-31, after sealing the v0.1 source baseline, SOW began a product reset. The goal was a small repository engine that could replace Pigsty’s daily package-build workflow. It kept the earlier lessons about integrity and recovery while removing …

  • sow build

    In Commands

    Commandclimanagedgeneration

    sow build updates local indexes to match Desired membership and current configuration. Run it after add --skip, rm --skip, or a policy change. It recovers unfinished local Repository operations before starting the next build. Synopsis sow build …

    sow build updates local indexes to match Desired membership and current configuration. Run it after add --skip, rm --skip, or a policy change. It recovers unfinished local Repository operations before starting the next build. Synopsis sow build …

  • sow status

    In Commands

    Commandclimanagedaudit

    sow status reports whether a Repository needs a build, how much pending data it holds, and whether a writer is active. It reads stored state without hashing package files. Use sow check to verify file contents. Synopsis sow status [-C|--workdir DIR] …

    sow status reports whether a Repository needs a build, how much pending data it holds, and whether a writer is active. It reads stored state without hashing package files. Use sow check to verify file contents. Synopsis sow status [-C|--workdir DIR] …

  • sow where

    In Commands

    Commandclimanaged

    sow where finds the Desired membership locations of one package across a Workspace. It searches all Repositories by default. Use -r or -d to limit the search. Synopsis sow where PACKAGE [-C|--workdir DIR] [-r|--repo NAME] [-d|--dist NAME]... [--json] …

    sow where finds the Desired membership locations of one package across a Workspace. It searches all Repositories by default. Use -r or -d to limit the search. Synopsis sow where PACKAGE [-C|--workdir DIR] [-r|--repo NAME] [-d|--dist NAME]... [--json] …

  • sow show

    In Commands

    Commandclimanagedsigning

    sow show displays one package in the selected Repository. The text output summarizes its identity, storage, and membership. Add --json for the complete stored package record. Synopsis sow show PACKAGE [-C|--workdir DIR] [-r|--repo NAME] [-d|--dist …

    sow show displays one package in the selected Repository. The text output summarizes its identity, storage, and membership. Add --json for the complete stored package record. Synopsis sow show PACKAGE [-C|--workdir DIR] [-r|--repo NAME] [-d|--dist …

  • sow ls

    In Commands

    Commandclimanaged

    sow ls lists packages in the selected Dists’ Desired membership. Each row also shows the package’s Desired and Built locations across the Repository. Use it to obtain package references for show or rm. Synopsis sow ls [-C|--workdir DIR] [-r|--repo …

    sow ls lists packages in the selected Dists’ Desired membership. Each row also shows the package’s Desired and Built locations across the Repository. Use it to obtain package references for show or rm. Synopsis sow ls [-C|--workdir DIR] [-r|--repo …

  • sow rm

    In Commands

    Commandclimanagedpolicy

    sow rm removes packages from the selected Dists and rebuilds their local indexes. Use --check to preview the removal, or --skip to postpone the build. Package files remain in pool/ until sow gc can reclaim them. Synopsis sow rm PACKAGE... …

    sow rm removes packages from the selected Dists and rebuilds their local indexes. Use --check to preview the removal, or --skip to postpone the build. Package files remain in pool/ until sow gc can reclaim them. Synopsis sow rm PACKAGE... …

  • sow add

    In Commands

    Commandclimanagedpolicy

    sow add imports packages into the selected Dists and builds their local indexes. It reads package format and architecture from the package headers, then applies each Dist’s policy. Use --skip to import several batches before one build. To update a …

    sow add imports packages into the selected Dists and builds their local indexes. It reads package format and architecture from the package headers, then applies each Dist’s policy. Use --skip to import several batches before one build. To update a …

  • Membership Policy

    In Features

    Featurepolicymanaged

    Use Dist policy to exclude unwanted packages and limit the number of versions in indexes. Set exclude and limit in sow.yml: dists: el9: format: rpm limit: 2 exclude: - kind: [debuginfo, debugsource, llvmjit] SOW applies exclude first, then limit. …

    Use Dist policy to exclude unwanted packages and limit the number of versions in indexes. Set exclude and limit in sow.yml: dists: el9: format: rpm limit: 2 exclude: - kind: [debuginfo, debugsource, llvmjit] SOW applies exclude first, then limit. …

  • sow dist

    In Commands

    Commandclidistmanaged

    sow dist manages the distributions that clients use. Each Dist contains either RPM or DEB packages. Dists in one Repository share pool/ and have separate indexes under dists/. Synopsis sow dist ls [-C DIR] [-r NAME] [--json] sow dist new NAME …

    sow dist manages the distributions that clients use. Each Dist contains either RPM or DEB packages. Dists in one Repository share pool/ and have separate indexes under dists/. Synopsis sow dist ls [-C DIR] [-r NAME] [--json] sow dist new NAME …

  • Build the pigsty-infra Repository

    In Tutorials

    Tutorialyumrpmmanagedpublish

    pgsty/infra-pkg is the upstream build source for Pigsty Infra packages. This tutorial uses already-built RPMs and DEBs for x86-64 and ARM64. It creates an infra Repository with rolling channels, stable releases, and monthly snapshots. Install SOW, …

    pgsty/infra-pkg is the upstream build source for Pigsty Infra packages. This tutorial uses already-built RPMs and DEBs for x86-64 and ARM64. It creates an infra Repository with rolling channels, stable releases, and monthly snapshots. Install SOW, …

  • Serve and Publish Repositories

    In Tutorials

    Tutorialpublishfilesystemmanaged

    SOW generates static repository files. This guide publishes a Managed Repository to a separate directory, then serves that directory with Nginx. It continues from First Workspace. The source is /srv/sow/local; the public copy will be …

    SOW generates static repository files. This guide publishes a Managed Repository to a separate directory, then serves that directory with Nginx. It continues from First Workspace. The source is /srv/sow/local; the public copy will be …

  • sow repo

    In Commands

    Commandclirepositorymanaged

    sow repo creates, lists, inspects, upgrades, and removes Repositories. Each Repository stores its packages in pool/ and its indexes in dists/. Packages are shared among Dists in the same Repository. Synopsis sow repo ls [-C DIR] [--json] sow repo new …

    sow repo creates, lists, inspects, upgrades, and removes Repositories. Each Repository stores its packages in pool/ and its indexes in dists/. Packages are shared among Dists in the same Repository. Synopsis sow repo ls [-C DIR] [--json] sow repo new …

  • Core Concepts

    In Get Started

    Startplainmanagedrepositorydist

    Choose a mode Need Plain Managed Build indexes from a package directory sow create DIR Import packages with sow add Keep configuration and package membership Directory contents are the state sow.yml and private SQLite databases Organize packages One …

    Choose a mode Need Plain Managed Build indexes from a package directory sow create DIR Import packages with sow add Keep configuration and package membership Directory contents are the state sow.yml and private SQLite databases Organize packages One …

  • Managed Workspaces

    In Features

    Featuremanagedrepositorydistgeneration

    Use Managed mode for repositories that receive regular updates. SOW records package membership, applies Dist policy, builds metadata, and keeps operation history. Workspace, repository, and Dist Workspace └── Repository └── Dist └── Architecture view …

    Use Managed mode for repositories that receive regular updates. SOW records package membership, applies Dist policy, builds metadata, and keeps operation history. Workspace, repository, and Dist Workspace └── Repository └── Dist └── Architecture view …

  • Your First Workspace

    In Get Started

    Startmanagedrepositorydistgeneration

    This example creates a Managed repository with two named package sets, called Dists: el9 for RPMs and bookworm for DEBs. Use an empty, writable /srv/sow directory, or substitute another path. Initialize the workspace sow init /srv/sow cd /srv/sow …

    This example creates a Managed repository with two named package sets, called Dists: el9 for RPMs and bookworm for DEBs. Use an empty, writable /srv/sow directory, or substitute another path. Initialize the workspace sow init /srv/sow cd /srv/sow …

  • Features

    In Features

    Featureplainmanagedpolicysigning

    SOW creates repository indexes in two modes. Choose Plain for a directory you can rebuild. Choose Managed for ongoing package updates, policy, signing, and publication. Capabilities Capability Plain Managed RPM and DEB indexes One directory, either …

    SOW creates repository indexes in two modes. Choose Plain for a directory you can rebuild. Choose Managed for ongoing package updates, policy, signing, and publication. Capabilities Capability Plain Managed RPM and DEB indexes One directory, either …

  • sow init

    In Commands

    Commandclimanagedconfig

    sow init creates a Workspace with sow.yml and private .sow/ state. If the configuration already declares Repositories and Dists, it creates the missing ones. Run it again to complete initialization after adding declarations. Synopsis sow init [DIR] …

    sow init creates a Workspace with sow.yml and private .sow/ state. If the configuration already declares Repositories and Dists, it creates the missing ones. Run it again to complete initialization after adding declarations. Synopsis sow init [DIR] …

  • sow.yml Reference

    In Reference

    Referenceconfigmanaged

    sow.yml configures a Managed workspace. It declares repositories, Dists, package policy, signing, and publication targets. Plain sow create does not read it. After editing the file, validate it and inspect the effective settings: sow config check sow …

    sow.yml configures a Managed workspace. It declares repositories, Dists, package policy, signing, and publication targets. Plain sow create does not read it. After editing the file, validate it and inspect the effective settings: sow config check sow …

  • Build an APT Repository

    In Tutorials

    Tutorialaptdebmanageddist

    This tutorial creates a new Managed DEB repository. Install SOW and Python 3, and prepare DEB files built for your clients. Use an empty /srv/sow directory that your user can create and write to, or substitute another writable path. 1. Create the …

    This tutorial creates a new Managed DEB repository. Install SOW and Python 3, and prepare DEB files built for your clients. Use an empty /srv/sow directory that your user can create and write to, or substitute another writable path. 1. Create the …

  • Get Started

    In Get Started

    Startinstallplainmanaged

    SOW turns RPM and DEB files into static YUM and APT repositories. Install SOW, then choose how to manage your packages: Plain mode: run sow create DIR to build indexes for the packages in a directory. Managed mode: create a workspace to group …

    SOW turns RPM and DEB files into static YUM and APT repositories. Install SOW, then choose how to manage your packages: Plain mode: run sow create DIR to build indexes for the packages in a directory. Managed mode: create a workspace to group …

  • Build a YUM Repository

    In Tutorials

    Tutorialyumrpmmanageddist

    This tutorial creates a new Managed RPM repository. Install SOW and Python 3, and prepare RPM files built for your clients. Use an empty /srv/sow directory that your user can create and write to, or substitute another writable path. 1. Create the …

    This tutorial creates a new Managed RPM repository. Install SOW and Python 3, and prepare RPM files built for your clients. Use an empty /srv/sow directory that your user can create and write to, or substitute another writable path. 1. Create the …

  • Design Records

    In Design 98 words 1 min

    Designmanagedpublishtransaction

    Design Records

    Design records explain the choices behind SOW’s repository layout, state model, and publication workflow. Article dates record when a decision was documented; modification dates record later revisions. Start with these current design explanations: …

    Design records explain the choices behind SOW’s repository layout, state model, and publication workflow. Article dates record when a decision was documented; modification dates record later revisions. Start with these current design explanations: …