what's the diff of channel vs release channel?

Hi, we’ve recently trying to upgrade our pipeline from expo build to eas build.
It seems the 2 services are quite different, and releaseChannel is no longer supported as an option flag in eas-cli.
We try to find this specific topic in expo docs & migrations guide but couldn’t find anything relevant, so the two questions we have are:

  1. How exactly is channel diff from releaseChannel?
  2. Assuming they are different, how do we now dynamically generate releaseChannel now that it’s no longer available as a cli option?

If you’re upgrading from expo build to eas build, you do not have to also upgrade to EAS Update at the same time. EAS Build supports both releaseChannel for Classic Updates and channel for EAS Update. I’d recommend upgrading to EAS Build, make sure everything is working as you’d like it while keeping your updates setup the same, and then you can upgrade to EAS Update after that. You can use Classic Updates with EAS Build by setting the releaseChannel in your eas.json file (see the configuration options here).

Once you’re ready to upgrade to EAS Update, then you would switch to using the channel configuration. Channels are like release channels in the respect that they tell a build where to look for updates, but are different in the respect that, you publish updates to “branches” which are then assigned to the channel, so you can tell a channel to start checking for updates on a new branch without having to publish again. We have some deployment patterns for EAS Update described here, some of which include branches that are named for pull requests (and therefore, dynamically generated in a sense), which can then be promoted to a channel, so they’re picked up by a build.

Hi there,
Thank you so much for the quick reply & the explanation!!
My project is already configured for eas update so I can no longer do expo publish, going all-in now :sweat_smile:

So I’ve got a follow-up question, that when I install the app straight from the build (using the QR code), the app shows the correct channel value (which means the eas.json was configured correctly)… BUT if I run expo update & then open my app from Expo Go, then the channel value is always empty/null, is this known issue or something missing on my end?

I basically just access channel value like this

import { channel } from 'expo-updates' // expo-updates@v0.14.7 on SDK46

The QR code is pointing to a specific update, rather than a channel in general. The channel from expo-updates I believe is read from the app itself, so it’s reading what is embedded in your build. When you’re opening an update from Expo Go, there’s no channel embedded in the app itself.

I see, so it’s not a bug I guess :ok_hand:
thank you for your quick response!!

1 Like

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.