demo: keep the demo rig's uMod plugins current (auto-update between wipes) #235
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Plan approved by the org lead 2026-11-01. Not built yet. The demo rig keeps its uMod plugins at umod.org's current release. An update released between wipes lands at the next wipe.
What is there now (checked 2026-11-01, read-only)
rust-oxide,6eb9d621) has 21 plugins inoxide/plugins.demo-wipe.ymlruns every 2 h.rig.mjs plancompares the bundle withstate/bundle.jsonon the host.restorewrites the bundle's plugins while the rig is stopped.oxide/data,oxide/configand the save, sooxide/pluginssurvives every wipe.https://umod.org/plugins/<slug>.jsongiveslatest_release_version,latest_release_version_checksum,latest_release_atanddownload_url. Kits answered 4.4.10, released 2026-09-27.x-ratelimit-limit: 1and aRetry-Afterof about 60 s. A burst of 16 requests got 429 for all but one, and a request 65 s later was still refused. The CI treats umod.org as scarce.Decisions (2026-11-01)
Loaded plugin <Name> v<new>and for a compile error..csback..csinoxide/pluginsis covered, except the bundle's files.onUmod: false. It stays listed and is never asked about or updated again (Codefling plugins, such as NpcSpawn).The build
state/umod.json, on the demo host besidebundle.json. For each plugin it holds{ slug, onUmod, version, checksum, releasedAt, checkedAt, applied, skipped }. Last-good copies are kept instate/umod/good/, and downloaded updates wait instate/umod/pending/.node rig.mjs umod-check:Retry-After..csonly when the checksum differs from the record, then verifies the file against the checksum (if umod's checksum turns out to be of something else, the build says so).restore: while the rig is stopped, at the same point as the bundle, it writes each pending.csand moves the old file togood/.smoke: confirms each updated plugin loaded, or does the rollback described in decision 2.docs/website/DEMO_MODE.md§7 gains this section. The demo README is updated.Open for the build
demo-siterunner. That runner is also the org's general CI runner, with capacity 1.Found while working on runicnpc-rust#20, where the org lead added "uMod dependencies are updated before a test" to the workspace rules. That rule excludes the demo rig, which this issue covers instead.
Decision 4, runner time (org lead, 2026-11-01): a rolling split. Each run checks 4 plugins, every 2 hours. The
onUmod: trueplugins are checked in a fixed rotation, oldestcheckedAtfirst, so each one is asked about roughly every 8 hours. A run takes about 4 minutes on thedemo-siterunner. This replaces the 6-hourly full pass in decision 1.onUmodis not yet known. The rotation starts with the plugins that have no record, and the 404s (Codefling) fall out of the rotation as they are found.