This document explains the devaforge plugin commands implemented by the tooling: how to create, build, list, delete and version plugins.
A generated plugin has this structure:
generated/plugins/<publisher>/<name>/src/— source codeplugin.toml— plugin manifest (name, publisher, version, access, exports)README.md
Create a new plugin skeleton. The command prompts for publisher and name (or accepts flags).
devaforge plugin createBy default the generator creates: generated/plugins/<publisher>/<name>/ with a src/ folder and a minimal plugin.toml.
Build all plugins:
devaforge plugin buildBuild a single plugin
devaforge plugin build <publisher>.<name>Outputs:
generated/plugins/<publisher>/<name>/build/— compiled outputoutput/plugin/<publisher>.<name>.tar.gz— packaged archive (if packaging is enabled)
List locally generated plugins:
devaforge plugin listThis prints generated/plugins/* entries with basic metadata (name, version, build state).
Remove a generated plugin and its build artifacts:
devaforge plugin delete <publisher>.<name>This deletes generated/plugins/<publisher>/<name>/ and any output/plugin/... artifacts.
Bump the plugin semantic version in plugin.toml:
devaforge plugin version <publisher>.<name> <major|minor|patch>
# Examples
devaforge plugin version devaloop.808 major # 1.0.0 → 2.0.0
devaforge plugin version devaloop.808 minor # 1.0.0 → 1.1.0
devaforge plugin version devaloop.808 patch # 1.0.0 → 1.0.1The command updates plugin.toml and can optionally create a git tag / commit depending on your project config.
A minimal plugin.toml example:
name = "my-plugin"
publisher = "mypublisher"
version = "0.1.0"
description = "Short description"Add additional metadata (license, homepage, authors) as needed.
Copy the plugin build into your project's .deva/plugins/ folder or reference the packaged artifact. Example (local copy):
# copy build folder into project
cp -r generated/plugins/mypublisher/my-plugin/build/ myproject/.deva/plugins/mypublisher/my-plugin/If your runtime supports plugin references, you may add an entry in the project config (format depends on runtime):
[[plugins]]
path = "devalang://plugin/mypublisher.my-plugin"
version = "0.1.0"- Ensure
plugin.tomlexists andentrypoints to a valid source file. - Check file permissions for
generated/plugins/...
To publish a bank to the Devalang registry, you need to have an account on devalang.com and be logged in using the CLI.
devalang loginOnce logged in, you can publish your bank using the following command:
devaforge publishYou can also update an existing bank using:
devaforge update