Skip to content

Sync generator templates toward ignition-sdk-examples (Fixes #70) - #78

Open
sankalpsthakur wants to merge 1 commit into
inductiveautomation:masterfrom
sankalpsthakur:fix/70-generator-sdk-examples-sync
Open

Sync generator templates toward ignition-sdk-examples (Fixes #70)#78
sankalpsthakur wants to merge 1 commit into
inductiveautomation:masterfrom
sankalpsthakur:fix/70-generator-sdk-examples-sync

Conversation

@sankalpsthakur

Copy link
Copy Markdown

Summary

Addresses #70: generated module skeletons had drifted from ignition-sdk-examples (8.3 line).

This is a high-value slice, not a full rewrite of multi-version support:

Item Before After Notes
Ignition SDK / sdk_version 8.1.20 8.3.0 Matches examples requiredIgnitionVersion
Version catalog template unused written to gradle/libs.versions.toml Hyphenated keys align with examples
Subproject deps string-interpolated coords compileOnly(libs.ignition.*)
Settings file Groovy default even for Kotlin builds settings DSL follows buildscript DSL Kotlin → settings.gradle.kts
deepClean task missing present on root buildscripts Matches examples cleanup helper
Gateway/Designer hooks outdated 8.0-era APIs (javax.servlet, removed overview contributors) minimal 8.3 lifecycle stubs Generated projects compile against SDK 8.3
Language version 25 (from #75) unchanged Tools line already on JDK 25
Gradle wrapper default 9.3.1 (from #75) unchanged Multi-version wrappers kept
io.ia.sdk.modl version 1.0.0 unchanged Repo version; examples still pin older releases

Intentional non-goals

  • Did not force plugin version to 0.1.1 as listed in the issue (that is older than published 0.5.0 / in-repo 1.0.0).
  • Did not drop older Gradle wrapper bundles (6.x/7.x); multi-version support remains.
  • Did not change Java toolchain on generated projects back to 17 (IA already moved templates to 25 in Upgrade to Kotlin 2.3.10, Gradle 9.4 plugins, and JDK 25 toolchain  #75). Module authors can still set their own toolchain.

Validation

export JAVA_HOME=…/openjdk@25
./gradlew genTest
./gradlew pluginPublishToMavenLocal genPublishToMavenLocal

# Kotlin multi-scope (GCD) + Groovy single-scope (G) smoke:
# generate via CLI, add mavenLocal() to pluginManagement for unpublished 1.0.0 plugin,
# set skipModlSigning true, then:
./gradlew build   # BUILD SUCCESSFUL for both

AI disclosure

This change was prepared with assistance from an AI coding agent. The author reviewed the diff, ran generator unit tests and smoke builds of generated projects against Ignition SDK 8.3.0, and is responsible for the PR contents.

Fixes #70

…eautomation#70)

Bring generated module skeletons closer to the current 8.3 reference
examples without breaking intentional multi-version Gradle wrapper support.

- Default Ignition SDK version: 8.1.20 -> 8.3.0
- Emit gradle/libs.versions.toml (examples-style catalog) and resolve
  compileOnly deps via libs.ignition.* instead of string interpolation
- Align settings DSL with buildscript DSL (Kotlin projects get
  settings.gradle.kts); fix settingsFilename() resource path bug
- Add deepClean task to root buildscripts (matches examples)
- Simplify Gateway/Designer hook stubs to 8.3-compatible lifecycle APIs
  (remove removed javax.servlet / overview contributor overrides)

Left unchanged intentionally (already ahead of the issue, or multi-version):
- Java toolchain remains 25 (set by inductiveautomation#75 for this tools line)
- Default Gradle wrapper remains 9.3.1 (set by inductiveautomation#75)
- modl plugin version remains 1.0.0 (repo version; examples still pin older)

Validation: ./gradlew genTest; generated GCD kotlin + G groovy projects
build successfully against published plugin from mavenLocal + SDK 8.3.0.

AI disclosure: assisted by an AI coding agent; human-reviewed before PR.
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.

Generator generates out-of-date projects

1 participant