inductiveautomation / inductiveautomation/ignition-module-tools
Generator generates out-of-date projects
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 73
- Forks
- 20
- PR merge metrics
- No merged PRs in 30d
Description
It would appear the generator has fallen behind the rest of the ecosystem. Generated project skeletons now differ considerably from the [reference examples](https://github.com/inductiveautomation/ignition-sdk-examples), both in toolchain version and in content.
The following is a list of versions of various toolchain components/dependencies as they are generated (per [ab2f6b3](https://github.com/inductiveautomation/ignition-module-tools/commit/ab2f6b3b400767a6479ff9a61384593c521613ec)), and what they need to be updated to in order to match the examples (per [92813eb](https://github.com/inductiveautomation/ignition-sdk-examples/commit/92813eb6e9372704926eebca870e3e48b607e487)):
- Language version: `11` -> `17`
- Bundled Gradle version: `7.6` -> `8.2.1`
- Ignition SDK version (per the root `build.gradle.kts`): `8.1.20` -> `8.3`
- Gradle plugin `io.ia.sdk.modl`: `0.4.0` -> `0.1.1` (make sense of that one)
I also noticed a handful of other changes that have been applied to the samples, but omitted from the generator:
- In the example projects, `settings.gradle` files have been replaced with `settings.gradle.kts` files, but generated projects still use `settings.gradle` files
- In the example projects, a master list of version-referenced library references is declared in `~/gradle/libs.versions.toml`, which are referenced by all subproject `build.gradle.kts` files (this is a great change, thanks). The generator didn't get the memo, so generated projects still resolve their maven dependency versions to the selected API version through string interpolation.
- Some new cleanup code is present at the bottom of the root project's `build.gradle.kts` that is absent in generated projects.
I am aware of the disclaimer associated with the generated regarding not leaning on the generator as a replacement for learning Gradle, but I think it's reasonable to expect that generated projects are structurally consistent with the reference examples.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Compare the generator output with the reference examples at commits 92813eb and ab2f6b3. Start with the generated root build.gradle.kts, settings.gradle files, and dependency declarations, then check the examples' settings.gradle.kts, gradle/libs.versions.toml, and cleanup code. Done means generated projects match the listed toolchain versions and structural changes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, kotlin
- Domain
- build-system, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100