feat: widen urbanairship-core dependency to any 20.x#194
Open
jamesnrokt wants to merge 1 commit into
Open
Conversation
Replace the pinned `urbanairship-core:20.3.0` with a bounded range
`[20.3.0,21.0.0)` so consumers can opt into newer 20.x versions
(20.4.0–20.7.x available today) without waiting for a kit release.
The closed upper bound at 21.0.0 keeps a future Airship major out of
the resolved set, so consumers explicitly opt in to 21.x via a new
kit release.
Consumers who want a specific 20.x can pin it in their own app:
implementation 'com.urbanairship.android:urbanairship-core:20.6.0'
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
samdozor
requested changes
May 27, 2026
There was a problem hiding this comment.
The issue with this is that it will cause non-repeatable builds for all clients - unless they specifically put the airship version in their own build gradle. So we need to tell all clients to do that. The client asking for this will need to specifically put airship in their gradle to ensure a repeatable build - so why not have that client do something like this, rather than asking all clients to change?
dependencies {
implementation('com.mparticle:android-urbanairship-kit:5+') {
exclude group: 'com.urbanairship.android', module: 'urbanairship-core'
}
implementation 'com.urbanairship.android:urbanairship-core:21.0.0
}
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
api 'com.urbanairship.android:urbanairship-core:20.3.0'with the bounded range[20.3.0,21.0.0).Motivation
A partner using this kit wants to upgrade their Airship integration to 20.6.0. Today the hard pin at 20.3.0 forces them to either downgrade the rest of their app or wait for a kit release.
How partners get a specific 20.x
After this lands, consumers have two options:
implementation 'com.urbanairship.android:urbanairship-core:20.6.0'. Gradle's conflict resolution picks the explicit pin.Test plan
./gradlew lint testRelease publishReleaseLocalsucceeds standalone against the top of the range (20.7.2)../gradlew lint testRelease publishReleaseLocalsucceeds against the floor (20.3.0) —-Pversion=...plus a forcedurbanairship-core:20.3.0in a scratch consumer.Release note
The kit's next release should be a minor bump (e.g.,
5.x.0→5.(x+1).0) since it changes the public dependency contract. Consumers already on a previous kit version are unaffected until they upgrade the kit.🤖 Generated with Claude Code