-
Hi there! I am trying to wrap my head around the use of Versioned Channels as opposed to Versioned Build (this is more familiar for me as I am moving from Capgo). I saw this comment and some documentation that all state that Versioned Channels are the recommended approach. However I am struggling to wrap my head around exactly how to implement them. Let's say that I only want to use Live Updates for SemVer Patch releases - which is entirely reasonable, as you'd expect Minor releases to possibly contain non-HTML/CSS/JS changes such as dependency changes. My thought was that I could create a channel like
Note: This works, and the app connects to channel In my CI when I want to push a Live Update of Where this falls apart is that Channel I'd also just generally like to understand if I am thinking about the use of versioned channels in the way that you want us to think about them. And more specifically how they can be used for my scenario outlined above where only Patch SemVer releases should be applied to the app. Here are a few examples of exactly what I mean by only applying Patch SemVer releases.
That was long, and possibly hard to follow. Please let me know if I can clarify anything. We really want to move off of Capgo, and Capawesome Cloud Live Update looks like it could be the right tool for us if I can nail down the workflow a bit tighter 🙇 |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 6 replies
-
Hi @derekps, first of all, thank you very much for your feedback. It's incredibly valuable. Regarding your questions:
Usually, CI/CD environments already offer a special flag for this purpose, which can be used to ignore the error. Here is an example with GitHub Actions: - name: Create a channel on Capawesome Cloud
run: npx capawesome apps:channels:create --appId "..." --name "..."
continue-on-error: true However, if this is not a solution in your case, I can add a flag to the CLI. Just let me know.
Yes, the way you describe it would definitely work. It's important to understand that there are different approaches to using Versioned Channels. For example, many of my clients (including myself) prefer to use the version code instead of the version name for the channels. There you can use a simple number (e.g. 55) that increases by 1 with each native update and you don't have to worry about SemVer. This is also safer than the version name, as the version name can strictly speaking remain the same across different native versions. The version code, on the other hand, must be increased. In the end, it is simply a matter of setting a channel based on the native app version to prevent live updates that are not intended for this native version from reaching the device. That's what it's all about. Versioned channels are intentionally flexible so that they are not restrictive. But I realize that I should definitely create more documentation here. I will publish an update in the next few weeks with recommendations and examples. If you have any other questions, don't hesitate to get in touch. |
Beta Was this translation helpful? Give feedback.
Many customers actually do exactly this. It's pretty simple:
This way, all customers with the old app version receive a live update and are on the same level as the customers who make a native update. The customers who make a native update no longer receive the live update and that is a good thing, as they are already up to date.
Yes, some customers do that, but I also think it's better to release bug fixes as native updates in a timely manner.