Plugin releases
Testing and releases
The release process checks each target and submits the tested package to the curated repository.
tests.toml
tests.toml defines local test scenarios. The validated plugin package does not include this file.
The harness gives deterministic results for host calls. It does not install the plugin. It does not contact Twitch or third-party services.
- Add one scenario for each published handler path.
- List the expected host calls in their execution order.
- Add a migrationFailed scenario for an update failure fixture.
- Add a workerExited scenario for an intentional crash fixture.
name = "community.my-plugin"
[[scenarios]]
name = "starter-command"
workerMode = "admitted"
invocationKind = "command"
module = "main"
operation = "handle_command"
expectation = "returned"
input = { route = "plugin-starter", arguments = [] }
expectedHostCalls = ["settings.feature", "responses.chat"]Repository layout
BlokeBot reads marketplace entries from each plugin.toml in the curated repository. The repository has no separate catalog file.
Place the package at plugins/<plugin-id>/. The directory name must equal the ID in plugin.toml.
plugins/
community.my-plugin/
plugin.toml
lua/
main.lua
.blokebot/
.luarc.json
tests.tomlRelease identity
- Set declaredVersion to the release semantic version.
- Set tag to the Git tag for that release.
- Check that the package repository resolves the tag.
- Run generate from the final package tree.
- Run validate from the final package tree.
- Run test from the final package tree.
- Submit the package through the curated repository review process.
- For each download, BlokeBot records the version.
- For each download, BlokeBot records the tag.
- For each download, BlokeBot records a unique identity.
Updates
An administrator starts each update. BlokeBot downloads the current tag before it replaces the plugin.
A moved tag with the same version still creates a new download and worker.
If a tag is missing or a package is invalid, BlokeBot records the error for the administrator.
If migration or activation fails, BlokeBot also records the error.
Release checklist
- Check that the package contains plugin.toml and every declared file.
- Check that the generated SDK matches the final manifest.
- Check that validate accepts every declared runtime target.
- Check that test passes every declared scenario on the current runtime target.
- Check that the tag resolves to the reviewed package tree.
- Check that the package contains no protected value or token.
- Check that the package contains no production endpoint.