Skip to content

Tags: managed

  • SOW v0.4.0

    By Vonng In Release 1070 words 6 min

    VonngReleasereleasemanagedsigningpublishmigration

    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 …

  • SOW v0.3.0

    By Vonng In Release 766 words 4 min

    VonngReleasereleaseplainmanagedtransaction

    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

    By Vonng In Design 595 words 3 min

    VonngDesignplainmanagedrepository

    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 …

  • SOW v0.2.0

    By Vonng In Release 277 words 2 min

    VonngReleasereleasemanagedsigningpublishgeneration

    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 …

  • sow build

    In Commands

    Commandclimanagedgeneration

    sow build is the explicit Desired-to-Built convergence command. It acquires the Repository write lock, recovers any decidable unfinished Operation, renders and verifies a complete Generation, then switches protocol pointers last. Synopsis sow build …

    sow build is the explicit Desired-to-Built convergence command. It acquires the Repository write lock, recovers any decidable unfinished Operation, renders and verifies a complete Generation, then switches protocol pointers last. Synopsis sow build …

  • sow status

    In Commands

    Commandclimanagedaudit

    sow status is the cheap Repository health query. It reads state but does not hash files, verify signatures, recover Operations, build metadata, or take the write lock. Synopsis sow status [-C|--workdir DIR] [-r|--repo NAME] [-d|--dist NAME]... …

    sow status is the cheap Repository health query. It reads state but does not hash files, verify signatures, recover Operations, build metadata, or take the write lock. Synopsis sow status [-C|--workdir DIR] [-r|--repo NAME] [-d|--dist NAME]... …

  • sow where

    In Commands

    Commandclimanaged

    sow where answers which Dists in the Workspace still carry one Package Object. It is read-only, searches every Repository by default, and takes no write lock. Synopsis sow where PACKAGE [-C|--workdir DIR] [-r|--repo NAME] [-d|--dist NAME]... [--json] …

    sow where answers which Dists in the Workspace still carry one Package Object. It is read-only, searches every Repository by default, and takes no write lock. Synopsis sow where PACKAGE [-C|--workdir DIR] [-r|--repo NAME] [-d|--dist NAME]... [--json] …

  • sow show

    In Commands

    Commandclimanagedsigning

    sow show resolves one package reference in the selected Repository and prints the complete Package Object. It is read-only and takes no write lock. Synopsis sow show PACKAGE [-C|--workdir DIR] [-r|--repo NAME] [-d|--dist NAME]... [--json] Flag …

    sow show resolves one package reference in the selected Repository and prints the complete Package Object. It is read-only and takes no write lock. Synopsis sow show PACKAGE [-C|--workdir DIR] [-r|--repo NAME] [-d|--dist NAME]... [--json] Flag …

  • sow ls

    In Commands

    Commandclimanaged

    sow ls is a read-only query over Package Objects and Dist Membership. It shows what each selected Dist should contain and whether that membership is present in the current Built Generation. Synopsis sow ls [-C|--workdir DIR] [-r|--repo NAME] …

    sow ls is a read-only query over Package Objects and Dist Membership. It shows what each selected Dist should contain and whether that membership is present in the current Built Generation. Synopsis sow ls [-C|--workdir DIR] [-r|--repo NAME] …

  • sow rm

    In Commands

    Commandclimanagedpolicy

    sow rm takes packages out of the Desired Membership of the Dists you select and, by default, rebuilds the affected indexes immediately. It does not delete bytes from pool/ — membership and content are separate concepts, and reclamation is the …

    sow rm takes packages out of the Desired Membership of the Dists you select and, by default, rebuilds the affected indexes immediately. It does not delete bytes from pool/ — membership and content are separate concepts, and reclamation is the …

  • sow add

    In Commands

    Commandclimanagedpolicy

    sow add is the main write path. It parses the packages you point at, derives their format and architecture from the package headers, applies the Dist’s membership policy, and — unless you pass --skip — rebuilds every affected index before it returns. …

    sow add is the main write path. It parses the packages you point at, derives their format and architecture from the package headers, applies the Dist’s membership policy, and — unless you pass --skip — rebuilds every affected index before it returns. …

  • Membership Policy

    In Features

    Featurepolicymanaged

    Policy is the answer to “I dumped a build directory into this Dist and I do not want the debuginfo packages, and I only want the latest version of each package.” Two rules do that work, they run in a fixed order, and they run over the whole candidate …

    Policy is the answer to “I dumped a build directory into this Dist and I do not want the debuginfo packages, and I only want the latest version of each package.” Two rules do that work, they run in a fixed order, and they run over the whole candidate …

  • sow dist

    In Commands

    Commandclidistmanaged

    A Dist is a named set of packages in exactly one format (rpm or deb) inside one Repository. It is what a client points at. A Repository can hold RPM and DEB Dists side by side; they share one pool/ but render into completely separate dists/ subtrees. …

    A Dist is a named set of packages in exactly one format (rpm or deb) inside one Repository. It is what a client points at. A Repository can hold RPM and DEB Dists side by side; they share one pool/ but render into completely separate dists/ subtrees. …

  • Build the pigsty-infra Repository

    In Tutorials

    Tutorialyumrpmmanagedpublish

    pgsty/infra-pkg is the upstream build source for Pigsty Infra packages. This tutorial assumes the dual-architecture RPMs and DEBs already exist and covers the second half of the job: turning that pile of packages into a real, consumable, maintainable …

    pgsty/infra-pkg is the upstream build source for Pigsty Infra packages. This tutorial assumes the dual-architecture RPMs and DEBs already exist and covers the second half of the job: turning that pile of packages into a real, consumable, maintainable …

  • Serve and Publish Repositories

    In Tutorials

    Tutorialpublishfilesystemmanaged

    SOW writes static files; it is not an HTTP server. This guide keeps the writable Workspace separate from the path Nginx serves. Public and private paths Mode Public unit Never serve Plain the directory passed to sow create transient …

    SOW writes static files; it is not an HTTP server. This guide keeps the writable Workspace separate from the path Nginx serves. Public and private paths Mode Public unit Never serve Plain the directory passed to sow create transient …

  • sow repo

    In Commands

    Commandclirepositorymanaged

    A Repository owns one pool/, one dists/, one SQLite database and one private state directory. It is the boundary of locking, transaction recovery, Generation numbering and Changesets — nothing is deduplicated across Repositories and no …

    A Repository owns one pool/, one dists/, one SQLite database and one private state directory. It is the boundary of locking, transaction recovery, Generation numbering and Changesets — nothing is deduplicated across Repositories and no …

  • Core Concepts

    In Get Started

    Startplainmanagedrepositorydist

    Plain or Managed The two execution paths are separate. Plain Managed Entry point sow create DIR init, repo, dist, add, rm, build State package directory sow.yml plus private SQLite/journals Public layout flat RPM/DEB indexes Repository pool/ + dists/ …

    Plain or Managed The two execution paths are separate. Plain Managed Entry point sow create DIR init, repo, dist, add, rm, build State package directory sow.yml plus private SQLite/journals Public layout flat RPM/DEB indexes Repository pool/ + dists/ …

  • Managed Workspaces

    In Features

    Featuremanagedrepositorydistgeneration

    Managed mode is what you use when the same repository will be updated for months: packages arrive in batches, policy decides what stays, and you need to prove afterwards what changed and when. This page explains the three-tier model, the layout it …

    Managed mode is what you use when the same repository will be updated for months: packages arrive in batches, policy decides what stays, and you need to prove afterwards what changed and when. This page explains the three-tier model, the layout it …

  • Your First Workspace

    In Get Started

    Startmanagedrepositorydistgeneration

    Managed mode keeps configuration, membership, generations, and audit state. This example starts from an empty directory. Initialize the workspace sow init /srv/sow cd /srv/sow init creates: /srv/sow/ ├── sow.yml # configuration; schema: sow/v3 └── …

    Managed mode keeps configuration, membership, generations, and audit state. This example starts from an empty directory. Initialize the workspace sow init /srv/sow cd /srv/sow init creates: /srv/sow/ ├── sow.yml # configuration; schema: sow/v3 └── …

  • Features

    In Features

    Featureplainmanagedpolicysigning

    SOW has two isolated execution paths. Plain mode is a stateless rebuild of one directory; Managed mode records package membership and immutable repository generations in a workspace. Neither path silently adopts state from the other. Capability …

    SOW has two isolated execution paths. Plain mode is a stateless rebuild of one directory; Managed mode records package membership and immutable repository generations in a workspace. Neither path silently adopts state from the other. Capability …

  • sow init

    In Commands

    Commandclimanagedconfig

    sow init creates the root sow.yml and the private .sow/ state directory that make a directory a Workspace. It is also the convergence command for a config you wrote by hand: if sow.yml already declares Repositories and Dists, init materializes the …

    sow init creates the root sow.yml and the private .sow/ state directory that make a directory a Workspace. It is also the convergence command for a config you wrote by hand: if sow.yml already declares Repositories and Dists, init materializes the …

  • sow.yml Reference

    In Reference

    Referenceconfigmanaged

    sow.yml is the single configuration file of a managed workspace. It sits at the workspace root, declares which repositories and distributions exist, and holds the membership policy and signing settings that every build applies. Plain mode (sow …

    sow.yml is the single configuration file of a managed workspace. It sits at the workspace root, declares which repositories and distributions exist, and holds the membership policy and signing settings that every build applies. Plain mode (sow …

  • Build an APT Repository

    In Tutorials

    Tutorialaptdebmanageddist

    This tutorial creates a new Managed DEB repository. You need a writable directory, and one or more DEB files. 1. Create the workspace mkdir -p /srv/sow cd /srv/sow sow init . sow repo new pigsty sow dist new trixie --format deb -r pigsty The Dist …

    This tutorial creates a new Managed DEB repository. You need a writable directory, and one or more DEB files. 1. Create the workspace mkdir -p /srv/sow cd /srv/sow sow init . sow repo new pigsty sow dist new trixie --format deb -r pigsty The Dist …

  • Get Started

    In Get Started

    Startinstallplainmanaged

    SOW builds static RPM/YUM and DEB/APT repositories; it is not an HTTP daemon. Choose one of two isolated paths: Plain: sow create rebuilds indexes beside the packages in an ordinary directory. Managed: a workspace tracks package membership, Dists, …

    SOW builds static RPM/YUM and DEB/APT repositories; it is not an HTTP daemon. Choose one of two isolated paths: Plain: sow create rebuilds indexes beside the packages in an ordinary directory. Managed: a workspace tracks package membership, Dists, …

  • Build a YUM Repository

    In Tutorials

    Tutorialyumrpmmanageddist

    This tutorial creates a new Managed RPM repository. You need a writable directory, and one or more RPM files. 1. Create the workspace mkdir -p /srv/sow cd /srv/sow sow init . sow repo new pigsty sow dist new el9 --format rpm -r pigsty The Dist name …

    This tutorial creates a new Managed RPM repository. You need a writable directory, and one or more RPM files. 1. Create the workspace mkdir -p /srv/sow cd /srv/sow sow init . sow repo new pigsty sow dist new el9 --format rpm -r pigsty The Dist name …

  • Design Records

    In Design 144 words 1 min

    Designmanagedpublishtransaction

    Design Records

    Design records explain why SOW adopted a contract, what it rejected, and which evidence boundary applies. They are ordered by date, which records when the rationale first took its maintained form; lastmod records later editorial or …

    Design records explain why SOW adopted a contract, what it rejected, and which evidence boundary applies. They are ordered by date, which records when the rationale first took its maintained form; lastmod records later editorial or …