Hey team,
I'm working on a new module to add some scripting functions to my company's Ignition instance and while there have been some pain points, I've mostly been able to solve the issue or find a work around. In the case of trying to save myself some clicks and deploy to my local instance though, I appear to have been bested by deprecated features in the io.ia.sdk.modl plugin. When I try to run the task, I'm greeted by an issue that reads as follows
* Exception is:
org.gradle.internal.execution.WorkValidationException: A problem was found with the configuration of task ':deployModl' (type 'Deploy').
- In plugin 'io.ia.sdk.modl' type 'io.ia.sdk.gradle.modl.task.Deploy' property 'module' has @Input annotation used on property of type 'RegularFileProperty'.
Reason: A property of type 'RegularFileProperty' annotated with @Input cannot determine how to interpret the file.
Possible solutions:
1. Annotate with @InputFile for regular files.
2. Annotate with @InputFiles for collections of files.
3. If you want to track the path, return File.absolutePath as a String and keep @Input.
For more information, please refer to https://docs.gradle.org/8.5/userguide/validation_problems.html#incorrect_use_of_input_annotation in the Gradle documentation.
It would seem that the Deploy task uses @Input instead of the newer @InputFile when referencing RegularFileProperty properties (as is confirmed by the decompilation below)
Any chance of getting this fixed so that we can use this feature with modern Gradle?
Thanks,
Tyler
Hi Tyler,
I'll get that ticketed and triaged here. Knock on wood, breaking Gradle API changes are usually pretty straightforward to patch thanks to guidance like in their exception above. We bumped most of the Ignition build scripting including custom tasks to 8.5 recently but missed at least this one SDK spot.
Brian
Thanks Brian! Appreciate the assist
Tyler
No problem. If you ever need to reference it, the ticket is IGN-9201. Though I hope to never get run down by a bus and will stay on this thread until the issue is resolved, it might come in handy should you need to follow up with somebody else in IA.
In the meantime, are you able to use Gradle 7.6 for your module development? That's the version configured gradle-module-plugin
's Gradle wrapper, as well as the generator
's and root project's wrappers.
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip
networkTimeout=10000
Also correcting this in my initial reply. I was typing faster than my brain was thinking:
missed at least this one SDK spot.
That should really have been something like:
not got to the SDK yet.
Hey Brian,
I know some of my Gradle setup breaks by downgrading (this was my first thought when I ran into this but wasn't sure how far back I needed to go and didn't want to take the time for a potentially fruitless effort) so I'll work on fixing the bits and bobs that break. Thankfully, the project is not very big yet and shouldn't take me too long. I appreciate the dedication to getting this looked at! Until then, I will wait patiently and keep working around this the best that I can.
Best,
Tyler
Fixed in ia.io.sdk.modl
v0.2.0