diff --git a/Cargo.toml b/Cargo.toml index 210c03e..7b026f9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "kolmekivi" version = "0.1.0" edition = "2021" authors = ["Mikkeli Matlock "] -homepage = "http://192.168.2.199:3005/musiikki/kolmekivi" +homepage = "https://wiki.novoyuuparosk.org" description = "A stereo delay/echo plugin built with NIH-plug" license = "GPL-3.0-or-later" diff --git a/README.md b/README.md index f1509a5..226de38 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/tools/branding-sites.tsv b/tools/branding-sites.tsv index 02d2132..dd6aeee 100644 --- a/tools/branding-sites.tsv +++ b/tools/branding-sites.tsv @@ -25,7 +25,7 @@ req name.plugin src/lib.rs const NAME: &'static str = "Kolmekivi" req vendor.plugin src/lib.rs const VENDOR: &'static str = "Novoyuuparosk" req email.plugin src/lib.rs const EMAIL: &'static str = "mikkeli@novoyuuparosk.org" req authors.cargo Cargo.toml authors = ["Mikkeli Matlock "] -req homepage.cargo Cargo.toml homepage = "http://192.168.2.199:3005/musiikki/kolmekivi" +req homepage.cargo Cargo.toml homepage = "https://wiki.novoyuuparosk.org" req url.plugin src/lib.rs const URL: &'static str = env!("CARGO_PKG_HOMEPAGE") req description.cargo Cargo.toml description = "A stereo delay/echo plugin built with NIH-plug" req description.clap src/lib.rs Some("Stereo delay with feedback and mix control") diff --git a/tools/branding.conf b/tools/branding.conf index 2654e15..0ff160a 100644 --- a/tools/branding.conf +++ b/tools/branding.conf @@ -30,7 +30,7 @@ EMAIL="mikkeli@novoyuuparosk.org" # an org ships the plugin, a person authored it. Defaults to VENDOR when the two # are the same, which is the common case for a one-person project. AUTHOR="Mikkeli Matlock" -HOMEPAGE="http://192.168.2.199:3005/musiikki/kolmekivi" +HOMEPAGE="https://wiki.novoyuuparosk.org" DESCRIPTION="A stereo delay/echo plugin built with NIH-plug" # What the plugin does *now*. No codename, no "prototype", no "v2 rewrite" -