Beginning with SDK 40, we will be trying out an SDK beta release period for approximately one week before the final release. The beta release is an opportunity for developers to ensure that the new release does not introduce any regressions for their particular system and app configurations.
This is no substitute for rigorous internal testing, but we can only cover so much of the surface area on our own. Expo tools run on an endless variety of configurations: Node and Node package managers, macOS/Windows/Linux, Android/iOS/web across different versions and vendors in emulators and on devices, standalone apps and Expo development clients, managed and bare workflows, third-party libraries and services, and so on.
The process of releasing an SDK update after the initial release is time consuming, laborious, and potentially disruptive to developers already using the SDK for their projects. As a result, if a regression makes it into a final release we may in some cases have to delay shipping a non-critical fix until the following SDK release. If you encounter a regression during the beta release period, you can be confident that the Expo team will be available and focused on investigating, resolving, and shipping fixes during this time.
At the time of publishing this article, there is no beta release active — we will announce beta releases on our blog (Medium and dev.to) and Twitter (@expo). Once a beta release is live, participating in the beta will involve the following changes from your typical workflow.
You will be able to access an iOS client build for your device from a TestFlight Public Beta link and you will be able to install the updated client in your simulator by running expo client:install:ios --latest with the EXPO_BETA=1 environment variable set.
The Expo client app for Android will be installable for both devices and emulators with expo client:install:android --latest and EXPO_BETA=1.
Similarly, to upgrade your project you will run expo upgrade with the EXPO_BETA=1 environment variable set. Other expo-cli commands will work as expected without the environment variable or any other flags.
You will be able to access the API reference for the beta version from the version selector in the docs.
We hope that you will help us to kick the tires on our new releases during the beta release period!
You can read a more detailed description of our full release process in our open source Release Workflow document if you would like to learn more about what goes in to preparing and shipping each SDK release after all of the code has been written.