Feature toggling

what do you think, would the various feature toggling be a valuable addition to existing CUBA mechanisms?

We are trying to follow continuous delivery approach and now looking for a convenient way to implement release toggles.

Our goal is to hide (or disable) some screens or screen’s components while staying in the mainline branch. Of course, there is a simple way to do this manually in screen controllers, but I believe this matter should not be considered as their concern, should it?

The question actualy resembles me CUBA’s constraint toggles mechanism - but this works only for actions.

Thanks in advance.

Hi Ilia
Could you please give an usage example?


Hi Mortoza,

Let’s consider the following example - your team is going to implement new functionality, let’s say, a new screen to work with orders which provides new analytic features. The work could be done in two weeks.

Because of the fact that other features you depend on are being implemented and your intention is to avoid integration phase you want to use the mainline master branch. But you don’t want to expose this screen to end-users while still have the ability to build and test you application with that new feature under development.

So you need a mechanism to hide this screen now and remove the constraint later when the feature is ready. This is what I call release toggle. In other cases it could be not a screen but rather a screen component - a new action for example.

If you are interested in the topic I would recomment to skm through this article https://martinfowler.com/articles/feature-toggles.html

This is an example for Ruby patform - https://github.com/moredip/rack-flags