Tags: managed
-
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
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 …
-
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 …