8.3 Early Access SDK Dependencies

-SNAPSHOT Dependencies

EA SDK dependencies should be available starting Monday, July 29. The builds for these are scheduled weekly.

EA dependency APIs cannot be guaranteed to be stable. Be prepared to refactor during the EA window.

These artifacts are published to nexus.inductiveautomation.com like SDK artifacts for regular releases. But with a few differences:

  • As -SNAPSHOT versions. Even npm packages.
  • To "beta" subprepositories. They allow anonymous access like the regular subrepos.

Maven Dependencies

Gradle

For resolving EA Maven artifacts in Gradle builds, add the inductiveautomation-beta repository to either your build script or root settings script.

// build.gradle.kts

 // ...
repositories {
     // ...
    maven {
        name = "inductiveautomation-beta"
        url = uri(
            "https://nexus.inductiveautomation.com/repository/inductiveautomation-beta/"
        )
    }
     // ...
}

dependencies {
     // ...
    implementation("com.inductiveautomation.ignitionsdk:ignition-common:8.3.0-SNAPSHOT")
     // ...
}
// settings.gradle.kts

 // ...
dependencyResolutionManagement {
     // ...
    repositories {
        maven {
            name = "inductiveautomation-beta"
            url = uri(
                "https://nexus.inductiveautomation.com/repository/inductiveautomation-beta/"
            )
        }
     // ...

Maven

For Maven builds, add the add the inductiveautomation-beta repository to your POM.

<!-- pom.xml -->

        <!-- ... -->
        <repository>
            <id>ia-beta</id>
            <url>https://nexus.inductiveautomation.com/repository/inductiveautomation-beta</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>

        <!-- ... -->

    <dependency>
        <groupId>com.inductiveautomation.ignitionsdk</groupId>
        <artifactId>ignition-common</artifactId>
        <version>8.3.0-SNAPSHOT</version>
        <type>pom</type>
        <scope>provided</scope>
    </dependency>
    <!-- ... -->

SDK Javadoc

A link is in the usual place, at the SDK Examples Javadocs & Notable API Changes wiki page.

npm Dependencies

Yarn projects can be configured to resolve EA npm packages.

# .yarnrc.yml

 # ...
npmScopes:
  inductiveautomation:
    npmRegistryServer: "https://nexus.inductiveautomation.com/repository/inductiveautomation-beta-node-packages/"
 # ...
// package.json

      // ...
    "dependencies": {
          // ...
        "@inductiveautomation/ignition-lib": "^1.3.0-SNAPSHOT",
        "@inductiveautomation/ignition-react": "^1.3.0-SNAPSHOT",
        "@inductiveautomation/perspective-client": "^2.3.0-SNAPSHOT",
          // ...
    },
      // ...

That ^<n>.3.0-SNAPSHOT semantic version pattern will resolve to the newest snapshot build similar to
the way resolution of Maven snapshot artifacts are resolved in Gradle and Maven builds.

After a yarn install the lockfile will contain EA npm dependencies like this one, for example.

# yarn.lock

 # ...
"@inductiveautomation/perspective-client@npm:^2.3.0-SNAPSHOT":
  version: 2.3.0-SNAPSHOT.20240722.1027
  resolution: "@inductiveautomation/perspective-client@npm:2.3.0-SNAPSHOT.20240722.1027"
  # ...

8.3.0-beta1 SDK JARs are blocked pending troubleshooting of a publishing issue.

At first glance the npm SDK packages are published, though I need to loop back around after figuring out the previous.

Will this affect my ant builds? Cough :innocent:

1 Like

Probably. The publishing of SDK JARs did make it partway through but then got stuck on at least two with the same Maven coordinates. So there are some 8.3.0-beta1 JARs up there but I don't know how many of them.

And not in the inductiveautomation-beta repo, I meant to update all the guiidance above but then this happened so it was time to figure out what was going on.

I should have better marked that question as rhetorical. I actually build off of the zip installer.

1 Like

It's been a long time since I have worked with Ant so forgot about its dependency resolve capabilities.

They are easy to forget, as I don't use those, either. I have a CPython3 helper. :sweat_smile:

-beta<n> Dependencies

Beta SDK dependencies are available starting Monday, July 28. The builds for these are scheduled weekly, though a few builds may pop up off-schedule.

The guidelines in the post at the top of the thread apply, except for a few key differences:

  • APIs should be stable or at least nonbreaking, during Beta. But we can't guarantee that 100%--if we have to fix a significant API signature issue in breaking manner, we will do so.
  • These are fixed prerelease versions, unlike -SNAPSHOT versions. Similar to -rc<n> versions. When there's a new release, the prerelease version sequence increments. E.g. -beta1 > -beta2.
  • These artifacts live in our more widely known release subprepositories, not in our beta subrepositories. Despite the prerelease version name.

Maven Dependencies

Gradle

For resolving EA Maven artifacts in Gradle builds, add the inductiveautomation-releases repository to either your build script or root settings script.

// build.gradle.kts

 // ...
repositories {
     // ...
    maven {
        name = "inductiveautomation-releases"
        url = uri(
            "https://nexus.inductiveautomation.com/repository/inductiveautomation-releases/"
        )
    }
     // ...
}

dependencies {
     // ... remember to increment if you need a later version ...
    implementation("com.inductiveautomation.ignitionsdk:ignition-common:8.3.0-beta1")
     // ...
}
// settings.gradle.kts

 // ...
dependencyResolutionManagement {
     // ...
    repositories {
        maven {
            name = "inductiveautomation-releases"
            url = uri(
                "https://nexus.inductiveautomation.com/repository/inductiveautomation-releases/"
            )
        }
     // ...

Maven

For Maven builds, add the add the inductiveautomation-releases repository to your POM.

<!-- pom.xml -->

        <!-- ... -->
        <repository>
            <id>ia-releases</id>
            <url>https://nexus.inductiveautomation.com/repository/inductiveautomation-releases</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>

        <!-- ... -->

    <dependency>
        <groupId>com.inductiveautomation.ignitionsdk</groupId>
        <artifactId>ignition-common</artifactId>
        <version>8.3.0-beta1</version>
        <type>pom</type>
        <scope>provided</scope>
    </dependency>
    <!-- ... -->

SDK Javadoc

Links are still in the usual place, at the SDK Examples Javadocs & Notable API Changes wiki page.

npm Dependencies

Yarn projects can be configured to resolve EA npm packages.

# .yarnrc.yml

 # ...
npmScopes:
  inductiveautomation:
    npmRegistryServer: "https://nexus.inductiveautomation.com/repository/inductiveautomation-node-packages/"
 # ...
// package.json

      // ...
    "dependencies": {
          // ...
        "@inductiveautomation/ignition-web-ui": "^1.3.0-beta1",
        "@inductiveautomation/perspective-client": "^2.3.0-beta1",
          // ...
    },
      // ...
1 Like