Migrate to Ignition 8.3 - #5
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
deployModlposts to has been removed. This PR replaces that workflow.Development loop
./gradlew build, thendocker compose restart gateway. The module is auto-accepted on first boot throughACCEPT_MODULE_LICENSES/ACCEPT_MODULE_CERTS, including unsigned builds, so there is no commissioning to click through../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=trueto restart through/data/api/v1/restart-tasks/restart.-Dres.path.<moduleId>override andnpm 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 todeployModule.Changes
requiredIgnitionVersion8.3.0,io.ia.sdk.modl0.5.0, Gradle 8.7, node-gradle 7.1.0. The Perspective jars are nowcompileOnly, so they are no longer bundled into the modl.perspective-client2.3.9.SizeObjectmoved toperspective-commonand is now a type-only import. React is unchanged at 18.2.ignition:8.3.9, configured from env vars.GATEWAY_MODULES_ENABLEDis an allowlist of fully-qualified ids in 8.3, so it lists this module.MODULE_FILEto mount the signed one.actions/upload-artifact@v4(v3 is blocked) andsoftprops/action-gh-release@v2in place of the unmaintained release action.Testing
./gradlew clean buildpasses against SDK 8.3.9, and the modl contains only the module's own jars.ignition:8.3.9container, the module starts with no commissioning, and/res/example-components/ExampleComponents.jsis served.deployModuleuploads the module and stages the install. After a restart through the API, the gateway reports the moduleACTIVEwith nothing quarantined.onBrokenLinks: 'throw'.