resonon.toml
The project manifest, at the project root. resonon init / resonon new create it:
[package]name = "my-project"version = "0.1.0"authors = ["Your Name <email>"]resonon = "0.10.0"
[dependencies]drums = { source = "gh:resonon/drum-kits", version = "v1.0" }synths = { source = "gh:user/synths" }[package]
Section titled “[package]”| Field | Required | Description |
|---|---|---|
name | Yes | Package name. |
version | No | Package version. Informational. |
authors | No | List of authors. Informational. |
resonon | No | resonon version the project is pinned to. |
resonon pins the project to a version, at major.minor precision; patch releases are
interchangeable. The default version runs unless the project needs a different minor;
then the newest installed patch of that minor runs. A pinned version that is not
installed is not downloaded.
Every command that works on a project checks the pin first — running a piece, the REPL,
build, install, update, remove, collect, kits, pkg, and each evaluation in
a live server:
| The pin, against the running version | Result |
|---|---|
| The same minor | Runs. |
| A newer minor | Refused. |
| An older minor | Runs, with a warning. |
The message says what to do: install the pinned version, or, if it is installed, run from inside the project so the launcher picks it.
To upgrade a project, change resonon to the new version.
[dependencies]
Section titled “[dependencies]”Each entry maps a package name to its source. The key is the local package name (the directory it installs into).
| Field | Required | Description |
|---|---|---|
source | Yes | Package source (gh:user/repo). |
version | No | Git tag to pin to (e.g. "v1.0"). |
[local]
Section titled “[local]”What the project draws on that has no upstream to fetch it from. An entry has no
source.
| Field | Required | Description |
|---|---|---|
kits | No | Kits that came from outside the project and cannot be fetched. |
resonon collect writes these entries for you. See Share a
Project.
[native]
Section titled “[native]”Present only for packages with a native Rust extension. See Ship a Native Extension.
| Field | Required | Description |
|---|---|---|
crate | Yes | Path to the native Rust crate (relative to the project root). |
Keys that aren’t manifest keys
Section titled “Keys that aren’t manifest keys”A key resonon doesn’t read is named, not obeyed and not fatal:
warning: /my-project/resonon.toml has a key that is not a manifest key: `[package] versoin` — nothing reads this key. Did you mean `version`?It is reported once; everything else in the file still applies, and the piece still plays.
In VSCode the key is underlined where it is written, with a Rename to version quick fix.
A file that cannot be parsed stops every command that reads it, naming the line. resonon install checks this before it fetches anything, and leaves nothing on disk when it fails.