I get the strong feeling that life cycles and channels are quite cumbersome to manage at the moment. Often I keep thinking 'What is the point of this extra step?".
For example, in the project process view, you see the life cycle defined on the top right corner. You can even choose to use a different life cycle for the process. However, during the creation of a release, you can only choose a channel, not a life cycle, a channel which is defined in the project channels, which has nothing to do with the life cycle you’ve selected because it is not a channel.
I sort of get the idea of channels, but at the moment the ui makes it a bit tricky to manage and not entirely obvious.
Plus wouldn’t it be an idea to have channels shared between projects (or at least in a project group?) sort of like variabel sets?
Thanks for getting in touch! It can be a bit hard to see the value of Channels initially as they are fairly a complex feature. However, they have many uses not directly related to Lifecycles, though they are tied to Lifecycles. Allow me to try and explain in more detail below.
The Lifecycle is not set during release, nor is it a part of the snapshot. If you wish to you can even change the Lifecycle during the middle of a release. They are used globally simply to identify where you are going to deploy to. The Channels define things like rules for packages, variables, steps and scoping. Due to this, it can only ever be at the project level. It also means that you want your Channels to be independent of any other Channels.
Channels themselves are key in managing branching deployments and different release strategies.
For example, if I was to have a Lifecycle
Dev -> Test -> Prod, I can run my deployments fine and not have any need for Channels. But what if I broke a release to
Prod somehow and I can’t wait to push through both environments to get to Dev, I could make a
Hotfix Channel with only the
Prod environment. Then I could quickly deploy Hotfixes in the case of an emergency.
Aside from letting you have multiple Lifecycle’s and versioning rules for your deployments you can use Channels to configure things such as multiple active versions of the same project, pre-releases for early builds of different projects, feature branches and much more. We have some extensive documentation that covers how Channels can be best taken advantage of and how they can help you manage different tasks.
Let me know what you think, we are always happy to answer any questions you may have here.