Cli
short description: Generates a repository for spec-driven development from its .repo.yaml.
detailed description: |
Generates a repository for spec-driven development from its .repo.yaml.
Start with repo init (single repository) or repo init-mono (mono-repository), fill in the
.repo.yaml it writes, then run repo update. Every command works on the current directory and
accepts no options or arguments; a command line with either fails with the usage text.
The format of .repo.yaml is repo-config.schema.json.
commands:
- name: init
description: Writes a .repo.yaml template for a single repository. Refuses an existing .repo.yaml.
options: null
- name: init-mono
description: Writes a .repo.yaml template for a mono-repository with two artifacts. Refuses an existing .repo.yaml.
options: null
- name: add
description: Appends an empty artifact to the .repo.yaml of a mono-repository and generates nothing. Refuses a single repository.
options: null
- name: update
description: Validates .repo.yaml, reports every violation as `.repo.yaml:<line>: <field>: <problem>` on standard error, and writes nothing if there is one.
Requires a Git working tree that is clean apart from .repo.yaml. Writes the generator-owned files of every selected module, and a missing
developer-owned file only when the configuration recorded in meta.artifacts would not generate it. Deletes nothing; prints each existing file
of a module or artifact that is no longer configured, one path per line, then `review: <path>` for each existing developer-owned file at the
root of a mono-repository whose generated content the configuration changes. Finally records the generated modules in meta.artifacts and sets meta.generatorVersion.
options: null
- name: check
description: Validates .repo.yaml like update, then prints, one path per line, every file that update would create or change, .repo.yaml included,
and exits non-zero if there is one. Writes nothing.
options: null
- name: version
description: Prints the version of this tool on one line - version, build date, and Git commit hash, separated by spaces.
options: null