Skip to content

Migrate deprecated buildDir to layout API#3202

Merged
tonidero merged 1 commit into
RevenueCat:external/AlexanderTalledo/migrate-deprecated-build-dirfrom
AlexanderTalledo:migrate-deprecated-build-dir
Mar 11, 2026
Merged

Migrate deprecated buildDir to layout API#3202
tonidero merged 1 commit into
RevenueCat:external/AlexanderTalledo/migrate-deprecated-build-dirfrom
AlexanderTalledo:migrate-deprecated-build-dir

Conversation

@AlexanderTalledo

@AlexanderTalledo AlexanderTalledo commented Mar 9, 2026

Copy link
Copy Markdown
Contributor

Checklist

  • If applicable, unit tests
  • If applicable, create follow-up issues for purchases-ios and hybrids

Motivation

The project.buildDir property has been deprecated in Gradle because it relies on "eager" evaluation, which can slow down the builds and cause issues in multi-module projects. The modern replacement is the Layout API, which uses "lazy" properties to ensure the build path is only resolved when actually needed. Therefore, configuration time and build reliability is improved.

Description

Migrate deprecated buildDir to DirectoryProperty from Layout API.

Changes

  • Replaced deprecated buildDir by new layout.buildDirectory

Testing

  • Verified that all affected modules successfully build after migration.
  • Executed modified tasks independently to verify that behave as expected.

Note

Low Risk
Low risk build-script-only change that updates path resolution for clean and Compose compiler report output; potential issues would be limited to build output locations or task configuration.

Overview
Replaces deprecated project.buildDir/rootProject.buildDir usages with the Gradle Layout API (layout.buildDirectory) to avoid eager build directory evaluation.

Updates the root clean task and the ui/revenuecatui Compose compiler metrics/report output path (and simplifies the Kotlin compile task type reference via KotlinCompile import).

Written by Cursor Bugbot for commit b578fac. This will update automatically on new commits. Configure here.

@AlexanderTalledo AlexanderTalledo requested a review from a team as a code owner March 9, 2026 17:29
@tonidero tonidero changed the base branch from main to external/AlexanderTalledo/migrate-deprecated-build-dir March 11, 2026 13:07

@tonidero tonidero left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Again, thank you so much for updating this! Will be part of the next release 👍

@tonidero tonidero merged commit a77487e into RevenueCat:external/AlexanderTalledo/migrate-deprecated-build-dir Mar 11, 2026
1 check passed
github-merge-queue Bot pushed a commit that referenced this pull request Mar 11, 2026
…ted by @AlexanderTalledo (#3212)

<!-- Thank you for contributing to Purchases! Before pressing the
"Create Pull Request" button, please provide the following: -->

### Checklist
- [x] If applicable, unit tests
- [x] If applicable, create follow-up issues for `purchases-ios` and
hybrids

### Motivation
The `project.buildDir` property has been deprecated in Gradle because it
relies on "eager" evaluation, which can slow down the builds and cause
issues in multi-module projects. The modern replacement is the Layout
API, which uses "lazy" properties to ensure the build path is only
resolved when actually needed. Therefore, configuration time and build
reliability is improved.

### Description
Migrate deprecated `buildDir` to `DirectoryProperty` from Layout API.
#### Changes
- Replaced deprecated `buildDir` by new `layout.buildDirectory`
#### Testing
- Verified that all affected modules successfully build after migration.
- Executed modified tasks independently to verify that behave as
expected.

Contributed by @AlexanderTalledo in #3202

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk build-script maintenance change that only affects Gradle task
configuration and output paths. Potential impact is limited to build
tooling behavior if any consumers relied on the old `buildDir` string
paths.
> 
> **Overview**
> Replaces deprecated Gradle `buildDir` usage with the lazy
`layout.buildDirectory` API.
> 
> This updates the root `clean` task to delete
`rootProject.layout.buildDirectory`, and adjusts `ui/revenuecatui`’s
Compose compiler report/metrics output path (and `KotlinCompile` type
import) to use `layout.buildDirectory` instead of `project.buildDir`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
a77487e. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

Co-authored-by: Alexta <8045196+AlexanderTalledo@users.noreply.github.com>
This was referenced Mar 11, 2026
github-merge-queue Bot pushed a commit that referenced this pull request Mar 12, 2026
**This is an automatic release.**

## RevenueCat SDK
### ✨ New Features
* [EXPERIMENTAL]: Beta Galaxy Store Support (#2903) via Will Taylor
(@fire-at-will)
### 🐞 Bugfixes
* Skip installation on GCP CLI in run-firebase-test (#3218) via Will
Taylor (@fire-at-will)
* Fix reduced timeouts being used for HTTP requests when a proxy URL is
configured (#3188) via Rick (@rickvdl)

## RevenueCatUI SDK
### 🐞 Bugfixes
* Fix missing ripple effect in View-based paywall wrappers (#3206) via
Toni Rico (@tonidero)
### Paywallv2
#### ✨ New Features
* Rules v0 Integration branch (#3117) via Cesar de la Vega (@vegaro)

### 🔄 Other Changes
* [Galaxy]: Add promotionEligibilities comment (#3214) via Will Taylor
(@fire-at-will)
* [EXTERNAL] Migrate deprecated buildDir to layout API (#3202)
contributed by @AlexanderTalledo (#3212) via Toni Rico (@tonidero)
* Remove automatic Claude code review workflow (#3211) via Cesar de la
Vega (@vegaro)
* Remove unused convention plugin (#3195) via Toni Rico (@tonidero)
* [EXTERNAL] Integrate convention plugins into Version Catalogs (#3181)
contributed by @AlexanderTalledo (#3194) via Toni Rico (@tonidero)
* [EXTERNAL] Migrate androidx cardview dependency to version catalogs
(#3192) contributed by @AlenxanderTalledo (#3193) via Toni Rico
(@tonidero)
* Improve AdMob adapter test coverage (#3204) via Pol Miro (@polmiro)
* Bump fastlane-plugin-revenuecat_internal from `f5c099b` to `e146447`
(#3197) via dependabot[bot] (@dependabot[bot])
* Fix integration tests (#3196) via Toni Rico (@tonidero)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk release bookkeeping: version strings and deployment paths are
updated from `9.24.0-SNAPSHOT` to `9.24.0`, plus changelog/docs refresh.
Main risk is accidental publishing/docs deployment to the wrong
versioned location.
> 
> **Overview**
> Cuts the `9.24.0` release by updating all version references from
`9.24.0-SNAPSHOT` to `9.24.0` (root `.version`, `gradle.properties`, and
`Config.frameworkVersion`), and aligning sample/test app version
catalogs to consume the released artifact.
> 
> Updates documentation publishing to point at the `9.24.0` directory
(CircleCI S3 sync and `docs/index.html` redirect) and refreshes
`CHANGELOG.latest.md`/`CHANGELOG.md` with the `9.24.0` release notes.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
8e6d567. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants