Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
790dc05
feat: migrate appsflyer-kit from submodule to regular directory (#650)
denischilik Mar 6, 2026
52cf963
feat: Braze 38 Kit Migrate (#651)
denischilik Mar 6, 2026
0b0e2cb
feat: GA 23 Kit Migrate (#652)
denischilik Mar 9, 2026
03d7f21
feat: GA4 23 Kit Migrate (#653)
denischilik Mar 9, 2026
ba2980d
feat: Migrate Rokt kit (#659)
denischilik Mar 9, 2026
47b3f39
feat: Kochava 5 Kit Migrate (#654)
denischilik Mar 9, 2026
66a14a7
feat: Migrate Adjust kit (#656)
denischilik Mar 9, 2026
42eb733
feat: Migrate Localytics kit (#661)
denischilik Mar 9, 2026
2c6543f
feat: Split instrumented tests in CI for parallel execution (#662)
denischilik Mar 10, 2026
255eefe
feat: Leanplum 7 Kit Migrate (#655)
denischilik Mar 10, 2026
512ff6f
feat: Migrate CleverTap kit (#660)
denischilik Mar 10, 2026
61e36d3
feat: Migrate Apptentive kit (#657)
denischilik Mar 10, 2026
7d6add0
feat: Migrate Apptimize kit (#658)
denischilik Mar 10, 2026
7dbbdb9
feat: Migrate Adobe Media 5 kit (#671)
denischilik Mar 11, 2026
629e20e
feat: Migrate Adobe 5 kit (#670)
denischilik Mar 11, 2026
0e8c296
feat: Migrate Iterable 3 kit (#669)
denischilik Mar 11, 2026
e643f34
feat: Migrate ComScore 6 kit (#668)
denischilik Mar 11, 2026
eebf866
feat: Migrate Radar kit (#665)
denischilik Mar 11, 2026
84842a7
feat: Migrate Singular 12 kit (#667)
denischilik Mar 11, 2026
0bfaa9e
feat: Migrate Optimizely kit (#664)
denischilik Mar 11, 2026
46654ae
feat: Migrate Branch 5 kit (#666)
denischilik Mar 12, 2026
a661266
feat: Migrate Urban Airship kit (#673)
denischilik Mar 12, 2026
4f0c481
feat: Migrate OneTrust kit (#672)
denischilik Mar 12, 2026
e506646
chore: Remove submodules, migrate kits to monorepo (#674)
denischilik Mar 12, 2026
b8fe495
chore: migrate to Rokt release process (#663)
jamesnrokt Mar 12, 2026
5cbfc12
fix: resolve trunk issues for all kits (#675)
denischilik Mar 13, 2026
ed93613
feat: Removing deprecations - Part 1 (#676)
jamesnrokt Mar 19, 2026
b892524
feat: add Braze 39 kit (#677)
denischilik Mar 19, 2026
c825242
feat: Add Braze SDK 41 kit (braze-41) (#680)
denischilik Mar 26, 2026
45e0474
feat: Add Braze SDK 40 kit (braze-40) (#679)
denischilik Mar 26, 2026
8209098
chore: Remove deprecated KitIntegration.getUserIdentities() (#681)
denischilik Mar 26, 2026
71c4c53
chore: Remove deprecated KitIntegration.getAllUserAttributes() (#682)
denischilik Mar 27, 2026
61fcacf
feat: split LogoutListener from AttributeListener (#685)
denischilik Mar 30, 2026
9d07e1c
feat: inline user attribute removal in onRemoveUserAttribute (#687)
denischilik Mar 31, 2026
e5f50e4
feat: Migrate setUserAttribute (#689)
denischilik Mar 31, 2026
eca7329
feat: move onSetUserAttributeList to BaseAttributeListener (#690)
denischilik Apr 1, 2026
6584c0e
refactor: Route bulk user attribute sync through onSetAllUserAttribut…
denischilik Apr 2, 2026
d225842
refactor: Rename AttributeListener to ModifyIdentityListener (#692)
denischilik Apr 2, 2026
2b4cf31
refactor: KitManagerImpl user-attribute forwarding and UserAttributeL…
denischilik Apr 13, 2026
8c12ef9
ci: generate CHANGELOG on release draft (#696)
denischilik Apr 13, 2026
1694682
refactor: centralize active kit filtering in KitManagerImpl (#697)
denischilik Apr 14, 2026
99dead8
refactor: migrate Rokt contracts and facade ownership to rokt-kit (#700)
denischilik May 19, 2026
4aa3bd4
feat: migrate Rokt kit to Rokt SDK 5.x and remove MpRoktEventCallback…
jamesnrokt May 20, 2026
bf388f9
feat: add customBaseURL CNAME support to NetworkOptions (#702)
jamesnrokt May 20, 2026
165a3af
ci: support alpha beta and release candidate versions (#708)
thomson-t May 21, 2026
536cb7b
build(rokt): update Rokt kit dependency stack (#707)
thomson-t May 22, 2026
bf998f3
Prepare release 6.0.0-rc.1 (#709)
mparticle-automation May 22, 2026
224b9f5
feat(rokt): add kit API parity access (#711)
thomson-t May 26, 2026
a130b07
docs: add v6 Rokt migration guidance (#706)
denischilik May 26, 2026
a45f0af
feat: add adjust sample apps and CI example builds (#723)
denischilik Jun 23, 2026
0ced357
feat: add Kotlin sample apps for all integrated kits (#724)
denischilik Jun 24, 2026
7ecc532
feat: pin kit SDK dependencies to current supported ranges (#725)
nickolas-dimitrakas Jun 25, 2026
319bae2
fix: align braze-38 SDK range with its directory major (#730)
nickolas-dimitrakas Jul 15, 2026
29b0a28
feat: upgrade Kotlin to 2.1.20 across core SDK and kits (#732)
denischilik Jul 16, 2026
5114484
fix: align GA kits with directory major 23 (+ per-kit Kotlin 2.2.20) …
nickolas-dimitrakas Jul 16, 2026
668bf22
fix(braze): correct example app applicationId to match push category …
nickolas-dimitrakas Jul 16, 2026
5cd12dd
chore: merge main into workstation/6.0-Release (#734)
denischilik Jul 17, 2026
23130b4
feat: add Rokt Shoppable Ads support (#713)
thomson-t Jul 21, 2026
e5d0291
docs: address 6.0 merge review comments (#735)
denischilik Jul 21, 2026
947e648
feat(rokt-sdk-plus): add com.rokt:rokt-sdk-plus umbrella artifact (#721)
thomson-t Jul 21, 2026
af5e8b8
feat: extend Rokt kit Kotlin example for joint SDK testing (#736)
denischilik Jul 21, 2026
d0592ba
chore: merge workstation/6.0-Release into main
denischilik Jul 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
69 changes: 69 additions & 0 deletions .github/workflows/build-kits.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Build Kits

on:
workflow_call:
workflow_dispatch:

permissions:
contents: read

jobs:
load-matrix:
name: Load kit matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set.outputs.matrix }}
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
sparse-checkout: kits/matrix.json
sparse-checkout-cone-mode: false
- id: set
run: echo "matrix=$(jq -c . kits/matrix.json)" >> "$GITHUB_OUTPUT"

build-kits:
name: Build ${{ matrix.kit.name }}
needs: load-matrix
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
kit: ${{ fromJson(needs.load-matrix.outputs.matrix) }}
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3

- name: Set SDK version
run: |
echo "ORG_GRADLE_PROJECT_VERSION=$(head -n 1 VERSION)" >> $GITHUB_ENV
echo "ORG_GRADLE_PROJECT_version=$(head -n 1 VERSION)" >> $GITHUB_ENV

- name: Install JDK 17
uses: actions/setup-java@ad2b38190b15e4d6bdf0c97fb4fca8412226d287 # v5
with:
distribution: zulu
java-version: "17"

- name: Publish core SDK to Maven Local
run: ./gradlew publishMavenPublicationToMavenLocal

- name: Run kit unit tests
if: ${{ matrix.kit.skip_unit_tests != true }}
run: |
./gradlew "${{ matrix.kit.kit_project }}:testRelease" \
-c settings-kits.gradle \
-Pmparticle.kit.mparticleFromMavenLocalOnly=true

- name: Build Kotlin example
if: ${{ matrix.kit.skip_example_builds != true && matrix.kit.example_kotlin_project != '' }}
run: |
./gradlew "${{ matrix.kit.example_kotlin_project }}:assembleDebug" \
-c settings-kit-examples.gradle \
-Pmparticle.kit.mparticleFromMavenLocalOnly=true

- name: Build Java example
if: ${{ matrix.kit.skip_example_builds != true && matrix.kit.example_java_project != '' }}
run: |
./gradlew "${{ matrix.kit.example_java_project }}:assembleDebug" \
-c settings-kit-examples.gradle \
-Pmparticle.kit.mparticleFromMavenLocalOnly=true
77 changes: 36 additions & 41 deletions .github/workflows/daily.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,11 @@ jobs:
GIT_COMMITTER_EMAIL: developers@mparticle.com
steps:
- name: "Clone branch"
uses: actions/checkout@v6.0.3
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
token: ${{ secrets.MP_SEMANTIC_RELEASE_BOT }}
repository: mparticle/mparticle-android-sdk
ref: ${{ inputs.branch_name }}
submodules: recursive
- name: "Import GPG Key"
uses: crazy-max/ghaction-import-gpg@e89d40939c28e39f97cf32126055eeae86ba74ec #v6.0
with:
Expand All @@ -62,13 +61,6 @@ jobs:
run: |
git checkout -b regression/${{ github.run_number }}
git push origin regression/${{ github.run_number }}
- name: "Commit Kit Updates"
run: |
git submodule foreach "git fetch; git reset --hard origin/main";
git add .
git diff-index --quiet HEAD || git commit -m 'chore: Update Submodules'
- name: "Push kit updates to release branch"
run: git push origin regression/${{ github.run_number }}

# instrumented-tests:
# name: "Instrumented Tests"
Expand All @@ -77,7 +69,7 @@ jobs:
# needs: create-regression-branch
# steps:
# - name: "Checkout future release branch"
# uses: actions/checkout@v6.0.3
# uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
# with:
# repository: mparticle/mparticle-android-sdk
# ref: regression/${{ github.run_number }}
Expand Down Expand Up @@ -110,7 +102,7 @@ jobs:
# needs: create-regression-branch
# steps:
# - name: "Checkout Branch"
# uses: actions/checkout@v6.0.3
# uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
# with:
# repository: mparticle/mparticle-android-sdk
# ref: regression/${{ github.run_number }}
Expand Down Expand Up @@ -200,7 +192,7 @@ jobs:
needs: create-regression-branch
steps:
- name: "Checkout future release branch"
uses: actions/checkout@v6.0.3
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
repository: mparticle/mparticle-android-sdk
ref: regression/${{ github.run_number }}
Expand Down Expand Up @@ -229,10 +221,11 @@ jobs:
needs: create-regression-branch
steps:
- name: "Checkout Branch"
uses: actions/checkout@v6.0.3
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
ref: regression/${{ github.run_number }}
submodules: recursive
- run: echo "ORG_GRADLE_PROJECT_VERSION=$(head -n 1 VERSION)" >> $GITHUB_ENV
- run: echo "ORG_GRADLE_PROJECT_version=$(head -n 1 VERSION)" >> $GITHUB_ENV
- name: "Install JDK 17"
uses: actions/setup-java@v5
with:
Expand All @@ -242,15 +235,15 @@ jobs:
- name: "Run Android Core SDK Lint"
run: ./gradlew lint
- name: "Setup Android Kit Lint"
run: ./gradlew publishReleaseLocal
run: ./gradlew publishMavenPublicationToMavenLocal
- name: "Run Android Kit Lint"
run: ./gradlew publishReleaseLocal -c settings-kits.gradle lint
- name: "Get SDK version for isolated kits"
id: sdk-version
run: echo "version=$(./gradlew -q properties | grep '^version:' | awk '{print $2}')" >> $GITHUB_OUTPUT
run: ./gradlew lint -c settings-kits.gradle -Pmparticle.kit.mparticleFromMavenLocalOnly=true
- name: "Run Isolated Kit Lint (urbanairship-kit)"
working-directory: kits/urbanairship-kit
run: ./gradlew -Pversion=${{ steps.sdk-version.outputs.version }} lint
run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/urbanairship/urbanairship-20 lint
- name: "Run Isolated Kit Lint (ga-kit)"
run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/ga/ga-23 lint
- name: "Run Isolated Kit Lint (ga4-kit)"
run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/ga4/ga4-23 lint
- name: "Archive Test Results"
uses: actions/upload-artifact@v7
if: always()
Expand All @@ -271,10 +264,11 @@ jobs:
needs: create-regression-branch
steps:
- name: "Checkout Branch"
uses: actions/checkout@v6.0.3
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
ref: regression/${{ github.run_number }}
submodules: recursive
- run: echo "ORG_GRADLE_PROJECT_VERSION=$(head -n 1 VERSION)" >> $GITHUB_ENV
- run: echo "ORG_GRADLE_PROJECT_version=$(head -n 1 VERSION)" >> $GITHUB_ENV
- name: "Install JDK 17"
uses: actions/setup-java@v5
with:
Expand All @@ -284,15 +278,15 @@ jobs:
- name: "Run Android Core SDK Kotlin Lint"
run: ./gradlew ktlintCheck
- name: "Setup Android Kit Kotlin Lint"
run: ./gradlew publishReleaseLocal
run: ./gradlew publishMavenPublicationToMavenLocal
- name: "Run Android Kit Kotlin Lint"
run: ./gradlew publishReleaseLocal -c settings-kits.gradle ktlintCheck
- name: "Get SDK version for isolated kits"
id: sdk-version
run: echo "version=$(./gradlew -q properties | grep '^version:' | awk '{print $2}')" >> $GITHUB_OUTPUT
run: ./gradlew ktlintCheck -c settings-kits.gradle -Pmparticle.kit.mparticleFromMavenLocalOnly=true
- name: "Run Isolated Kit Kotlin Lint (urbanairship-kit)"
working-directory: kits/urbanairship-kit
run: ./gradlew -Pversion=${{ steps.sdk-version.outputs.version }} ktlintCheck
run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/urbanairship/urbanairship-20 ktlintCheck
- name: "Run Isolated Kit Kotlin Lint (ga-kit)"
run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/ga/ga-23 ktlintCheck
- name: "Run Isolated Kit Kotlin Lint (ga4-kit)"
run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/ga4/ga4-23 ktlintCheck
- name: "Archive Test Results"
uses: actions/upload-artifact@v7
if: always()
Expand All @@ -317,27 +311,28 @@ jobs:
GIT_COMMITTER_EMAIL: developers@mparticle.com
steps:
- name: "Checkout future release branch"
uses: actions/checkout@v6.0.3
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
repository: mparticle/mparticle-android-sdk
ref: regression/${{ github.run_number }}
submodules: recursive
- run: echo "ORG_GRADLE_PROJECT_VERSION=$(head -n 1 VERSION)" >> $GITHUB_ENV
- run: echo "ORG_GRADLE_PROJECT_version=$(head -n 1 VERSION)" >> $GITHUB_ENV
- name: "Install JDK 17"
uses: actions/setup-java@v5
with:
distribution: "zulu"
java-version: "17"
cache: "gradle"
- name: "Build Android Core"
run: ./gradlew -PisRelease=true clean publishReleaseLocal
run: ./gradlew clean publishMavenPublicationToMavenLocal
- name: "Test Kits"
run: ./gradlew -PisRelease=true clean testRelease publishReleaseLocal -c settings-kits.gradle
- name: "Get SDK version for isolated kits"
id: sdk-version
run: echo "version=$(./gradlew -PisRelease=true -q properties | grep '^version:' | awk '{print $2}')" >> $GITHUB_OUTPUT
run: ./gradlew clean testRelease -c settings-kits.gradle -Pmparticle.kit.mparticleFromMavenLocalOnly=true
- name: "Test Isolated Kits (urbanairship-kit)"
working-directory: kits/urbanairship-kit
run: ./gradlew -PisRelease=true -Pversion=${{ steps.sdk-version.outputs.version }} clean testRelease publishReleaseLocal
run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/urbanairship/urbanairship-20 clean testRelease
- name: "Test Isolated Kits (ga-kit)"
run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/ga/ga-23 clean testRelease
- name: "Test Isolated Kits (ga4-kit)"
run: ./gradlew -Pmparticle.kit.mparticleFromMavenLocalOnly=true -p kits/ga4/ga4-23 clean testRelease

semantic-release-dryrun:
name: "Test Semantic Release - Dry Run"
Expand All @@ -351,7 +346,7 @@ jobs:
GIT_COMMITTER_EMAIL: developers@mparticle.com
steps:
- name: "Checkout public main branch"
uses: actions/checkout@v6.0.3
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
fetch-depth: 0
ref: main
Expand Down Expand Up @@ -382,7 +377,7 @@ jobs:
GIT_COMMITTER_EMAIL: developers@mparticle.com
steps:
- name: "Checkout repo"
uses: actions/checkout@v6.0.3
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
token: ${{ secrets.MP_SEMANTIC_RELEASE_BOT }}
fetch-depth: 0
Expand Down
69 changes: 69 additions & 0 deletions .github/workflows/instrumented-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Instrumented Tests (Reusable)

on:
workflow_call:
inputs:
display_name:
required: true
type: string
gradle_command:
required: true
type: string
artifact_name:
required: true
type: string
artifact_path:
required: true
type: string
timeout_minutes:
required: false
type: number
default: 20

permissions:
contents: read
pull-requests: read
checks: write

jobs:
instrumented:
name: "Instrumented Tests (${{ inputs.display_name }})"
timeout-minutes: ${{ inputs.timeout_minutes }}
runs-on: ubuntu-latest
steps:
- name: "Checkout Branch"
uses: actions/checkout@v6.0.2
- name: "Install JDK 17"
uses: actions/setup-java@v5
with:
distribution: "zulu"
java-version: "17"
- name: Gradle cache
uses: gradle/gradle-build-action@842c587ad8aa4c68eeba24c396e15af4c2e9f30a #v2.9.0
# AVD cache disabled: causes indefinite hangs on emulator shutdown (see
# ReactiveCircus/android-emulator-runner#373, #385, #362; WordPress/gutenberg#66771)
- name: Enable KVM group perms
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: "Run Instrumented Tests (${{ inputs.display_name }})"
uses: reactivecircus/android-emulator-runner@b530d96654c385303d652368551fb075bc2f0b6b #v2.35.0
env:
ANDROID_EMULATOR_WAIT_TIME_BEFORE_KILL: 60
with:
api-level: 28
force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: |
adb shell settings put global transition_animation_scale 0.0
adb shell settings put global animator_duration_scale 0.0
for pkg in com.mparticle.kittests com.mparticle.kits.test com.mparticle.legacyTest com.mparticle.test; do if adb shell pm list packages | grep -q "$pkg"; then adb uninstall "$pkg"; fi; done
./gradlew ${{ inputs.gradle_command }}
- name: "Archive ${{ inputs.display_name }} Results"
uses: actions/upload-artifact@v7
if: always()
with:
name: ${{ inputs.artifact_name }}
path: ${{ inputs.artifact_path }}
Loading
Loading