Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@

jobs:
test:
uses: ./.github/workflows/test.yml

Check warning on line 16 in .github/workflows/pull-request.yml

View workflow job for this annotation

GitHub Actions / Scan GitHub Actions workflows

self-repository

pull-request.yml:16: use GitHub's dedicated self-repository syntax: use '$/...' instead of './...'

build-android:
needs: test
uses: ./.github/workflows/build-android.yml

Check warning on line 20 in .github/workflows/pull-request.yml

View workflow job for this annotation

GitHub Actions / Scan GitHub Actions workflows

self-repository

pull-request.yml:20: use GitHub's dedicated self-repository syntax: use '$/...' instead of './...'

build-ios:
needs: test
Expand All @@ -38,7 +38,7 @@
- build-ios
- build-web
name: Notify GChat
uses: ROKT/rokt-workflows/.github/workflows/oss_pr_opened_notification.yml@88d0e118869cc788aae18ba37635fa851c879b73 # main
uses: ROKT/rokt-workflows/.github/workflows/oss_pr_opened_notification.yml@490d3ec9069eeedb757be147bf440d6394705e84 # main

Check warning on line 41 in .github/workflows/pull-request.yml

View workflow job for this annotation

GitHub Actions / Scan GitHub Actions workflows

ref-version-mismatch

pull-request.yml:41: action's hash pin has mismatched or missing version comment: branch points to commit da0c5fd5d38e
permissions:
contents: read
id-token: write
Expand Down
29 changes: 20 additions & 9 deletions .github/workflows/release-draft.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,13 @@ permissions:

jobs:
publish-draft-release:
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
fetch-depth: 0
persist-credentials: false

- name: Get current version
id: version-file
Expand All @@ -39,18 +43,22 @@ jobs:
current_version: ${{ steps.version-file.outputs.release-version }}
level: ${{ github.event.inputs.bump-type || 'patch' }}

- name: Save validated version to file
run: |
echo "${{ steps.bump-version.outputs.new_version }}" > VERSION

- name: Update changelog
uses: thomaseizinger/keep-a-changelog-new-release@f62c3c390716df5af712ba5d94f4f4a8efc1306d # v3
- name: Generate changelog from merged PR titles
id: changelog
uses: ROKT/rokt-workflows/actions/generate-changelog@da0c5fd5d38e9cf113a24ec9aaea079cc7d0bc40 # main
env:
GH_TOKEN: ${{ github.token }}
with:
tag: ${{ steps.bump-version.outputs.new_version }}
version: ${{ steps.bump-version.outputs.new_version }}
tag-prefix: v
changelog-path: CHANGELOG.md

- name: Update pubspec.yaml
- name: Update release versions
env:
NEW_VERSION: ${{ steps.bump-version.outputs.new_version }}
run: |
sed -i 's/version: .*/version: ${{ steps.bump-version.outputs.new_version }}/' pubspec.yaml
printf '%s\n' "$NEW_VERSION" > VERSION
sed -i "s/^version: .*/version: ${NEW_VERSION}/" pubspec.yaml

- name: Setup Flutter
uses: subosito/flutter-action@1a449444c387b1966244ae4d4f8c696479add0b2 # v2
Expand Down Expand Up @@ -84,5 +92,8 @@ jobs:
- Updated CHANGELOG.md
- Updated VERSION file
- Ran a dry-run publish

## Changelog
${{ steps.changelog.outputs.release-notes }}
labels: |
release
23 changes: 16 additions & 7 deletions .github/workflows/release-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
cancel-in-progress: false

permissions:
contents: write

Check failure on line 13 in .github/workflows/release-publish.yml

View workflow job for this annotation

GitHub Actions / Scan GitHub Actions workflows

excessive-permissions

release-publish.yml:13: overly broad permissions: contents: write is overly broad at the workflow level
id-token: write

Check failure on line 14 in .github/workflows/release-publish.yml

View workflow job for this annotation

GitHub Actions / Scan GitHub Actions workflows

excessive-permissions

release-publish.yml:14: overly broad permissions: id-token: write is overly broad at the workflow level

jobs:
test:
Expand Down Expand Up @@ -46,20 +46,29 @@
channel: stable
cache: true

- name: Publish Package
run: |
flutter pub publish --force

- uses: ffurrer2/extract-release-notes@273da39a24fb7db106a35526c8162815faffd31d # v3.1.0
id: extract-release-notes
with:
changelog_file: CHANGELOG.md

- name: Prepare GitHub release body
env:
TAG_NAME: ${{ github.ref_name }}
RELEASE_NOTES: ${{ steps.extract-release-notes.outputs.release_notes }}
BODY_FILE: ${{ runner.temp }}/release-body.md
run: |
version="${TAG_NAME#v}"
test "$(head -n 1 VERSION)" = "$version"
comparison_url=$(awk -v reference="[${version}]:" '$1 == reference { matches++; url=$2 } END { if (matches != 1 || url == "") exit 1; print url }' CHANGELOG.md)
printf '## Release notes:\n%s\n\n**Full Changelog**: %s\n' "$RELEASE_NOTES" "$comparison_url" > "$BODY_FILE"

- name: Publish Package
run: |
flutter pub publish --force

- name: Create Github release
uses: ncipollo/release-action@339a81892b84b4eeb0f6e744e4574d79d0d9b8dd # v1

Check notice on line 70 in .github/workflows/release-publish.yml

View workflow job for this annotation

GitHub Actions / Scan GitHub Actions workflows

superfluous-actions

release-publish.yml:70: action functionality is already included by the runner: use `gh release` in a script step
with:
makeLatest: true
tag: ${{ github.ref_name }}
body: |
## Release notes:
${{ steps.extract-release-notes.outputs.release_notes }}
bodyFile: ${{ runner.temp }}/release-body.md
34 changes: 20 additions & 14 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,18 +28,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [2.2.0] - 2026-07-27

### Changed

- Make `android-rokt-kit` a `compileOnly` plugin dependency and guard Android Rokt registration behind a runtime classpath check, matching the optional Rokt kit pattern used in react-native-mparticle.

## [2.2.0] - 2026-07-22

### Added

- Add Swift Package Manager support for the iOS plugin (`ios/mparticle_flutter_sdk/Package.swift`).

### Changed

- Make `android-rokt-kit` a `compileOnly` plugin dependency and guard Android Rokt registration behind a runtime classpath check, matching the optional Rokt kit pattern used in react-native-mparticle.
- Bump iOS CocoaPods dependency from `mParticle-Apple-SDK ~> 9.2` to `~> 9.3`.
- Bump Android Gradle dependencies to `android-core:6.0.0` and `android-rokt-kit:6.0.0`.
- **BREAKING**: Android `minSdkVersion` raised from `16` to `23` (required by Rokt SDK 6.x transitive dependencies).
Expand Down Expand Up @@ -102,7 +97,7 @@ See [MIGRATING.md](./MIGRATING.md) for the full 1.x → 2.0 upgrade guide.

- fix: Resolve linting issues (#48)

## [1.0.5] - 2024-07-10
## 1.0.5 - 2024-07-10

- fix: type 'Null' is not a subtype of type 'String' in getCurrentUser (#46)

Expand Down Expand Up @@ -144,10 +139,21 @@ See [MIGRATING.md](./MIGRATING.md) for the full 1.x → 2.0 upgrade guide.
- Identity API (identify, login, logout, and alias)
- Github Actions - semantic PR title check; plugin building

[unreleased]: https://github.com/mParticle/mparticle-flutter-sdk/compare/2.3.0...HEAD
[2.3.0]: https://github.com/mParticle/mparticle-flutter-sdk/compare/2.2.1...2.3.0
[2.2.1]: https://github.com/mParticle/mparticle-flutter-sdk/compare/2.2.0...2.2.1
[2.2.0]: https://github.com/mParticle/mparticle-flutter-sdk/compare/2.1.0...2.2.0
[2.1.0]: https://github.com/mParticle/mparticle-flutter-sdk/compare/2.0.0...2.1.0
[2.0.0]: https://github.com/mParticle/mparticle-flutter-sdk/compare/1.1.2...2.0.0
[1.1.2]: https://github.com/mParticle/mparticle-flutter-sdk/compare/47676b23d065e77f8ef7c9e2938793a93ec6dcc6...1.1.2
[unreleased]: https://github.com/mParticle/mparticle-flutter-sdk/compare/v2.3.0...HEAD
[2.3.0]: https://github.com/mParticle/mparticle-flutter-sdk/compare/v2.2.1...v2.3.0
[2.2.1]: https://github.com/mParticle/mparticle-flutter-sdk/compare/v2.2.0...v2.2.1
[2.2.0]: https://github.com/mParticle/mparticle-flutter-sdk/compare/v2.1.0...v2.2.0
[2.1.0]: https://github.com/mParticle/mparticle-flutter-sdk/compare/v2.0.0...v2.1.0
[2.0.0]: https://github.com/mParticle/mparticle-flutter-sdk/compare/v1.1.2...v2.0.0
[1.1.2]: https://github.com/mParticle/mparticle-flutter-sdk/compare/v1.1.1...v1.1.2
[1.1.1]: https://github.com/mParticle/mparticle-flutter-sdk/compare/v1.1.0...v1.1.1
[1.1.0]: https://github.com/mParticle/mparticle-flutter-sdk/compare/v1.0.6...v1.1.0
[1.0.6]: https://github.com/mParticle/mparticle-flutter-sdk/compare/v1.0.4...v1.0.6
[1.0.4]: https://github.com/mParticle/mparticle-flutter-sdk/compare/v1.0.3...v1.0.4
[1.0.3]: https://github.com/mParticle/mparticle-flutter-sdk/compare/v1.0.2...v1.0.3
[1.0.2]: https://github.com/mParticle/mparticle-flutter-sdk/compare/v1.0.1...v1.0.2
[1.0.1]: https://github.com/mParticle/mparticle-flutter-sdk/compare/v1.0.0-beta.1...v1.0.1
[1.0.0-beta.1]: https://github.com/mParticle/mparticle-flutter-sdk/compare/v0.2.0-alpha.1...v1.0.0-beta.1
[0.2.0-alpha.1]: https://github.com/mParticle/mparticle-flutter-sdk/compare/v0.1.0-alpha.2...v0.2.0-alpha.1
[0.1.0-alpha.2]: https://github.com/mParticle/mparticle-flutter-sdk/compare/v0.1.0-alpha.1...v0.1.0-alpha.2
[0.1.0-alpha.1]: https://github.com/mParticle/mparticle-flutter-sdk/tree/v0.1.0-alpha.1
2 changes: 1 addition & 1 deletion MIGRATING.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ CocoaPods trunk becomes read-only on 2 December 2026, and Flutter uses Swift Pac
2. Remove every mParticle and Rokt pod from `ios/Podfile`, for example `mParticle-Apple-SDK`, `mParticle-Rokt`, `RoktPaymentExtension` and `RoktSDKPlus`.
- If nothing else is left in the Podfile, run `pod deintegrate` in `ios/`, delete `Podfile` and `Podfile.lock`, and remove the `Pods-Runner` includes from `ios/Flutter/Debug.xcconfig` and `ios/Flutter/Release.xcconfig`.
- Otherwise, run `pod install`.
3. Add the kits as Swift packages to the Runner target, as described in the iOS section of the [README](README.md#iOS).
3. Add the kits as Swift packages to the Runner target, as described in the iOS section of the [README](README.md#ios).
4. Run a Debug build once and check the console for `[mParticle] The mParticle SDK is loaded more than once`. If it appears, a pod still brings in the SDK.
5. Commit the Xcode project change and `ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved`.

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,7 @@ For more help, see the [full Web set up docs](https://docs.mparticle.com/develop

## Usage

Each of our Dart methods is mapped to an underlying mParticle SDK at the platform level. Note that per Dart's [documentation](https://flutter.dev/docs/development/platform-integration/platform-channels#architecture, calling into platform specific code is asynchronous to ensure the user interface remains responsive. In your code, you can swap usage between `async` and `then` in accordance to your app's requirements.
Each of our Dart methods is mapped to an underlying mParticle SDK at the platform level. Note that per Dart's [documentation](https://flutter.dev/docs/development/platform-integration/platform-channels#architecture), calling into platform specific code is asynchronous to ensure the user interface remains responsive. In your code, you can swap usage between `async` and `then` in accordance to your app's requirements.

For a full description of all classes, methods, and properties, see the [mParticle Flutter SDK API Reference](https://pub.dev/documentation/mparticle_flutter_sdk/latest/).

Expand Down
14 changes: 14 additions & 0 deletions RELEASING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Releasing

Run **Release – Draft** on `main` and choose a patch, minor, or major bump.
The shared Rokt action generates changelog entries from merged PR titles since
the previous release tag, including all commit types. Conventional prefixes
determine categories; use `!` for breaking changes. Keep Unreleased empty.

Review the generated notes in the release PR, adding migration guidance where
needed. Merging creates the `v`-prefixed tag and starts tests, builds and
publication. The GitHub release includes the matching Full Changelog URL.

Package versions and changelog headings use bare versions (`2.3.0`); tags use
`v` (`v2.3.0`). Generation uses full history and explicitly sets `tag-prefix: v`.
Historical links retain existing tags; the untagged `1.0.5` heading stays unlinked.
Loading