Skip to content

Migrate to Ignition 8.3 - #5

Merged
keith-gamble merged 1 commit into
masterfrom
ignition-8.3
Sep 28, 2026
Merged

keith-gamble merged 1 commit into
masterfrom
ignition-8.3

Conversation

@keith-gamble

Copy link
Copy Markdown
Owner

Summary

Moves the example module, its dev stack, CI and docs from Ignition 8.1.44 to 8.3.9.

8.3 no longer hot-swaps modules. Installs and upgrades apply only on gateway restart, and the developer upload servlet that deployModl posts to has been removed. This PR replaces that workflow.

Development loop

  • Docker: ./gradlew build, then docker compose restart gateway. The module is auto-accepted on first boot through ACCEPT_MODULE_LICENSES / ACCEPT_MODULE_CERTS, including unsigned builds, so there is no commissioning to click through.
  • Any 8.3 gateway: ./gradlew deployModule -PhostGateway=<url> -PignitionApiToken=<name:secret> uploads the module, accepts its certificate and license, and stages the install through the 8.3 REST API. Add -PrestartGateway=true to restart through /data/api/v1/restart-tasks/restart.
  • Web assets still hot reload: with the -Dres.path.<moduleId> override and npm run watch, a refresh picks up JS and CSS changes.
  • deployModl: the IA plugin still ships it, but it now fails fast with a pointer to deployModule.

Changes

  • Build: SDK 8.3.9, requiredIgnitionVersion 8.3.0, io.ia.sdk.modl 0.5.0, Gradle 8.7, node-gradle 7.1.0. The Perspective jars are now compileOnly, so they are no longer bundled into the modl.
  • Web: perspective-client 2.3.9. SizeObject moved to perspective-common and is now a type-only import. React is unchanged at 18.2.
  • Java: no changes. The Perspective descriptor, registry, hook and resource-mount APIs this module uses have the same signatures in 8.3.
  • Docker:
    • The image is ignition:8.3.9, configured from env vars.
    • The 8.1 gateway backup is removed.
    • GATEWAY_MODULES_ENABLED is an allowlist of fully-qualified ids in 8.3, so it lists this module.
    • Compose mounts the unsigned modl by default; set MODULE_FILE to mount the signed one.
  • CI: actions/upload-artifact@v4 (v3 is blocked) and softprops/action-gh-release@v2 in place of the unmaintained release action.
  • Docs:
    • The development loop, Docker setup, quick start, troubleshooting, build system and glossary pages cover 8.3.
    • A new "Upgrading from 8.1" reference page.
    • Links point at the 8.3 docs.
    • The Docker and build samples match the real files.
  • The invalid JSON in the VS Code workspace file is fixed.

Testing

  • ./gradlew clean build passes against SDK 8.3.9, and the modl contains only the module's own jars.
  • On an ignition:8.3.9 container, the module starts with no commissioning, and /res/example-components/ExampleComponents.js is served.
  • Edits to the mounted web output are served live.
  • deployModule uploads the module and stages the install. After a restart through the API, the gateway reports the module ACTIVE with nothing quarantined.
  • The Docusaurus build passes with onBrokenLinks: 'throw'.
  • Not tested: the Designer (palette entry and icon) on 8.3, and the GitHub workflows, which run on this PR.

Ignition 8.3 removed module hot-swapping and the developer upload
servlet behind `deployModl`, so the build, dev stack, CI and docs now
target 8.3.9.

- Build: SDK 8.3.9, requiredIgnitionVersion 8.3.0, io.ia.sdk.modl
  0.5.0, Gradle 8.7, node-gradle 7.1.0. Perspective jars are
  compileOnly so they are no longer bundled into the modl.
- Deploy: new `deployModule` task that uploads, accepts and stages the
  module through the 8.3 REST API, with optional -PrestartGateway=true.
  `deployModl` now fails fast with a pointer to it.
- Web: perspective-client 2.3.9; SizeObject is imported type-only from
  perspective-common 2.3.9.
- Docker: ignition:8.3.9 configured from env vars (ACCEPT_MODULE_*,
  GATEWAY_MODULES_ENABLED allowlist) instead of an 8.1 gateway backup.
  Mounts the unsigned modl by default (MODULE_FILE override). The
  res.path override keeps web-asset hot reload.
- CI: upload-artifact v4 and softprops/action-gh-release v2.
- Docs: development loop, Docker setup, quick start, build system and
  glossary for 8.3, plus an "Upgrading from 8.1" reference page.
- Fix invalid JSON in the VS Code workspace file.
@keith-gamble
keith-gamble merged commit 5e901d6 into master Sep 28, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant