Skip to content

test(expo): reuse the e2e native build when only JS changed - #10384

Merged
wobsoriano merged 2 commits into
mainfrom
rob/expo-e2e-native-fingerprint
Oct 23, 2026
Merged

wobsoriano merged 2 commits into
mainfrom
rob/expo-e2e-native-fingerprint

Conversation

@wobsoriano

Copy link
Copy Markdown
Member

Description

Expo's fingerprint in SDK 58 reports native packages as package sources, which the e2e CLI could not read. Every run then fell back to hashing the whole fixture lockfile, so the kept native build missed whenever any npm package changed, and each Version packages update rebuilt the app natively. The CLI now reads a package source by its name and version, so the native build is reused when only JS changed.

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 🐛 Bug fix
  • 🌟 New feature
  • 🔨 Breaking change
  • 📖 Refactoring / dependency upgrade / documentation
  • other: CI

@vercel

vercel Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
clerk-js-sandbox Ready Ready Preview Oct 23, 2026 3:41pm UTC
swingset Ready Ready Preview Oct 23, 2026 3:41pm UTC

Request Review

@coderabbitai

coderabbitai Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
📥 Commits

Reviewing files that changed from the base of the PR and between 28689ed and a4ed6a0.

📒 Files selected for processing: 3
  • .changeset/brown-dogs-hide.md
  • integration/expo-native/src/native-build.ts
  • integration/expo-native/test/native-build.test.ts
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

Included review availability: This review used your included allowance. 9 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 10 reviews per hour.

📝 Walkthrough

nativeSources now includes package sources with string names and versions in the normalized native fingerprint input. The Expo native-build tests add an expo-secure-store package source and verify that changing its reported version changes the native build ID. The changeset file gains two Markdown horizontal-rule delimiters.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~8 minutes

Possibly related PRs

  • clerk/javascript#10380: This PR changes the Expo E2E workflow to compute native build IDs and reuse matching cached artifacts, which connects to this PR’s native fingerprint parsing.
Merge Risk: ⚪ Minimal · up to a4ed6

No actionable merge-blocking risk was identified; the change is mergeable with normal checks.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 2 files. (1 skipped: 1 … Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Title check Passed The title names the change: the e2e CLI now reuses the Expo native build when only JS changed. It has a conventional scope prefix and fits the summary, which shows the CLI reading Expo SDK 58 fingerpr…
Description check Passed The description explains the problem. Expo SDK 58 fingerprints report native packages as package sources, which the e2e CLI could not read. The CLI now reads them by name and version, so the native bu…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title names the change: the e2e CLI now reuses the Expo native build when only JS changed. It has a conventional scope prefix and fits the summary, which shows the CLI reading Expo SDK 58 fingerprint package sources by name and version. The title does not mention the Secure Store fixture or the test change, but the main change is covered.

Full details: Description check

Explanation

The description explains the problem. Expo SDK 58 fingerprints report native packages as package sources, which the e2e CLI could not read. The CLI now reads them by name and version, so the native build is reused when only JS changed. This matches the native-build.ts change and the fixture test updates. The checklist is mostly unmarked and does not report pnpm test or pnpm build results, but the description is related to the changeset.

Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 2 files. (1 skipped: 1 unsupported.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Linked repositories: Some configured repositories could not be included in this review. Cross-repository analysis may be incomplete. Please check linked-repository access and settings.

Comment @coderabbitai help to get the list of available commands.

@changeset-bot

changeset-bot Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: a4ed6a0

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 0 packages

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@pkg-pr-new

pkg-pr-new Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@10384

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@10384

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@10384

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@10384

@clerk/electron

npm i https://pkg.pr.new/@clerk/electron@10384

@clerk/electron-passkeys

npm i https://pkg.pr.new/@clerk/electron-passkeys@10384

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@10384

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@10384

@clerk/expo-biometrics

npm i https://pkg.pr.new/@clerk/expo-biometrics@10384

@clerk/expo-google-signin

npm i https://pkg.pr.new/@clerk/expo-google-signin@10384

@clerk/expo-native-components

npm i https://pkg.pr.new/@clerk/expo-native-components@10384

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@10384

@clerk/express

npm i https://pkg.pr.new/@clerk/express@10384

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@10384

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@10384

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@10384

@clerk/mosaic

npm i https://pkg.pr.new/@clerk/mosaic@10384

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@10384

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@10384

@clerk/react

npm i https://pkg.pr.new/@clerk/react@10384

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@10384

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@10384

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@10384

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@10384

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@10384

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@10384

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@10384

commit: a4ed6a0

@wobsoriano
wobsoriano enabled auto-merge (squash) October 23, 2026 15:42
@wobsoriano
wobsoriano disabled auto-merge October 23, 2026 15:43
@wobsoriano
wobsoriano merged commit fbb674f into main Oct 23, 2026
128 of 130 checks passed
@wobsoriano
wobsoriano deleted the rob/expo-e2e-native-fingerprint branch October 23, 2026 17:26

This branch was successfully deployed

2 active deployments
Preview – swingset — a4ed6a01 Deployed Oct 23, 2026 by vercel[bot]
Preview – clerk-js-sandbox — a4ed6a01 Deployed Oct 23, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants