Skip to content

fix(ci): pin isolated-kit gradle version to prevent 6.0.0-rc.1 pull#714

Merged
jamesnrokt merged 1 commit into
mainfrom
fix/pin-isolated-kit-version-rc1
May 27, 2026
Merged

fix(ci): pin isolated-kit gradle version to prevent 6.0.0-rc.1 pull#714
jamesnrokt merged 1 commit into
mainfrom
fix/pin-isolated-kit-version-rc1

Conversation

@jamesnrokt

Copy link
Copy Markdown
Collaborator

Summary

  • Pin the standalone urbanairship-kit build invocations in daily.yml and pull-request.yml to the SDK version we're currently building, so they no longer resolve + to com.mparticle:android-kit-plugin:6.0.0-rc.1 on Maven Central.
  • Mirrors the pattern already used by release.yml's Sonatype Release job.

Why

The 2026-05-27 release run failed with two distinct errors, both in the urbanairship-kit isolated steps:

Run regression / Lint Checks → Run Isolated Kit Lint (urbanairship-kit)
  e: UrbanAirshipKit.kt:31:20 Unresolved reference 'AttributeListener'.
  e: 8× "overrides nothing"

Run regression / Update Kits → Test Isolated Kits (urbanairship-kit)
  Task 'publishReleaseLocal' not found in root project 'android-urbanairship-kit'.

Root cause: the kit's standalone build.gradle defaults project.version = '+'. With 6.0.0-rc.1 published to Maven Central on 2026-05-22, + resolves to the RC, which renamed KitIntegration.AttributeListenerModifyIdentityListener and replaced the kit-plugin's task layout. The fix is to pass -Pversion=<sdk-version> so the kit resolves the freshly-published mavenLocal artifact instead.

Every PR's Kit Compatibility Test has been silently red since 2026-05-22 for the same reason.

Companion changes

Defense-in-depth pin on the kit's standalone project.version:

External-consumer fixes for #710:

Test plan

  • Trigger the Release SDK workflow (dry run). Lint Checks, Kotlin Lint Checks, and Update Kits should all pass through the urbanairship-kit isolated step.
  • Open a no-op PR to verify Kit Compatibility Test is green.

🤖 Generated with Claude Code

The isolated urbanairship-kit lint/test steps in daily.yml and the
kit-compatibility test in pull-request.yml run `./gradlew` from inside
the kit dir without `-Pversion=...`. The kit's standalone build.gradle
defaults `project.version = '+'`, so its `com.mparticle:android-kit-plugin`
dependency resolves to the highest version on Maven Central — now
`6.0.0-rc.1` (published 2026-05-22), which renamed/removed kit-base
symbols and broke the kit's compile.

Mirror the pattern already used in the Sonatype Release job: extract the
SDK version via `./gradlew -q properties` and pass it as `-Pversion=...`
to every standalone kit invocation, so it resolves the freshly-published
mavenLocal artifact instead of the RC.

Affected steps:
- lint-checks → Run Isolated Kit Lint (urbanairship-kit)
- kotlin-lint-checks → Run Isolated Kit Kotlin Lint (urbanairship-kit)
- update-kits → Test Isolated Kits (urbanairship-kit)
- kit-compatibility-test → Run Isolated Kit Compatibility Tests (urbanairship-kit)

The companion defensive fix in mparticle-android-integration-urbanairship
pins the kit's standalone `project.version` to `[5.0,6.0)`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@jamesnrokt
jamesnrokt requested a review from a team as a code owner May 27, 2026 19:51
@cursor

cursor Bot commented May 27, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Workflow-only changes; no runtime SDK behavior, only fixes CI dependency resolution for isolated kit jobs.

Overview
CI now reads the root SDK version from Gradle and passes -Pversion=<that version> into standalone urbanairship-kit runs in daily.yml (lint, ktlint, update-kits) and pull-request.yml (kit compatibility).

That stops isolated kit builds from using the kit default +, which had been resolving to 6.0.0-rc.1 on Maven Central and breaking lint/tests. Isolated steps align with the in-repo / mavenLocal SDK being built in the same job.

Reviewed by Cursor Bugbot for commit 1b9d339. Bugbot is set up for automated code reviews on this repo. Configure here.

@sonarqubecloud

Copy link
Copy Markdown

@jamesnrokt
jamesnrokt merged commit eff10ea into main May 27, 2026
16 of 18 checks passed
@jamesnrokt
jamesnrokt deleted the fix/pin-isolated-kit-version-rc1 branch May 27, 2026 21:09
mparticle-automation added a commit that referenced this pull request May 27, 2026
## [5.79.1](v5.79.0...v5.79.1) (2026-05-27)

### Bug Fixes

* **ci:** pin isolated-kit gradle version to prevent 6.0.0-rc.1 pull ([#714](#714)) ([eff10ea](eff10ea))

### Updates & Maintenance

* bump trunk-io/trunk-action from 1.2.4 to 1.3.1 ([#705](#705)) ([f4ceca7](f4ceca7))
* Update submodules ([e435979](e435979))
@mparticle-automation

Copy link
Copy Markdown
Collaborator

🎉 This PR is included in version 5.79.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

denischilik added a commit that referenced this pull request Jul 17, 2026
* chore: Update submodules

* chore: 5.78.3 (release)

## [5.78.3](v5.78.2...v5.78.3) (2026-03-11)

### Updates & Maintenance

* bump actions/upload-artifact from 6 to 7 ([#649](#649)) ([0a188b1](0a188b1))
* Update submodules ([cbb17d7](cbb17d7))

* chore: Update submodules

* chore: 5.78.4 (release)

## [5.78.4](v5.78.3...v5.78.4) (2026-03-23)

### Updates & Maintenance

* Update submodules ([08dab75](08dab75))

* chore: Update submodules

* chore: 5.78.5 (release)

## [5.78.5](v5.78.4...v5.78.5) (2026-03-25)

### Updates & Maintenance

* Update submodules ([86d8d97](86d8d97))

* fix: increase MPLatch timeout from 5s to 30s (#695)

* fix: increase MPLatch timeout from 5s to 30s

The 5-second timeout is too short for WebView JS bridge tests running
on newer GitHub Actions runner images (ubuntu24/20260309.50+). The
MParticleJSInterfaceITest tests consistently fail because JS execution
in the emulator WebView doesn't complete within 5 seconds on these
environments.

Increasing to 30 seconds provides sufficient margin while still
catching genuine hangs via the workflow-level timeout-minutes: 15.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: use explicit 30s timeout in JS bridge tests only

Instead of increasing the global MPLatch timeout (used by 20+ test
files), use an explicit 30-second await in MParticleJSInterfaceITest
only. WebView JS execution needs more time on newer CI runner images,
but other tests don't need the longer timeout.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat: Add max persistence age override option [TRIAGE-608] (#699)

* TRIAGE-608: Add max persistence age override option

* TRIAGE-608: Update throttl ts on success + tests

* TRIAGE-608: Make properties @VisibleForTesting

* TRIAGE-608: Fix retry-on-failure throttle logic

* feat: add customBaseURL CNAME support to NetworkOptions (#701)

* feat: add customBaseURL CNAME support to NetworkOptions

Adds NetworkOptions.Builder.setCustomBaseURL(String) which routes all
mParticle endpoint traffic (config, events, identity, alias, audience)
through a single HTTPS CNAME host. When set, customBaseURL takes
priority over individual domain mappings and rewrites paths to match
CDN routing: /config/v4/, /nativeevents/v2/, /identity/v1/,
/nativeevents/v1/identity/, /nativeevents/v1/<key>/audience.

Also adds R8 keep rules for MParticle$Internal and
ConfigManager.getNetworkOptions() so kits can read customBaseURL after
minification.

The Rokt kit reads NetworkOptions.customBaseURL and forwards it to the
Rokt SDK: mparticle-integrations/mparticle-android-integration-rokt#143

Mirrors iOS work from mparticle-apple-sdk#760.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix: persist customBaseURL across NetworkOptions JSON round-trip

NetworkOptions.toJson() and withNetworkOptions(String) did not include
customBaseURL, so any value was silently dropped when UploadSettings
serialized NetworkOptions to the upload database. Events and alias
uploads read back NetworkOptions without customBaseURL and routed to
the default mParticle endpoints instead of the partner CNAME.

Also:
- Extract the customBaseURL/DomainMapping host-resolution branch out of
  getUrl() into a private resolveHost() helper plus a small ResolvedHost
  value type, lowering getUrl()'s cyclomatic complexity.
- Switch java.net.URL / java.net.MalformedURLException to imports.
- Add two androidTest cases covering the round-trip.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* test(android-core): cover custom base URL upload storage

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Thomson Thomas <thomson.thomas@rokt.com>

* chore: Update submodules

* chore: 5.79.0 (release)

## [5.79.0](v5.78.5...v5.79.0) (2026-05-14)

### Features

* add customBaseURL CNAME support to NetworkOptions ([#701](#701)) ([5285149](5285149)), closes [mparticle-apple-sdk#760](mParticle/mparticle-apple-sdk#760)
* Add max persistence age override option [TRIAGE-608] ([#699](#699)) ([ca88322](ca88322))

### Bug Fixes

* increase MPLatch timeout from 5s to 30s ([#695](#695)) ([20f723f](20f723f))

### Updates & Maintenance

* Update submodules ([59a4a9a](59a4a9a))

* chore: bump trunk-io/trunk-action from 1.2.4 to 1.3.1 (#705)

Bumps [trunk-io/trunk-action](https://github.com/trunk-io/trunk-action) from 1.2.4 to 1.3.1.
- [Release notes](https://github.com/trunk-io/trunk-action/releases)
- [Commits](trunk-io/trunk-action@75699af...04ba50e)

---
updated-dependencies:
- dependency-name: trunk-io/trunk-action
  dependency-version: 1.3.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Handle legacy persisted domain mappings safely (#703)

Co-authored-by: James Newman <james.newman@rokt.com>

* fix(ci): pin isolated-kit gradle version to prevent 6.0.0-rc.1 pull (#714)

The isolated urbanairship-kit lint/test steps in daily.yml and the
kit-compatibility test in pull-request.yml run `./gradlew` from inside
the kit dir without `-Pversion=...`. The kit's standalone build.gradle
defaults `project.version = '+'`, so its `com.mparticle:android-kit-plugin`
dependency resolves to the highest version on Maven Central — now
`6.0.0-rc.1` (published 2026-05-22), which renamed/removed kit-base
symbols and broke the kit's compile.

Mirror the pattern already used in the Sonatype Release job: extract the
SDK version via `./gradlew -q properties` and pass it as `-Pversion=...`
to every standalone kit invocation, so it resolves the freshly-published
mavenLocal artifact instead of the RC.

Affected steps:
- lint-checks → Run Isolated Kit Lint (urbanairship-kit)
- kotlin-lint-checks → Run Isolated Kit Kotlin Lint (urbanairship-kit)
- update-kits → Test Isolated Kits (urbanairship-kit)
- kit-compatibility-test → Run Isolated Kit Compatibility Tests (urbanairship-kit)

The companion defensive fix in mparticle-android-integration-urbanairship
pins the kit's standalone `project.version` to `[5.0,6.0)`.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: Update submodules

* chore: 5.79.1 (release)

## [5.79.1](v5.79.0...v5.79.1) (2026-05-27)

### Bug Fixes

* **ci:** pin isolated-kit gradle version to prevent 6.0.0-rc.1 pull ([#714](#714)) ([eff10ea](eff10ea))

### Updates & Maintenance

* bump trunk-io/trunk-action from 1.2.4 to 1.3.1 ([#705](#705)) ([f4ceca7](f4ceca7))
* Update submodules ([e435979](e435979))

* ci: remove cross-platform-tests and semantic PR/branch checks (#712)

These checks have been failing on nearly every recent PR. The
cross-platform tests are known broken, and the semantic PR title /
branch name checks are no longer enforced.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: bump actions/checkout from 6.0.2 to 6.0.3 (#720)

Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.2 to 6.0.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](actions/checkout@v6.0.2...v6.0.3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: Update submodules

* chore: 5.79.2 (release)

## [5.79.2](v5.79.1...v5.79.2) (2026-06-22)

### Updates & Maintenance

* bump actions/checkout from 6.0.2 to 6.0.3 ([#720](#720)) ([d904edb](d904edb))
* remove cross-platform-tests and semantic PR/branch checks ([#712](#712)) ([6cdacf2](6cdacf2))
* Update submodules ([976dd0d](976dd0d))

* feat: add device-based consent to override MPID-scoped consent (#726)

Enables Inspire-style flows where consent is collected before MPID changes at checkout, so kit forwarding rules and uploads keep the correct consent state.

* chore: 5.80.0 (release)

## [5.80.0](v5.79.2...v5.80.0) (2026-06-25)

### Features

* add device-based consent to override MPID-scoped consent ([#726](#726)) ([e92d352](e92d352))

* chore: normalize CHANGELOG list markers after merge

* ci: pin actions/checkout to commit SHA to satisfy security lint

* docs: remove duplicate Unreleased changelog section

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: mparticle-automation <developers@mparticle.com>
Co-authored-by: Robert Ing <ring@mparticle.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: junias-rokt <junias.ngoyi@rokt.com>
Co-authored-by: James Newman <james.newman@rokt.com>
Co-authored-by: Thomson Thomas <thomson.thomas@rokt.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ankitsingh08 <ankit.tomar08@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants