Publishing Updates
When you release a new version of your extension, the update behavior depends on whether the version is marked as breaking.
Releasing a new version
# 1. Update version in lumio.config.json
# 2. Build
lumio build
# 3. Deploy (reads version from lumio.config.json)
lumio deploy -d "Fixed score display, added NHL support"
# 4. Submit via dashboard submission wizard or link printed by deploy
Auto-update behavior
| Version type | Behavior for existing installations |
|---|---|
| Non-breaking (default) | Automatically updated within 24 hours of publish |
Breaking (--breaking flag) | Users must manually accept the update in dashboard settings |
Non-breaking updates
Most updates are non-breaking: bug fixes, new features, visual improvements, additional configuration options. These auto-update silently — users are notified in the dashboard but do not need to take any action.
Breaking updates
Mark a version as breaking when:
- Storage format changes (renamed keys, restructured data)
- Server schema changes that are not backward-compatible
- UI changes that require the user to reconfigure settings
- Permissions that require new user consent
lumio deploy --breaking -v 2.0.0 -d "Storage format changed. Manual reconfiguration required after update."
Breaking versions show an Update required banner in the dashboard for affected installations. Users must click Review and update before the new version takes effect.
Version pinning
Users can pin an installation to a specific version via the extension settings. Pinned installations are never auto-updated — they receive an update notification but must manually apply it.
This is useful for streamers who do not want unexpected changes mid-season.
Semver conventions
Follow semantic versioning:
| Bump | When |
|---|---|
PATCH (1.0.x) | Bug fixes, visual tweaks, no functional changes |
MINOR (1.x.0) | New features, backward-compatible additions |
MAJOR (x.0.0) | Breaking changes to storage, schema, or behavior |
Update notifications
Users see update notifications in:
- The extension dashboard (Extensions → Installed → {extension} → Updates)
- The overlay editor sidebar (a badge on the extension name)
- A weekly email digest of pending updates (opt-in, user setting)