The Cargo homepage feeds Plugin::URL, which hosts can show to users, so a LAN-only Gitea address was the wrong value there. wiki.novoyuuparosk.org is still a placeholder, but a reachable one. The Gitea URL is deliberately not added to STALE even though it was retired as the homepage: it remains the correct clone URL and appears in the README as one. A value can be retired from one role while staying current in another, and STALE is about spellings nobody should use rather than values that moved fields. The checker flagged it and this is the resolution, matching how codename-206 exempts its own repo name. Also finishes turning the template's README into this plugin's. The scaffold left a Quick Start telling the reader to clone the template, and a `sh check-branding.sh` path that has since moved under tools/. The full branding rationale stays in the template; this repo keeps a pointer and the facts specific to it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WHt4DykxXaQnyaJfyS8KCn
This commit is contained in:
@@ -8,66 +8,22 @@ the DSP is not written yet, the plugin currently passes audio through an example
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
# Clone this repo as your starting point
|
||||
git clone http://192.168.2.199:3005/musiikki/nih-plug-template my-plugin
|
||||
cd my-plugin
|
||||
|
||||
# Edit: src/lib.rs, Cargo.toml, bundler.toml — replace placeholder values
|
||||
# See musiikki/codename-206 for a real-world example of how to fill these in
|
||||
|
||||
# Then verify the rename landed everywhere
|
||||
sh check-branding.sh
|
||||
git clone http://192.168.2.199:3005/musiikki/kolmekivi
|
||||
cd kolmekivi
|
||||
cargo xtask bundle kolmekivi --release --features vst3
|
||||
```
|
||||
|
||||
## Renaming
|
||||
## Branding
|
||||
|
||||
Identity is duplicated across `Cargo.toml`, `bundler.toml`, `src/lib.rs`, `NOTICE`,
|
||||
`Cargo.lock`, the CI workflow and the docs. Nothing makes those agree, so a half-finished
|
||||
rename builds a bundle under one name while CI bundles another.
|
||||
Identity lives in `tools/branding.conf`; `sh tools/check-branding.sh` asserts every copy of
|
||||
it agrees, and CI runs that on each push. To rename the plugin, use
|
||||
`sh tools/brand-plugin.sh` — it derives the package and type names, refuses to move the
|
||||
frozen `CLAP_ID`/`VST3_CLASS_ID` without `--allow-identity-change`, and verifies itself with
|
||||
the checker afterwards. The toolkit and the reasoning behind it live in
|
||||
[`musiikki/nih-plug-template`](http://192.168.2.199:3005/musiikki/nih-plug-template).
|
||||
|
||||
Everything for it lives in `tools/`:
|
||||
|
||||
```
|
||||
tools/branding.conf the names, and what derives from what
|
||||
tools/branding-sites.tsv where each name has to appear, and in what form
|
||||
tools/brand-plugin.sh changes names
|
||||
tools/check-branding.sh verifies them
|
||||
```
|
||||
|
||||
```bash
|
||||
sh tools/brand-plugin.sh # interactive; Enter keeps a value
|
||||
sh tools/brand-plugin.sh --display "Fuzz Box" # or non-interactive; dry run
|
||||
sh tools/brand-plugin.sh --display "Fuzz Box" --apply
|
||||
sh tools/check-branding.sh # exit 0 = consistent, 1 = drift
|
||||
```
|
||||
|
||||
**One name drives the rest.** `PLUGIN_NAME` derives the package name (`Fuzz Box` →
|
||||
`fuzz_box`), the Rust types (`FuzzBox`, `FuzzBoxParams`) and the display name. Each is
|
||||
overridable in `branding.conf`, because the derivation is sometimes wrong and sometimes
|
||||
outright invalid — `206 Prototype` derives to `206_prototype`, which Cargo rejects since a
|
||||
package name cannot start with a digit. The helper refuses those, along with Rust keywords
|
||||
and built-in crate names.
|
||||
|
||||
**The checker does both halves.** Every canonical value is asserted *present* where it
|
||||
belongs, and every retired spelling is swept for. Absence alone is not enough: renaming to
|
||||
the wrong new spelling would pass a stale-sweep and still break CI.
|
||||
|
||||
**Two things it will not do for you.** `CLAP_ID` and `VST3_CLASS_ID` are how hosts recognise
|
||||
saved projects and presets — change either and every existing session silently loses the
|
||||
plugin, with no error. They need `--allow-identity-change`, and the 16-byte class ID is
|
||||
*proposed* rather than derived, because that choice is yours. And `CLAP_DESCRIPTION` is
|
||||
rejected if it carries a retired name or the repo codename: hosts show it to users who never
|
||||
knew your development history.
|
||||
|
||||
**The repo name is deliberately not derived.** It is fixed when the repo is created and keeps
|
||||
its development codename while the plugin gets a product name. `CODENAME` records it so it
|
||||
can be kept out of user-facing text.
|
||||
|
||||
Adding a site the template doesn't ship is one row in `branding-sites.tsv` with owner
|
||||
`custom` — no shell to edit, and it survives regeneration. Rows the helper owns are rewritten
|
||||
on each rename; custom rows are carried through and value-substituted like any other file.
|
||||
Both files can be hand-edited; the helper is what keeps them agreeing, so run the checker
|
||||
after if you do.
|
||||
The repository keeps the name `kolmekivi` even if the plugin is renamed — that is the
|
||||
development codename, fixed at creation.
|
||||
|
||||
## Build
|
||||
|
||||
|
||||
Reference in New Issue
Block a user