| .forgejo/workflows | ||
| authelia | ||
| docker | ||
| duo | ||
| git | ||
| hex | ||
| procfind | ||
| ssh | ||
| README.md | ||
| registry.json | ||
anvil-plugins
A repo of Anvil plugins. Each top-level directory is one plugin, installable with:
anvil plugin install <name>
Plugin directory layout
<plugin-name>/
├── plugin.rhai # required -- the plugin's entry point
├── VERSION # required -- plain "MAJOR.MINOR.PATCH", no leading "v"
└── config.toml # optional -- user-editable settings, never overwritten
# by `anvil plugin update` if it already exists locally
Versioning
Each plugin's version lives in its own VERSION file (e.g. ssh/VERSION
containing 1.2.3). registry.json is generated from these files, not
edited by hand -- see Registry below.
Version bumps are automatic. The .forgejo/workflows/registry-update.yml
workflow runs on every push to main that touches a plugin. For each
plugin directory, it diffs the pushed commits against what came before:
- If anything in that plugin's directory changed other than
VERSIONitself, the patch component ofVERSIONis bumped automatically (1.2.3->1.2.4) and committed back. - If you edit
VERSIONyourself in the same push (e.g. to bump a minor or major version,1.2.3->2.0.0), that manual value is used instead -- the workflow never overrides a version you set explicitly in the same push. - A brand-new plugin directory with no
VERSIONfile yet gets initialized at1.0.0.
Versions are compared as dotted numeric components (matching Anvil's
own comparator in anvil plugin update), so 1.9.0 is correctly
treated as older than 1.10.0. Keep versions plain digits-and-dots --
no -beta, -rc1, etc.; those will still be treated as "different"
by Anvil's client-side comparison, but not reliably ordered.
Registry
registry.json is the manifest Anvil's anvil plugin install,
anvil plugin search, and anvil plugin update read to discover
plugins, their versions, and descriptions. It's fully regenerated by
the workflow on every relevant push -- don't hand-edit it, changes
will be overwritten on the next push.
A plugin's description in the registry is pulled from the first
// ... usage: ... style comment line in the first 10 lines of its
plugin.rhai.
Adding a new plugin
- Create
<name>/plugin.rhai. - Push to
main. The workflow creates<name>/VERSIONat1.0.0and adds an entry toregistry.jsonautomatically -- no manual registry editing needed.