No description
Find a file
2026-09-20 18:52:08 +00:00
.forgejo/workflows
authelia
docker chore: auto-update registry and plugin versions 2026-09-20 18:52:08 +00:00
duo
git
hex
procfind
ssh
README.md
registry.json chore: auto-update registry and plugin versions 2026-09-20 18:52:08 +00:00

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 VERSION itself, the patch component of VERSION is bumped automatically (1.2.3 -> 1.2.4) and committed back.
  • If you edit VERSION yourself 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 VERSION file yet gets initialized at 1.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

  1. Create <name>/plugin.rhai.
  2. Push to main. The workflow creates <name>/VERSION at 1.0.0 and adds an entry to registry.json automatically -- no manual registry editing needed.