Skip to content

repository

9 pages
  • SOW Design Evolution: From Route Graphs to the Repository Core

    By Vonng In Design 859 words 5 min

    VonngDesignarchitecturerepositorymigrationdecision

    SOW Design Evolution: From Route Graphs to the Repository Core

    SOW moved from a Git-based distribution control plane in v0.1 to a repository engine in v0.2. This article traces that change and the refinements through v0.5.0. Version numbers below refer to released Git tags. Some archived plans used “v0.2” and …

    SOW moved from a Git-based distribution control plane in v0.1 to a repository engine in v0.2. This article traces that change and the refinements through v0.5.0. Version numbers below refer to released Git tags. Some archived plans used “v0.2” 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 …

  • System Model

    By Vonng In Design 497 words 3 min

    VonngDesignrepositorydistpoolgeneration

    System Model

    SOW uses configuration for repository settings, SQLite for managed state, and a public directory for client access. The model separates the packages you select from the files that have been built and published. Objects Workspace ├── Repository │ ├── …

    SOW uses configuration for repository settings, SQLite for managed state, and a public directory for client access. The model separates the packages you select from the files that have been built and published. Objects Workspace ├── Repository │ ├── …

  • Why SOW Uses One Payload Tree per Repository

    By Vonng In Design 686 words 4 min

    VonngDesignrepositorypoolrpmaptcompatibilitydecision

    Why SOW Uses One Payload Tree per Repository

    This decision was drafted on 2026-08-05 and shipped in SOW v0.2.0 on 2026-08-08. SOW 0.5.0 still uses this layout. Each Repository stores one package tree and lets its distribution views reference that tree. Decision Each SOW Repository owns one …

    This decision was drafted on 2026-08-05 and shipped in SOW v0.2.0 on 2026-08-08. SOW 0.5.0 still uses this layout. Each Repository stores one package tree and lets its distribution views reference that tree. Decision Each SOW Repository owns one …

  • 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 …

  • Repository Layout

    In Reference

    Referencerepositorypooldist

    Serve the complete Managed repository directory: pool/ plus dists/. Keep workspace configuration and .sow/ state outside the web server’s document root. Plain directory /srv/offline/ ├── example-1.0-1.x86_64.rpm ├── example_1.0-1_amd64.deb ├── …

    Serve the complete Managed repository directory: pool/ plus dists/. Keep workspace configuration and .sow/ state outside the web server’s document root. Plain directory /srv/offline/ ├── example-1.0-1.x86_64.rpm ├── example_1.0-1_amd64.deb ├── …

  • 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 …