Repository navigation
chore!: Flutter Major Release v6 - #637
turnipdabeets wants to merge 9 commits into
Conversation
|
[High risk] Upgrades PostHog iOS SDK and removes deprecated APIs. The reviewed changes appear safe to merge, with one non-blocking release-note correction. Reviews (1) · Last reviewed commit: "chore!: adopt posthog-ios 4.0 and remove..." |
posthog-flutter Compliance ReportDate: 2026-10-26 18:42:05 UTC ✅ All Tests Passed!45/45 tests passed Capture Tests✅ 29/29 tests passed View Details
Feature_Flags Tests✅ 16/16 tests passed View Details
|
b996dea to
047d564
Compare
0ae4f04 to
9279d41
Compare
5fced53 to
5022778
Compare
e1927f4 to
a700edb
Compare
|
This PR hasn't seen activity in a week! Should it be merged, closed, or further worked on? If you want to keep it open, post a comment or remove the |
| @@ -0,0 +1,5 @@ | |||
| --- | |||
| "posthog_flutter": major | |||
There was a problem hiding this comment.
i think we should merge all changesets
There was a problem hiding this comment.
you mean into 1 large file? Does that change how it’s displayed? There’s different files since several PRs mrged into this one.
There was a problem hiding this comment.
if this PR is the one merging to main, just one with the major changeset and then with all changes there makes more sense, easier to read, more summarized etc
There was a problem hiding this comment.
OK I'll merge them before we merge this PR
|
moved to draft since its not at a mergeable state |
a700edb to
c3150c0
Compare
- Remove PostHogConfig.apiKey and the API_KEY manifest/Info.plist fallback. - Remove getFeatureFlagPayload() across Dart, web and native handlers. - Remove the debouncerDelay setter and PostHogDataMode.cellular. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
posthog-android has required minSdk 23 since 3.39.0, and the plugin's dependency range [3.71.0, 4.0.0) only resolves to versions that need it. Apps below 23 already fail the manifest merge, so this only corrects the declared value. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Removes the names deprecated in 5.x in favor of optIn/optOut and sendFeatureFlagEvent. Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>
…#647) Matches PostHogConfig.sendFeatureFlagEvent and the iOS/Android getFeatureFlagResult parameter. The method-channel key stays 'sendEvent'. Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>
* chore!: rename platform enable/disable to optIn/optOut PosthogFlutterPlatformInterface.enable()/disable() become optIn()/optOut() to match the public Posthog API renamed in #636/#638. The method-channel names sent to native stay 'enable'/'disable'. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> * docs(changeset): cover direct platform callers in the opt-in/out rename Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> --------- Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>
toMap() on the config classes and PostHogFeatureFlagResult.fromMap() are the platform-channel wire format, not a user-facing data shape. Move them to extensions and a top-level function in an unexported src/utils/channel_serialization.dart so they drop out of the public API. Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>
Raises the deployment targets to the posthog-ios 4.0 minimums ahead of the SDK bump, so the bump itself only changes the dependency range. Drops the availability checks that are now always true and moves the CodeQL Swift job to Xcode 26. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Desktop landed on main after the v6 removals were written, so it still implemented disable/enable, getFeatureFlagPayload and the sendEvent parameter, and read config.sendFeatureFlagEvents.
getAllFeatureFlags (#665) decoded with PostHogFeatureFlagResult.fromMap, which #646 made private, and the web feature events (#667) passed sendEvent:, which #647 renamed to sendFeatureFlagEvent:. Co-Authored-By: Claude Opus 5.5 <[email protected]>
c3150c0 to
713e973
Compare
💡 Motivation and Context
This is the base PR for posthog_flutter 6.0.0. It raises the iOS and macOS minimums to match posthog-ios 4.0 and removes the APIs we had already marked for removal in the next major.
It still depends on posthog-ios 3.x (
>= 3.84.0, < 4.0.0), so CI can pass before 4.0 is published. Adopting posthog-ios 4.0 (PostHog/posthog-ios#873), with its 4.x range, Xcode 26 requirement and iOS behavior changes, is in the stacked #649.Merge order: merge #649 into this branch once posthog-ios 4.0 is published, then merge this PR into
main. Merging this PR first would line up a 6.0.0 release that still uses posthog-ios 3.x, becausepublish.ymlruns on every changeset push tomain.iOS and macOS minimums
#available(iOS 14.0, macOS 11.0, *)check around the push-open prewarm, which the new minimums make always truecodeql.ymlmoved from Xcode 16.4 to 26.4.cellularfrom the iOS dataMode mapping, and dropped the#available(iOS 15.0, *)check around surveys, which the new minimum makes always trueRemoved deprecated APIs
PostHogConfig.apiKey, theapiKeysetup alias, and thecom.posthog.posthog.API_KEYmanifest/Info.plist fallback (Android and iOS)Posthog().getFeatureFlagPayload(): removed from Dart, the platform interface, web and both native handlersPostHogConfig.debouncerDelaysetterPostHogDataMode.cellularAndroid minSdk
minSdkVersiongoes from 21 to 23. The plugin depends onposthog-android[3.71.0, 4.0.0), andposthog-androidhas required minSdk 23 since 3.39.0 (chore: upgrade to Kotlin 2.1.10, AGP 8.9.1, compileSdk 36, minSdk 23 posthog-android#460). An app on minSdk 21 or 22 already fails Gradle's manifest merge on that dependency, so the old 21 was stale. This doesn't change who can build, so it isn't listed as breaking. It only makes the plugin declare the floor it already has. 23 also matches Datadog's and Firebase's Flutter plugins.Merged into this branch
enable()/disable()andsendFeatureFlagEventsenable()/disable()tooptIn()/optOut()toMap()/fromMap()from the public APIgetFeatureFlagResult(sendEvent:)tosendFeatureFlagEvent:Deliberately excluded
💚 How did you test it?
flutter analyze,flutter test(781 pass),dart format --set-exit-if-changed,scripts/check-api-dart.shflutter build apk(re-run after the minSdk 23 change),./gradlew :posthog_flutter:testDebugUnitTest📝 Checklist
If releasing new changes
pnpm changesetto generate a changeset file🤖 Agent context
Autonomy: Human-driven (agent-assisted)
🤖 Generated with Claude Code