ADR 0002 - Project and binary naming
On this page
Status
Stable.
Context
The design spec originally used Coppersmith as a working name for the project
with coprctl as the binary, and marked the name swappable. Maintaining two
names creates real friction: the go.mod module path is github.com/abn/coprctl
while a repo named coppersmith would disagree with it, go install, the Copr
repo, the docs, and the agent skill would all need to know which token to use,
and public references would drift.
Decision
Standardize on coprctl as the single name for the project, the repository,
the module, the binary, the Copr repo, the docs, and the agent skill. Retire
Coppersmith; it is not used in any public-facing artefact.
The name coprctl is chosen because it pattern-matches instantly for both
humans and agents (alongside systemctl, kubectl, copr-cli), is
self-describing to Copr maintainers, and keeps every reference in agreement.
Consequences
- One name everywhere: repo
github.com/abn/coprctl, modulegithub.com/abn/coprctl, binarycoprctl,dnf copr enable abn/coprctl. - No mapping table is needed between a project codename and the real name.
- Coppersmith is absent from public docs and the blog post; it survives only as a historical note in the working spec.