Quick Start
Plain mode builds a flat repository in one directory. It does not read sow.yml, create
a workspace, or keep a database.
Prepare a directory
Put RPM and/or DEB files at the directory top level. sow create does not recurse and
does not move or rename package files.
If one glob has no matches, copy the formats you actually have instead.
Generate metadata
An illustrative mixed-format result is:
The directory now contains:
Plain mode does not generate a DEB Release, InRelease, or Release.gpg. RPM and DEB
metadata are generated in one operation; a parse or render failure prevents the new
indexes from being committed.
Serve the directory
For a local check, any static file server is sufficient:
Verify the protocol entry points from another shell:
Python’s server is only a preview. Use a maintained HTTP server for persistent service.
Configure a client
Replace REPO_HOST with the address clients can reach.
Then refresh and install a package:
The APT source ends in ./ because this is a flat repository. [trusted=yes] and the
disabled DNF signature checks are appropriate only for this unsigned quick start. Use a
signed Managed repository when authenticity matters.
Update the repository
Change the package files and run the same command again:
The directory contents are the complete Plain-mode state. With unchanged package bytes,
the generated metadata is deterministic and a repeat run reports noop=true.
For automation, request the versioned JSON envelope:
When to use Managed mode
Use Plain mode when the directory already contains exactly what should be published. Use a Managed workspace when you need named Dists, architecture views, membership policy, signed metadata, generations, audit, or publication targets.
See also sow create and
Plain Flat Repositories.