Repo docs

Per-repo documentation — each repo's docs/ and README, ingested and associated with the repo. Rendered through the <<<RepoDocs>>> tag.

← jazz-forge docs · README.md

forge — local build harness

Single-developer, GitLab-free build environment. Everything is local and backed up.

Pieces

- Action logforge.db (SQLite), actions table. Every harness action is recorded. - Local headless git remote — bare repos under remotes/<name>.git (pushed via file://). - Mirror — a second bare copy under mirror/<name>.git (headless backup of each remote). - Version stampinggit describe --tags --dirty --always_version.py. - Artifacts registry — a NATIVE content-addressed store (forge.artifacts, no Docker). Binary build outputs (VM images, cidata seeds, squashfs, .img, wheels, …) are stored by sha256 (so identical content dedupes), indexed in the artifacts table (name:version → sha256 + provenance). Blobs live OUTSIDE the repo at ~/bin/config/forge-artifacts (override FORGE_ARTIFACTS; swept by backup-conductor). Replaced the old pypiserver-in-Docker mock. - CI/CDforge ci <repo>: test → build → publish into the artifacts registry, every stage logged. - Backupforge backup: tars the harness and copies to iCloud Drive (forge-backups/).

Use

python -m forge.cli init                 # create the action DB + artifacts index
python -m forge.cli ci <repo>            # test+build+publish a module into the registry
python -m forge.cli push <repo>          # push to local bare remote
python -m forge.cli mirror <name>        # mirror that remote
python -m forge.cli backup               # tar -> iCloud
python -m forge.cli tail -n 30           # recent actions

# artifacts registry (content-addressed; big binaries welcome)
python -m forge.cli artifact put disk.qcow2 --name pi-imaging --version 2026-07-08 --kind qcow2
python -m forge.cli artifact list [name]
python -m forge.cli artifact get pi-imaging          # -> blob path (latest); --version to pin

A launchd timer (com.forge.backup) runs backup automatically.