I’m developing a new module for ignition and I am creating a test project with maven archetype. The problem is that there is no artifact in the Nexus Repository for my version 7.7.8. The nearest are 7.7.5 and 7.8.0
Have I to use the SDK archive manually?
You can just leave it linked to 7.7.5.
The SDK dependencies just provide an API for you to compile against, they don’t get included in your module when you build it. We don’t generally make API changes in minor versions, so linking against the API for 7.7.5 should be just as good as 7.7.9 or any other 7.7 version.
(Assuming you want to build a module to install in Ignition 7.7, of course)
Or you want to build a module that’ll install in 7.7, 7.8, and 7.9. (-:
Hopefully modules developed in 7.8.* will be downward compatible as well and will work on lower versions as well (7.7.) and on lower versions like 7.6. (not sure if older versions are still in use, perhaps all would have upgraded to at least 7.7). Of course much depends upon which libraries the module uses, and whether they are affected I guess.
No. Not at all. The APIs are explicitly not declared compatible. Forward compatibility works on an interface-by-interface basis. Multiple API tolerance exists in v7.7.8, v7.8.3+, and v7.9.x. Basically the same versions that support the new signature model.
So its safer to compile with version 7.7 to be upward compatible with 7.8, 7.9 etc? Or we need to have separate build for 7.7.* and 7.8.* ? Do customers still use older version such as 7.7 or they generally all upgrade to highner version? What is the least common denominator for versions in use?
Compile with 7.7 to support 7.7, and you might get lucky and also support later versions. Depending on whether you use an API that has changed. In minor cases, the incompatibility can be accommodated with reflection. Of my four public modules, one supports all three versions out of the box (Simulation Aids), two support all three with some help from reflection (NoteChart and Ethernet/IP Suite), and the remaining module (TS DB Cache) supports 7.7 and 7.8 in one branch, and 7.9 in another branch.
I won’t know what’s possible with 8.0 until I get my hands on a beta.