Skip to content

Run metalava on galaxy module in test-galaxy job#3235

Merged
fire-at-will merged 3 commits into
mainfrom
run-metalava-on-galaxy-module
Mar 16, 2026
Merged

Run metalava on galaxy module in test-galaxy job#3235
fire-at-will merged 3 commits into
mainfrom
run-metalava-on-galaxy-module

Conversation

@fire-at-will

@fire-at-will fire-at-will commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

Description

I recently found that the Galaxy api.txt file in main is out of date, and after looking into it, found that the feature/galaxy/api.txt file is not being checked in CI.

This PR:

  • Validates the feature/galaxy/api.txt file with metalava in the test-galaxy job. I didn't add it to the existing metalava job since the Samsung IAP SDK AAR is required to build the Galaxy module, and I didn't want to add the download step to the metalava job.
  • Updates the feature/galaxy/api.txt file. GalaxyPurchasingData.Product isn't marked as experimental, but was in the api.txt file. Instead, it's covered by the @ExperimentalPreviewRevenueCatPurchasesAPI annotation on GalaxyPurchasingData.

Note

Low Risk
Low risk: mainly adds CI validation for feature/galaxy API surface and updates the checked-in api.txt; potential impact is limited to CI failures if signatures drift.

Overview
Adds CI enforcement for the Galaxy module API signature. The test-galaxy CircleCI job now runs metalavaGenerateSignatureBc8Release and fails if it would modify feature/galaxy/api.txt.

Updates Galaxy metalava configuration and the checked-in signature file. The Galaxy module sets metalava output to api.txt, and feature/galaxy/api.txt is refreshed (notably removing the experimental annotation from GalaxyPurchasingData.Product to match the source annotations).

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

@fire-at-will fire-at-will marked this pull request as ready for review March 13, 2026 19:45
@fire-at-will fire-at-will requested a review from a team as a code owner March 13, 2026 19:45

@cursor cursor Bot 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.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Comment thread .circleci/config.yml
- run:
name: Validate Galaxy API Signature with Metalava
command: |
./gradlew :feature:galaxy:metalavaGenerateSignatureBc8Release --no-daemon

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.

Metalava task name missing Defaults flavor segment

High Severity

The Gradle task name metalavaGenerateSignatureBc8Release is missing the Defaults flavor segment. The galaxy module inherits the apis flavor dimension (with defaults flavor) from the PublicLibraryConventionPlugin via configureApisFlavors(), in addition to its own billingclient dimension. All existing metalava tasks in scripts/api-dump.sh use names like metalavaGenerateSignatureDefaultsBc8Release. The correct task name here is :feature:galaxy:metalavaGenerateSignatureDefaultsBc8Release.

Fix in Cursor Fix in Web

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 believe this is fine - I ran this once without the api.txt changes, and it failed as expected (here), and then after adding the changes, ran CI again, which passed (here).

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.

Right, I think this is fine since we use missingDimensionStrategy for this module for that dimension.

@fire-at-will fire-at-will requested a review from tonidero March 13, 2026 19:53
@codecov

codecov Bot commented Mar 13, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 79.41%. Comparing base (9768055) to head (a40780b).
⚠️ Report is 4 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #3235   +/-   ##
=======================================
  Coverage   79.41%   79.41%           
=======================================
  Files         356      356           
  Lines       14342    14342           
  Branches     1958     1958           
=======================================
  Hits        11389    11389           
  Misses       2149     2149           
  Partials      804      804           

☔ 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.

@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.

Looks good!

Comment thread .circleci/config.yml
- run:
name: Validate Galaxy API Signature with Metalava
command: |
./gradlew :feature:galaxy:metalavaGenerateSignatureBc8Release --no-daemon

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.

Right, I think this is fine since we use missingDimensionStrategy for this module for that dimension.

Comment thread feature/galaxy/api.txt
@fire-at-will fire-at-will added this pull request to the merge queue Mar 16, 2026
Merged via the queue into main with commit 55fb538 Mar 16, 2026
36 checks passed
@fire-at-will fire-at-will deleted the run-metalava-on-galaxy-module branch March 16, 2026 15:30
github-merge-queue Bot pushed a commit that referenced this pull request Mar 16, 2026
**This is an automatic release.**

## RevenueCat SDK
### 🐞 Bugfixes
* Fix & Standardize Galaxy Date Parsing Edge Cases (#3216) via Will
Taylor (@fire-at-will)
* Fix addSuccessfullyPostedToken for new purchases in
PostPendingTransactionsHelper (#3239) via Facundo Menzella
(@facumenzella)
* [Galaxy]: Fix race condition when fetching Galaxy products (#3213) via
Will Taylor (@fire-at-will)
* Fixes double padding in PaywallActivity on Android 15+ when
`edgeToEdge` parameter is false (#3227) via Cesar de la Vega (@vegaro)

## RevenueCatUI SDK
### 🐞 Bugfixes
* Fix bold text not rendering in Markdown lists (#3228) via Cesar de la
Vega (@vegaro)
* Fix: Clear in-memory offerings cache on locale override to prevent
stale paywall data (#3225) via Antonio Pallares (@ajpallares)
### Paywallv2
#### ✨ New Features
* Feature: Update default paywall (#3133) via Jacob Rakidzich
(@JZDesign)
#### 🐞 Bugfixes
* Fix V2 paywall safe area in landscape mode (#3221) via Cesar de la
Vega (@vegaro)

### 🔄 Other Changes
* Run integration tests on all branches (#3242) via Toni Rico
(@tonidero)
* Migrate Firebase Test Lab jobs to CircleCI emulators (#3238) via Toni
Rico (@tonidero)
* Run metalava on galaxy module in test-galaxy job (#3235) via Will
Taylor (@fire-at-will)
* Add offering_id to custom paywall impression event (#3230) via Rick
(@rickvdl)
* Cache isAutoRenewing to detect subscription changes without
syncPurchases (#3198) via Facundo Menzella (@facumenzella)
* Bump fastlane-plugin-revenuecat_internal from `e146447` to `3e8c384`
(#3233) via dependabot[bot] (@dependabot[bot])

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk release housekeeping: version string bumps and
documentation/deployment path updates with no functional runtime logic
changes beyond the exposed version constant.
> 
> **Overview**
> Publishes the `9.26.0` release by removing `-SNAPSHOT` across
build/version metadata (root `VERSION_NAME`, `.version`,
`Config.frameworkVersion`, and sample/test app dependency pins).
> 
> Updates release documentation artifacts by adding the `9.26.0` notes
to `CHANGELOG.md`/`CHANGELOG.latest.md`, switching docs deployment in
CircleCI to sync `docs/9.26.0` to S3, and updating `docs/index.html` to
redirect to the new version.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
0a30a45. 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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants