chore(renovate): hold react and the reanimated pair to the Expo SDK line - #311
Merged
Conversation
react and react-dom were open to bumps the SDK does not sanction. The workspace is hoisted, so #305's react 19.2.8 for apps/docs alone won the root node_modules and ran under jest beside the SDK's react-test-renderer 19.2.0, failing three of four suites on the peer assert. react-native-reanimated, react-native-worklets and react-native-screens were only held on the example app side. #306 took reanimated 4.5.3 in packages/modal, which installed a second copy beside the example app's 4.2.3 and asserted on its worklets 0.10.x - 0.11.x peer against the SDK's 0.7.4. Moving worklets up to match fails expo-doctor instead.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two Renovate PRs are red on
react-native-magic-modal#testfor the same reason: each moves a version the Expo SDK picks. This adds the rules that stop them being re-proposed. #305 and #306 get closed against it.react and react-dom
renovate.jsonalready holds react-native, and the shared preset already disables react-test-renderer on the grounds that react's version is the SDK's to pick. The preset's Expo rule never lists react or react-dom though, so they stayed open.The workspace is hoisted, so whichever react wins the root
node_modulesis the one packages/modal tests against, whatever any single package.json says. #305 only editsapps/docs/package.json:@testing-library/react-native asserts the two match, so three of four suites died before running:
react-test-renderer can't follow it up, since the preset disables it.
Holding react costs nothing here. apps/docs is a static export (
next build, thenserve out), and 19.2.1 through 19.2.8 are all Server Components and Server Actions changes.reanimated, worklets and screens
The example-app file rule only reaches
examples/kitchen-sink/package.json, so Renovate kept proposing these on the packages/modal side alone. #306 took reanimated 4.5.3 there, which installed a second copy beside the example app's 4.2.3 and then asserted on its own peer:Moving worklets up to 0.10.3 to satisfy it turns the suites green, 36/36. expo-doctor then fails:
Worklets is a native module and isn't on the example app's
expo.install.excludelist, only reanimated and gesture-handler are. So 4.5.3 cannot land while the repo is on SDK 55. react-native-screens sits in the same position and is held for the same reason.Verification
Clean
node_modules, rebased on main:node_modules/.binin all three workspaces, exit 0. Planted an unused var first to confirm it exits 1.renovate-config-validatoraccepts the fileConfig only, so no E2E and no release.
Proof, including both reproductions and the worklets experiment: magic-modal/305-306