Skip to content

Upgrade to AGP 8.0#975

Merged
tonidero merged 8 commits into
mainfrom
toniricodiez/sdk-3065-upgrade-to-agp-80
Apr 18, 2023
Merged

Upgrade to AGP 8.0#975
tonidero merged 8 commits into
mainfrom
toniricodiez/sdk-3065-upgrade-to-agp-80

Conversation

@tonidero

@tonidero tonidero commented Apr 18, 2023

Copy link
Copy Markdown
Contributor

Description

Android Studio Flamingo 8.0 was released a few days ago. As part of the upgrade, it's recommended to upgrade to AGP 8.0 and Gradle 8.0. This PR performs that upgrade.

AGP Upgrade assistant steps run:
image

In our case:

  • For R8, we currently keep everything, which is not the best practice but protects us from most issues from running R8 in full mode. These are the changes we should be aware of for R8 full mode: https://r8.googlesource.com/r8/+/refs/heads/master/compatibility-faq.md#r8-full-mode. We do have issues with external dependencies though, being the Tink library.
  • The BuildConfig files are used in a couple places so I enabled them only in the modules that use them (common, purchase-tester and MagicWeather).
  • The R file related steps don't affect us much since we don't really use R resources in the SDK (we do in the sample apps but changes don't affect us there)

@tonidero tonidero added the build label Apr 18, 2023
Comment thread .sdkmanrc
ext.compileVersion = 31
ext.kotlinVersion = "1.6.21"
ext.purchasesVersion = "6.0.0-alpha.4"
ext.purchasesVersion = "6.1.1"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I don't know why we were pointing to the alpha version here but I was running into some issues so instead of trying to fix things in that version, I just updated to the latest (and had to do a couple of changes as a result)

Comment thread common/build.gradle
namespace 'com.revenuecat.purchases.common'

buildFeatures {
buildConfig true

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

We use the BuildConfig file in the common module to enable debug logs automatically on debug versions.

buildFeatures {
buildConfig true
}
namespace 'com.revenuecat.sample'

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Had to remove this from the AndroidManifest and into the build.gradle

Comment thread common/consumer-rules.pro
@@ -0,0 +1,2 @@
-dontwarn com.google.errorprone.annotations.CanIgnoreReturnValue
-dontwarn com.google.errorprone.annotations.Immutable

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Looks like the new R8 full mode is not compatible with the latest version of Tink-Android... Currently that library is unused until we actually finish Trusted entitlements. For now, I checked and these 2 annotations seem to only be used for internal checks of the library, so it should be safe to ignore them... In any case, I reported this in Tink-Java: tink-crypto/tink-java#7 so they can hopefully add the rules in the library itself.

@tonidero tonidero marked this pull request as ready for review April 18, 2023 09:46
@tonidero tonidero requested a review from a team April 18, 2023 09:46

@vegaro vegaro left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks like the changes are pretty safe. Don't know if you've teste it yet, but I would try a release to local maven though and see if the publishing plugin works as expected.

@tonidero

Copy link
Copy Markdown
Contributor Author

Looks like the changes are pretty safe. Don't know if you've teste it yet, but I would try a release to local maven though and see if the publishing plugin works as expected.

I had not tried it, good call! I just did and was able to publish correctly and tested the version from MagicWeather without issues 👍

@tonidero tonidero merged commit 6643206 into main Apr 18, 2023
@tonidero tonidero deleted the toniricodiez/sdk-3065-upgrade-to-agp-80 branch April 18, 2023 14:10
tonidero added a commit that referenced this pull request May 18, 2023
**This is an automatic release.**

### New Features
* CAT-859 Expose whether or not a SubscriptionOption is Prepaid in the
SDK (#1005) via Deema AlShamaa (@dalshamaa)
### Bugfixes
* [CF-1324] Fix personalizedPrice defaulting to false (#952) via beylmk
(@beylmk)
### Performance Improvements
* Store and return ETag last refresh time header (#978) via Toni Rico
(@tonidero)
### Dependency Updates
* Bump fastlane-plugin-revenuecat_internal from `3b03efa` to `fe45299`
(#991) via dependabot[bot] (@dependabot[bot])
* Bump danger from 9.2.0 to 9.3.0 (#981) via dependabot[bot]
(@dependabot[bot])
* Bump fastlane-plugin-revenuecat_internal from `8482a43` to `3b03efa`
(#974) via dependabot[bot] (@dependabot[bot])
* Bump fastlane from 2.212.1 to 2.212.2 (#973) via dependabot[bot]
(@dependabot[bot])
* Bump fastlane-plugin-revenuecat_internal from `9255366` to `8482a43`
(#961) via dependabot[bot] (@dependabot[bot])
### Other Changes
* Add proration modes to post to backend (#977) via swehner (@swehner)
* Added ENTITLEMENTS_COMPUTED_ON_DEVICE (#939) via Cesar de la Vega
(@vegaro)
* Fix flaky test in OfflineCustomerInfoCalculatorTest (#997) via Cesar
de la Vega (@vegaro)
* Fix `OfflineCustomerInfoCalculatorTest` `Unresolved reference:
ProducType` (#995) via Cesar de la Vega (@vegaro)
* Add support for product_plan_identifier for offline customer info
(#959) via Cesar de la Vega (@vegaro)
* Add non-subscriptions support to offline customer info (#958) via
Cesar de la Vega (@vegaro)
* Query only active purchases when generating offline entitlements
customer info (#1003) via Toni Rico (@tonidero)
* Fix `PurchasesIntegrationTest` building issue (#996 into main) (#998)
via Cesar de la Vega (@vegaro)
* Fail offline entitlements computation if product entitlement mapping
not available (#999) via Toni Rico (@tonidero)
* Fix  build_magic_weather lane (#993) via Cesar de la Vega (@vegaro)
* Add backend integration tests and test product entitlement mapping
endpoint (#988) via Toni Rico (@tonidero)
* Fix purchases integration tests (#980) via Toni Rico (@tonidero)
* Disable offline entitlements if active inapp purchases exist (#983)
via Toni Rico (@tonidero)
* Clear cached customer info upon entering offline entitlements mode
(#989) via Toni Rico (@tonidero)
* Update product entitlement mapping request to new format (#976) via
Toni Rico (@tonidero)
* Support enabling/disabling offline entitlements (#964) via Toni Rico
(@tonidero)
* Add back integration tests automation (#972) via Toni Rico (@tonidero)
* Upgrade to AGP 8.0 (#975) via Toni Rico (@tonidero)
* Extract post receipt logic to PostReceiptHelper (#967) via Toni Rico
(@tonidero)
* Add isServerDown to error callback for postReceipt and getCustomerInfo
requests (#963) via Toni Rico (@tonidero)
* Add back integration test flavors (#962) via Toni Rico (@tonidero)
* Fix storing test results (#966) via Cesar de la Vega (@vegaro)
* Extract detekt job from test job (#965) via Cesar de la Vega (@vegaro)


[CF-1324]:
https://revenuecats.atlassian.net/browse/CF-1324?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

---------

Co-authored-by: revenuecat-ops <ops@revenuecat.com>
Co-authored-by: Toni Rico <antonio.rico.diez@revenuecat.com>
@vegaro vegaro added pr:other and removed pr:build labels Sep 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants