Post

there's a lot of exciting things going on in SDK 54, but the less exciting changes will hopefully make your upgrade smoother and your everyday DX with dependencies more stable 💕 All kinds of reliability improvements land in SDK 54! small thread about those 🧵

Expo@expo.dev

𝝠 Expo SDK 54 is LIVE 🚀 ◆ React Native 0.81 ◆ Precompiled RN for iOS → faster clean builds ◆ iOS 26 Liquid Glass icons + views ◆ Android 16 target, edge-to-edge default ◆ Router v6 native tabs ◆ Updates: header overrides, progress, reload screen ◆ So much more... expo.dev/changelog/sd...

a lot of implicit deps chains are fixed. One example, if something else depends on Metro that won't break Expo in any case anymore (Pictured: @expo/metro-config's deps graph. And yes, we're also working on reducing deps continuously, more news on that soon)

we also fixed some trickier edge cases, for example: - the fallback resolver means some implicit shared deps are automatically fixed up in our Metro builds (e.g. expo-asset) - a new "supervisor worker" makes sure custom transformers can't break deps chains either github.com/expo/expo/bl...

Autolinking will also work much more like "what you see is what you get" with transitive linking for RN modules, better duplicate detection, better hoisting conflict detection, etc this also means we can safely expand our official package manager support!

Expo Autolinking is more transparent and consistent now. Both expo-doctor and the expo-modules-autolinking verify command can now consistently highlight issues with duplicate dependencies 👀🕵️ (the screenshot here shows the output that Bluesky gets for debugging, for example)

there's also an experiment that allows you to auto-resolve issues with duplicate native module dependencies or hoisting conflicts (monorepos rejoice!) ✨ flip one flag, and Expo Autolinking also applies its autolinking decisions to Expo's metro bundling

they're not necessarily wrong though. If you have deps that don't accept 19.1.0 then you should be getting an error 😄 we have notes on that in the SDK 53 logs too re. peer deps ranges on React upgrades

that's not its responsibility. It simply aligns dependencies to your Expo SDK version. Peer conflicts require your intervention. It's a developer setting a conscious and explicit restriction on their package. You need to address that restriction to make sure it's safe to override