-
Notifications
You must be signed in to change notification settings - Fork 327
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore(expo-passkeys): Use Expo bundled version #5402
Conversation
🦋 Changeset detectedLatest commit: b98ee95 The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
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 |
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
expo-modules-core
to support Expo SDK 52expo-modules-core
to support Expo SDK 52
expo-modules-core
to support Expo SDK 52expo-modules-core
from dependencies in favor of Expo's bundled version
!snapshot |
Hey @wobsoriano - the snapshot version command generated the following package versions:
Tip: Use the snippet copy button below to quickly install the required packages. npm i @clerk/agent-toolkit@0.0.12-snapshot.v20250320015558 --save-exact
npm i @clerk/astro@2.4.1-snapshot.v20250320015558 --save-exact
npm i @clerk/backend@1.25.4-snapshot.v20250320015558 --save-exact
npm i @clerk/clerk-expo@2.9.1-snapshot.v20250320015558 --save-exact
npm i @clerk/expo-passkeys@0.2.0-snapshot.v20250320015558 --save-exact
npm i @clerk/express@1.3.55-snapshot.v20250320015558 --save-exact
npm i @clerk/fastify@2.1.28-snapshot.v20250320015558 --save-exact
npm i @clerk/nextjs@6.12.7-snapshot.v20250320015558 --save-exact
npm i @clerk/nuxt@1.4.2-snapshot.v20250320015558 --save-exact
npm i @clerk/react-router@1.1.7-snapshot.v20250320015558 --save-exact
npm i @clerk/remix@4.5.7-snapshot.v20250320015558 --save-exact
npm i @clerk/testing@1.4.29-snapshot.v20250320015558 --save-exact |
@@ -1,4 +1,4 @@ | |||
import { requireNativeModule } from 'expo-modules-core'; | |||
import { requireNativeModule } from 'expo'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That would make the package compatible only with SDK 52, and we don't want that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm working under the assumption that this change actually makes it work with work with any Expo SDK version since our expo peerDeps is agnostic (*
) and we only reference SDK 52 in devDeps.
Also, this approach mimics the structure of a freshly scaffolded Expo module via npx create-expo-module

What do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just got a great response from the Expo team on Discord! They confirmed we should import from "expo"
instead of "expo-modules-core"
since:
expo-modules-core
is meant to be internal to Expo's infrastructureexpo
package controls the correct version ofexpo-modules-core
- We should set it up with:
- peerDependencies: expo: "^50 || ^51 || ^52" (for version ranges we want to support)
- devDependencies: expo: "" (for testing)
We're on the right track! 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Curious, why there is still documentation that uses expo-modules-core
directly.
- https://docs.expo.dev/modules/module-api/#function
- https://docs.expo.dev/modules/existing-library/#add-expo-packages-to-dependencies here they recommend
*
for peer dep.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Expo team confirmed it's an outdated doc 👍🏼
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@panteliselef Opened the PR - our youtube partner followed up with the snapshot version they tried and said it worked for them 🙏🏼
packages/expo-passkeys/package.json
Outdated
"@clerk/types": "workspace:^" | ||
}, | ||
"devDependencies": { | ||
"expo": "~52.0.0" | ||
}, | ||
"peerDependencies": { | ||
"expo": "*", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Open for discussion regarding min version. requireNativeModule
was only available since Expo SDK 49.
I think SDK 50 is good ^50 || ^51 || ^52
expo-modules-core
from dependencies in favor of Expo's bundled versionc441704
to
78998bb
Compare
!snapshot |
Hey @wobsoriano - the snapshot version command generated the following package versions:
Tip: Use the snippet copy button below to quickly install the required packages. npm i @clerk/agent-toolkit@0.0.16-snapshot.v20250327005036 --save-exact
npm i @clerk/astro@2.4.5-snapshot.v20250327005036 --save-exact
npm i @clerk/backend@1.25.8-snapshot.v20250327005036 --save-exact
npm i @clerk/chrome-extension@2.2.23-snapshot.v20250327005036 --save-exact
npm i @clerk/clerk-js@5.58.1-snapshot.v20250327005036 --save-exact
npm i @clerk/elements@0.23.8-snapshot.v20250327005036 --save-exact
npm i @clerk/clerk-expo@2.9.6-snapshot.v20250327005036 --save-exact
npm i @clerk/expo-passkeys@0.2.0-snapshot.v20250327005036 --save-exact
npm i @clerk/express@1.3.59-snapshot.v20250327005036 --save-exact
npm i @clerk/fastify@2.1.32-snapshot.v20250327005036 --save-exact
npm i @clerk/localizations@3.13.4-snapshot.v20250327005036 --save-exact
npm i @clerk/nextjs@6.12.12-snapshot.v20250327005036 --save-exact
npm i @clerk/nuxt@1.4.6-snapshot.v20250327005036 --save-exact
npm i @clerk/clerk-react@5.25.5-snapshot.v20250327005036 --save-exact
npm i @clerk/react-router@1.1.11-snapshot.v20250327005036 --save-exact
npm i @clerk/remix@4.5.11-snapshot.v20250327005036 --save-exact
npm i @clerk/shared@3.2.3-snapshot.v20250327005036 --save-exact
npm i @clerk/tanstack-react-start@0.12.2-snapshot.v20250327005036 --save-exact
npm i @clerk/testing@1.4.33-snapshot.v20250327005036 --save-exact
npm i @clerk/themes@2.2.26-snapshot.v20250327005036 --save-exact
npm i @clerk/types@4.50.1-snapshot.v20250327005036 --save-exact
npm i @clerk/vue@1.4.5-snapshot.v20250327005036 --save-exact |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds like this is the proper way to go 👍🏼
Thanks Jacek! Doing some sanity checks locally now making sure it works as we don't have a proper test yet |
a4a21df
to
0d26730
Compare
Description
Removed
expo-modules-core
from dependencies in favor ofexpo
as a peer dependency to allow broader compatibility with Expo SDK versions^50 || ^51 || ^52
.The Expo module template also imports functions directly from the
expo
module instead of theexpo-modules-core
package, which is meant to be used internally.Checklist
pnpm test
runs as expected.pnpm build
runs as expected.Type of change