Repository navigation
Conversation
…hipped binary surface The shipped surface in shipped-native-api.json comes from the latest release tags. Regenerate it with node packages/expo/scripts/generate-shipped-native-api.mjs after a release. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🦋 Changeset detectedLatest commit: 9356b1e The changes in this PR will be included in the next version bump. This PR includes changesets to release 0 packagesWhen 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 |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
@clerk/astro
@clerk/backend
@clerk/chrome-extension
@clerk/clerk-js
@clerk/electron
@clerk/electron-passkeys
@clerk/eslint-plugin
@clerk/expo
@clerk/expo-biometrics
@clerk/expo-google-signin
@clerk/expo-native-components
@clerk/expo-passkeys
@clerk/express
@clerk/fastify
@clerk/hono
@clerk/localizations
@clerk/mosaic
@clerk/nextjs
@clerk/nuxt
@clerk/react
@clerk/react-router
@clerk/shared
@clerk/tanstack-react-start
@clerk/testing
@clerk/ui
@clerk/upgrade
@clerk/vue
commit: |
The contract test now reads each native module from the latest @clerk/expo-native-components, @clerk/expo-google-signin and @clerk/expo-biometrics release tag with git, instead of a committed JSON snapshot that had to be regenerated after every release. If a tag is missing, the test fails and prints the git fetch command for it. The unit-test job checks out with depth 1 and no tags, so it now fetches those tags shallowly before the tests run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
API Changes Report
Summary
No API Changes DetectedAll packages have stable APIs with no detected changes. Report generated by Break Check Last ran on |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Description
An Expo app can get new JavaScript over the air while the user keeps the app they installed from the store. So our new JS often runs on top of an older native build. If the JS calls a native function that build doesn't have, or passes it a different number of arguments, the app breaks. #8920 and #9373 both did this.
This adds a test that catches it before merge. It covers
@clerk/expo-native-components,@clerk/expo-google-signinand@clerk/expo-biometricson iOS and Android.For each native function, the test looks at the Swift and Kotlin code in every stable release of that package, read from its git tag, and checks:
?) in the TypeScript spec, so callers have to check for it first.For example, #9373 needed to pass
proxyUrlto native. Adding a third argument toconfigurebreaks every app built on an older release, and the test now fails on it. What it does instead is keepconfigureand add an optionalconfigureWithOptions:Adding a brand new native function works the same way: mark it
?in the spec and call it with?..Nothing needs updating after a release, because the test reads the tags each time it runs. CI now fetches those tags. If one is missing, the test fails and prints the
git fetchcommand for it.Run against the code from #8920 and #9373, the test fails and names the releases each change would break. It passes on this branch.
This also fixes stale paths in
packages/expo/AGENTS.md, which still pointed at native code that moved into the three packages above.expo-passkeysisn't covered: it has no typed spec, and its iOS and Android functions differ on purpose.Checklist
pnpm testruns as expected.pnpm buildruns as expected.Type of change
🤖 Generated with Claude Code