diff --git a/.circleci/config.yml b/.circleci/config.yml index 5a0a2ea08c..2b7b7d70ef 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -345,7 +345,7 @@ jobs: command: sudo pip install awscli - run: name: Deploy to S3 - command: aws s3 sync ~/project/docs/10.17.0-SNAPSHOT s3://purchases-docs/android/10.17.0-SNAPSHOT --delete + command: aws s3 sync ~/project/docs/10.17.0 s3://purchases-docs/android/10.17.0 --delete - run: name: Update index.html command: aws s3 cp ~/project/docs/index.html s3://purchases-docs/android/index.html diff --git a/.version b/.version index e281fc7df4..73bffb0393 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -10.17.0-SNAPSHOT +10.17.0 diff --git a/CHANGELOG.latest.md b/CHANGELOG.latest.md index 52317ed09b..c1466da89d 100644 --- a/CHANGELOG.latest.md +++ b/CHANGELOG.latest.md @@ -1,34 +1,34 @@ ## RevenueCat SDK +### ✨ New Features +* feat(ads): fire reward-verification tracking events from the poll (#3884) via Peter Porfy (@peterporfy) ### 🐞 Bugfixes -* fix: don't share a MessageDigest across coroutines in FontLoader and DefaultFileCache (#3930) via Tarek M. Ben Lechhab (@bilqisium) -* Fix misleading ui_config warnings for projects without paywalls (#3926) via Rick (@rickvdl) -* fix: Declare kotlinx-coroutines-android as a dependency (#3916) via Álvaro Brey (@AlvaroBrey) -* fix(paywalls): prewarm the current offering's workflow assets on load (#3910) via Álvaro Brey (@AlvaroBrey) +* fix(paywalls): don't leave a hidden package selected by default (#3915) via Facundo Menzella (@facumenzella) +### 📦 Dependency Updates +* [RENOVATE] Update dependency revenuecat to v4.6.0 (#3973) via RevenueCat Git Bot (@RCGitBot) ## RevenueCatUI SDK +### ✨ New Features +* Support headless offering checkpoints (#3951) via Cesar de la Vega (@vegaro) +### 🐞 Bugfixes +* fix(paywalls): Expose compose-foundation-layout so PaywallFooter is callable without extra setup (#3961) via Álvaro Brey (@AlvaroBrey) +* Fix multi-page paywall state after dismissal (#3944) via Cesar de la Vega (@vegaro) +* fix(paywalls): Prevent an invisible leftover header from blocking taps on workflow paywalls (#3947) via Álvaro Brey (@AlvaroBrey) ### Paywallsv2 -#### 🐞 Bugfixes -* Default missing text localizations to empty instead of fallback paywall (#3903) via Cesar de la Vega (@vegaro) +#### ✨ New Features +* feat(paywalls): Preboot the WebView engine when a paywall has a web_view component (#3904) via Álvaro Brey (@AlvaroBrey) ### 🔄 Other Changes -* ci: install mise Ruby 3.3.0 so CI honors Gemfile.lock (#3952) via Álvaro Brey (@AlvaroBrey) -* refactor(checkpoints): Local rule evaluation foundation (#3942) via Toni Rico (@tonidero) -* refactor(paywalls): move image warming to `purchases-ui` and use a ServiceLoader to reach it (#3913) via Álvaro Brey (@AlvaroBrey) -* build: fix api-tester customEntitlementComputation variant resolution after Kover bump (#3945) via Álvaro Brey (@AlvaroBrey) -* feat(checkpoints): expose CheckpointParams customProperties as paywall custom variables (#3941) via Toni Rico (@tonidero) -* Ingest audiences config topic (#3936) via Cesar de la Vega (@vegaro) -* build: update Kover to 0.9.9 (#3932) via Álvaro Brey (@AlvaroBrey) -* build: update Metalava to 0.5.0 (#3935) via Álvaro Brey (@AlvaroBrey) -* refactor(checkpoints): Cleanup to offeringIdByWorkflowId map + custom checkpoint screen in checkpoint tester (#3919) via Toni Rico (@tonidero) -* refactor(paywalls): collect web_view assets in the existing predownload walk (#3902) via Álvaro Brey (@AlvaroBrey) -* Update baseline profiles (#3927) via RevenueCat Git Bot (@RCGitBot) -* Fix flaky cached offerings integration test and cover the fully-offline case (#3920) via Álvaro Brey (@AlvaroBrey) -* chore: stop persisting ProductEntitlementMapping.originalSource to disk (#3917) via Álvaro Brey (@AlvaroBrey) -* refactor(checkpoints): Resolve a checkpoint's workflow from its rules (#3914) via Toni Rico (@tonidero) -* Ingest checkpoint rules remote config (#3907) via Cesar de la Vega (@vegaro) -* refactor(checkpoints): Implement checkpoint use cases in `CheckpointTester` (#3900) via Toni Rico (@tonidero) -* refactor(checkpoints): Move the checkpoints API to the RevenueCatUI module (#3909) via Toni Rico (@tonidero) -* build(deps): bump fastlane-plugin-revenuecat_internal from `b4e1e7f` to `7fbbe66` (#3908) via dependabot[bot] (@dependabot[bot]) -* refactor(checkpoints): Create empty `CheckpointTester` project (#3898) via Toni Rico (@tonidero) -* refactor(checkpoints): Checkpoints wiring and sample usage in paywall tester - SDK-4423 (#3863) via Toni Rico (@tonidero) -* refactor(checkpoints): Checkpoints workflow presenter UI - SDK-4423 (#3889) via Toni Rico (@tonidero) +* refactor(ads): expose Outcome from the reward-verification poller (#3883) via Peter Porfy (@peterporfy) +* ci(danger): fail PRs that grow a suppression baseline (#3982) via Álvaro Brey (@AlvaroBrey) +* Report public API changes on PRs and in the SDK API feed (#3976) via Álvaro Brey (@AlvaroBrey) +* feat(ads): expose AdTracker API for reward-verification events (#3892) via Peter Porfy (@peterporfy) +* feat(ads): wire-encode reward-verification events (#3891) via Peter Porfy (@peterporfy) +* feat(ads): add reward-verification event data types (#3890) via Peter Porfy (@peterporfy) +* Update baseline profiles (#3974) via RevenueCat Git Bot (@RCGitBot) +* feat(checkpoints): Add StoreDimensionProvider with store.country (#3969) via Toni Rico (@tonidero) +* Deserialize audience rules for rules engine evaluation (#3970) via Cesar de la Vega (@vegaro) +* refactor(checkpoints): Reuse CustomVariableValue for checkpoint custom variables (#3960) via Toni Rico (@tonidero) +* feat(checkpoints): Evaluate checkpoint custom variables as custom.* dimensions (#3949) via Toni Rico (@tonidero) +* build: apply the AGP 9 config migrations that already work on AGP 8 (#3963) via Álvaro Brey (@AlvaroBrey) +* build: move baseline profiles to the plugin's default source dir (#3931) via Álvaro Brey (@AlvaroBrey) +* refactor(checkpoints): Add DeviceDimensionProvider (#3943) via Toni Rico (@tonidero) diff --git a/CHANGELOG.md b/CHANGELOG.md index b27b69b64b..6d99cd126c 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,39 @@ +## 10.17.0 +## RevenueCat SDK +### ✨ New Features +* feat(ads): fire reward-verification tracking events from the poll (#3884) via Peter Porfy (@peterporfy) +### 🐞 Bugfixes +* fix(paywalls): don't leave a hidden package selected by default (#3915) via Facundo Menzella (@facumenzella) +### 📦 Dependency Updates +* [RENOVATE] Update dependency revenuecat to v4.6.0 (#3973) via RevenueCat Git Bot (@RCGitBot) + +## RevenueCatUI SDK +### ✨ New Features +* Support headless offering checkpoints (#3951) via Cesar de la Vega (@vegaro) +### 🐞 Bugfixes +* fix(paywalls): Expose compose-foundation-layout so PaywallFooter is callable without extra setup (#3961) via Álvaro Brey (@AlvaroBrey) +* Fix multi-page paywall state after dismissal (#3944) via Cesar de la Vega (@vegaro) +* fix(paywalls): Prevent an invisible leftover header from blocking taps on workflow paywalls (#3947) via Álvaro Brey (@AlvaroBrey) +### Paywallsv2 +#### ✨ New Features +* feat(paywalls): Preboot the WebView engine when a paywall has a web_view component (#3904) via Álvaro Brey (@AlvaroBrey) + +### 🔄 Other Changes +* refactor(ads): expose Outcome from the reward-verification poller (#3883) via Peter Porfy (@peterporfy) +* ci(danger): fail PRs that grow a suppression baseline (#3982) via Álvaro Brey (@AlvaroBrey) +* Report public API changes on PRs and in the SDK API feed (#3976) via Álvaro Brey (@AlvaroBrey) +* feat(ads): expose AdTracker API for reward-verification events (#3892) via Peter Porfy (@peterporfy) +* feat(ads): wire-encode reward-verification events (#3891) via Peter Porfy (@peterporfy) +* feat(ads): add reward-verification event data types (#3890) via Peter Porfy (@peterporfy) +* Update baseline profiles (#3974) via RevenueCat Git Bot (@RCGitBot) +* feat(checkpoints): Add StoreDimensionProvider with store.country (#3969) via Toni Rico (@tonidero) +* Deserialize audience rules for rules engine evaluation (#3970) via Cesar de la Vega (@vegaro) +* refactor(checkpoints): Reuse CustomVariableValue for checkpoint custom variables (#3960) via Toni Rico (@tonidero) +* feat(checkpoints): Evaluate checkpoint custom variables as custom.* dimensions (#3949) via Toni Rico (@tonidero) +* build: apply the AGP 9 config migrations that already work on AGP 8 (#3963) via Álvaro Brey (@AlvaroBrey) +* build: move baseline profiles to the plugin's default source dir (#3931) via Álvaro Brey (@AlvaroBrey) +* refactor(checkpoints): Add DeviceDimensionProvider (#3943) via Toni Rico (@tonidero) + ## 10.16.2 ## RevenueCat SDK ### 🐞 Bugfixes diff --git a/docs/index.html b/docs/index.html index 2b9f9689b5..2727f45dd9 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,7 +1,7 @@ - + diff --git a/examples/CustomEntitlementComputationSample/gradle/libs.versions.toml b/examples/CustomEntitlementComputationSample/gradle/libs.versions.toml index d7cce9777d..56445c7d75 100644 --- a/examples/CustomEntitlementComputationSample/gradle/libs.versions.toml +++ b/examples/CustomEntitlementComputationSample/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] agp = "8.13.2" kotlin = "1.8.22" -purchases = "10.17.0-SNAPSHOT" +purchases = "10.17.0" androidxCore = "1.10.1" [plugins] diff --git a/examples/MagicWeather/gradle/libs.versions.toml b/examples/MagicWeather/gradle/libs.versions.toml index a5374419a5..6fd22b14b0 100644 --- a/examples/MagicWeather/gradle/libs.versions.toml +++ b/examples/MagicWeather/gradle/libs.versions.toml @@ -2,7 +2,7 @@ agp = "8.13.2" androidxNavigation = "2.6.0" kotlin = "1.9.0" -purchases = "10.17.0-SNAPSHOT" +purchases = "10.17.0" lifecycle = "2.6.1" androidxCore = "1.10.1" diff --git a/examples/MagicWeatherCompose/gradle/libs.versions.toml b/examples/MagicWeatherCompose/gradle/libs.versions.toml index 1db5c57ce8..a79cfd6abe 100644 --- a/examples/MagicWeatherCompose/gradle/libs.versions.toml +++ b/examples/MagicWeatherCompose/gradle/libs.versions.toml @@ -2,7 +2,7 @@ agp = "8.13.2" androidxNavigation = "2.5.3" kotlin = "1.8.22" -purchases = "10.17.0-SNAPSHOT" +purchases = "10.17.0" lifecycle = "2.5.0" androidxCore = "1.10.1" diff --git a/gradle.properties b/gradle.properties index 5c91221df3..1862d4b508 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,7 +13,7 @@ #Fri Mar 31 10:31:20 PDT 2023 GROUP=com.revenuecat.purchases -VERSION_NAME=10.17.0-SNAPSHOT +VERSION_NAME=10.17.0 POM_DESCRIPTION=Mobile subscriptions in hours, not months. POM_URL=https://github.com/RevenueCat/purchases-android diff --git a/purchases/src/main/kotlin/com/revenuecat/purchases/common/Config.kt b/purchases/src/main/kotlin/com/revenuecat/purchases/common/Config.kt index 72bbd5091e..367d2e3132 100644 --- a/purchases/src/main/kotlin/com/revenuecat/purchases/common/Config.kt +++ b/purchases/src/main/kotlin/com/revenuecat/purchases/common/Config.kt @@ -8,5 +8,5 @@ import com.revenuecat.purchases.api.BuildConfig public object Config { public var logLevel: LogLevel = LogLevel.debugLogsEnabled(BuildConfig.DEBUG) - internal const val frameworkVersion = "10.17.0-SNAPSHOT" + internal const val frameworkVersion = "10.17.0" } diff --git a/test-apps/sdksizetesting/gradle/libs.versions.toml b/test-apps/sdksizetesting/gradle/libs.versions.toml index 2248113e84..23e43989a0 100644 --- a/test-apps/sdksizetesting/gradle/libs.versions.toml +++ b/test-apps/sdksizetesting/gradle/libs.versions.toml @@ -8,7 +8,7 @@ espressoCore = "3.7.0" lifecycleRuntimeKtx = "2.10.0" activityCompose = "1.12.2" composeBom = "2024.09.00" -purchases = "10.17.0-SNAPSHOT" +purchases = "10.17.0" emergeGradlePlugin = "4.4.0" [libraries]