Skip to content

Conversation

tonidero
Copy link
Contributor

This reverts commit 34c61a3.

Description

Reapplies the changes originally from #2477 that were reverted in #2501 to allow making a release in the current major.

Migrates to BC8: https://developer.android.com/google/play/billing/release-notes#8-0-0

This reverts commit 34c61a3.
@tonidero tonidero requested a review from a team July 10, 2025 11:10
@tonidero tonidero added pr:breaking Changes that are breaking pr:other labels Jul 10, 2025
Copy link

codecov bot commented Jul 10, 2025

Codecov Report

Attention: Patch coverage is 60.52632% with 30 lines in your changes missing coverage. Please review.

Project coverage is 78.35%. Comparing base (30b1530) to head (0685435).
Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
...hases/google/usecase/QueryProductDetailsUseCase.kt 17.64% 12 Missing and 2 partials ⚠️
.../com/revenuecat/purchases/google/BillingWrapper.kt 75.00% 8 Missing ⚠️
...n/kotlin/com/revenuecat/purchases/google/errors.kt 70.00% 4 Missing and 2 partials ⚠️
...n/com/revenuecat/purchases/amazon/AmazonBilling.kt 0.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2506      +/-   ##
==========================================
- Coverage   78.73%   78.35%   -0.39%     
==========================================
  Files         289      286       -3     
  Lines       10526    10439      -87     
  Branches     1509     1500       -9     
==========================================
- Hits         8288     8179     -109     
- Misses       1590     1614      +24     
+ Partials      648      646       -2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Member

@JayShortway JayShortway left a comment

Choose a reason for hiding this comment

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

Let's go!

@tonidero tonidero added this pull request to the merge queue Jul 10, 2025
Merged via the queue into main with commit 1df5752 Jul 10, 2025
14 checks passed
@tonidero tonidero deleted the reapply-bc8-migration branch July 10, 2025 12:50
@tonidero tonidero mentioned this pull request Jul 10, 2025
tonidero added a commit that referenced this pull request Jul 10, 2025
## RevenueCat SDK
This release updates the SDK to use Google Play Billing Library 8. This
version of the Billing Library removed APIs to query for expired
subscriptions and consumed one-time products, aside from other
improvements. You can check the full list of changes here:
https://developer.android.com/google/play/billing/release-notes#8-0-0

Additionally, we've also updated Kotlin to 2.0.21 and our new minimum
version is Kotlin 1.8.0+. If you were using an older version of Kotlin,
you will need to update it.

Regarding API changes, we've also removed data classes from our public
APIs. This means that for classes that were previously data classes, the
`copy` function and `componentN` functions (destructuring declarations)
have been removed. `equals` and `hashCode` functions still work as
before.

### Play Billing Library 8: No expired subscriptions or consumed
one-time products

**Note:** the following is only relevant if you recently integrated
RevenueCat, and do not (yet) have all your transactions imported.
  
Play Billing Library 8 removed functionality to query expired
subscriptions or consumed one-time products. This means that, for users
migrating from a non-RevenueCat implementation of the Play Billing
Library, the SDK will not be able to send purchase information from
these purchases. We can still ingest historical data from these
purchases through a backend historical import. See
[docs](https://www.revenuecat.com/docs/migrating-to-revenuecat/migrating-existing-subscriptions).
This doesn't affect developers that have all transactions in RevenueCat,
which is true for the vast majority.

### Bumped minimum Kotlin version

RevenueCat SDK v9 bumps Kotlin to 2.0.21, with a minimum Kotlin version
of 1.8.0.

### Using the SDK with your own IAP code (previously Observer Mode)

Using the SDK with your own IAP code is still supported in v9. Other
than updating the SDK version, there are no changes required. Just make
sure the version of the Play Billing Library is also version 8.0.0+.

### 💥 Breaking Changes
* Removes data classes from public API (#2498) via JayShortway
(@JayShortway)
* Marks `PaywallData` and `PaywallColor` as `InternalRevenueCatAPI`.
(#2507) via JayShortway (@JayShortway)
* BC8 migration (#2506) via Toni Rico (@tonidero)
* Update to kotlin 2.0.21 while keeping language compatibility (#2493)
via Toni Rico (@tonidero)

### 🔄 Other Changes
* Update CustomEntitlementComputation sample app kotlin version (#2510)
via Toni Rico (@tonidero)
* Fix `Switch` component previews (#2509) via Toni Rico (@tonidero)
* Add V9 migration guide (#2508) via Toni Rico (@tonidero)
* [AUTOMATIC][Paywalls V2] Updates paywall-preview-resources submodule
(#2499) via RevenueCat Git Bot (@RCGitBot)

---------

Co-authored-by: JayShortway <29483617+JayShortway@users.noreply.github.com>
tonidero added a commit that referenced this pull request Jul 15, 2025
### Description
Upgrades/downgrades were not working after the changes in #2506. This
fixes the issue and adds some tests to the relevant code to avoid it
from happening again.

This should deal with #2531
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr:breaking Changes that are breaking pr:other
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants