Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[in_app_purchase] Update Play Billing library to 7.1.1 #8218

Open
wants to merge 24 commits into
base: main
Choose a base branch
from

Conversation

mchudy
Copy link
Contributor

@mchudy mchudy commented Dec 3, 2024

Updates Play Billing Library to the latest version 7.1.1. Exposes new APIs as per release notes:

  • Adds Dart representation of ProductDetails.InstallmentPlanDetails
  • Adds Dart representation of PendingPurchasesParams and removes the deprecated enablePendingPurchases method on BillingClientWrapper (breaking change)
  • Adds Dart representation of Purchase.PendingPurchaseUpdate
  • Removes the deprecated ProrationMode as it has been removed from the native library (breaking change)

This PR introduces breaking changes in in_app_purchase_android, but does not introduce any breaking changes on the platform interface level.

Fixes flutter/flutter#147394

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@mchudy mchudy changed the title Feature/in app purchase play billing upgrade [in_app_purchase] Update Play Billing library to 7.1.1 Dec 3, 2024
@stuartmorgan
Copy link
Contributor

@reidbaker Ping on this review

@reidbaker reidbaker removed their request for review December 18, 2024 19:36
@reidbaker
Copy link
Contributor

@gmackall I am not going to get to this. Deferring to you for review.

@wph144
Copy link

wph144 commented Jan 6, 2025

The billingClient version upgrade process must proceed as quickly as possible.
Older versions of billingClient cause a low probability of missing payments after a certain period of time.
This may result in cases where the consumer makes a payment but does not receive the service for that payment, so the billingClient version upgrade must be done quickly.

Currently, in_app_purchase 3.2.0 is using billingClient 6.2.0,
and billingClient 7.0.0 version was distributed in May 2024,
so it has now taken more than 7 months.
I hope this gets merged quickly.

Copy link
Member

@gmackall gmackall left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mostly LGTM, added a couple comments. Sorry for the delay on review

mchudy added 17 commits January 7, 2025 00:22
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
Signed-off-by: Marcin Chudy <marcin.chudy@leancode.pl>
@mchudy mchudy force-pushed the feature/in-app-purchase-play-billing-upgrade branch from c0f71e6 to 2ed01f3 Compare January 6, 2025 23:26
@mchudy mchudy force-pushed the feature/in-app-purchase-play-billing-upgrade branch from 2ed01f3 to 4e5e3ca Compare January 6, 2025 23:50
@mchudy mchudy requested a review from gmackall January 6, 2025 23:59
@mchudy
Copy link
Contributor Author

mchudy commented Jan 8, 2025

CI is complaining about versioning, but I believe we should first publish the new version of in_app_purchase_android and only once that lands on pub update the dependency in the base package? Or can this be handled inside a single PR?

@stuartmorgan stuartmorgan added the federated: all_changes PR that contains changes for all packages for a federated plugin change label Jan 9, 2025
@stuartmorgan
Copy link
Contributor

CI is complaining about versioning, but I believe we should first publish the new version of in_app_purchase_android and only once that lands on pub update the dependency in the base package? Or can this be handled inside a single PR?

See https://github.com/flutter/flutter/blob/master/docs/ecosystem/contributing/README.md#changing-federated-plugins for the process of landing a multi-package PR with interdependencies.

* **BREAKING CHANGES**:
* Removes the deprecated `ProrationMode` enum. `ReplacementMode` should be used instead.
* Removes the deprecated `BillingClientWrapper.enablePendingPurchases` method.
* Bumps `minSdk` to 21.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would be a breaking change for in_app_purchase when rolling the dependency there; we strongly prefer not dropping OS support before the SDK itself.

In this case, Flutter 3.24+ only supports Android SDK 21+, so the way to make this change would be to update the plugin's min SDK version to 3.24, which makes this no longer a breaking change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
federated: all_changes PR that contains changes for all packages for a federated plugin change p: in_app_purchase platform-android
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[in app purchase] Update PlayBilling Library to 7.0
5 participants