-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature development branch/toggle capabilities #10192
Comments
+1 for using toggle on experimental stuff ! |
@garagatyi happy to see you follow it :) My suggestion is: start systematically but small, let's say on "experimental features toggling" would be a good problem to solve (that's what we discussed initially in fact). |
@benoitf @garagatyi . You are talking about nice things. It would be even nicer if they become more technically concrete. For instance, I may understand it in terms of Theia plugins your words as beta releases. However, from the things that Alex is mostly working, where there is no strong isolation it can means - "Lets put in production code everything that becomes compiling and call it feature-toggles" |
Actually, feature toggles allow to control whether the experimental code is enabled on production, so I see no issue here as far as it is well tested, reviewed and designed. |
I'm not sure I understand your point of discussion.
Is there anything else? |
Please, take into consideration that Feature Toggling makes acceptance (E2E) testing much more complex because we need to test behavior of system by having all possible combinations of feature flags. Ideally we will need to have separate CI QA jobs for each possible combination (multiplying on 4 types of possible Eclipse Che distribution (Singleuser or Multiuser + deployed on OCP or Docker)) to run dedicated subset of selenium tests against it. You can find more info about that point in section "Feature Toggles introduce validation complexity" of article https://martinfowler.com/articles/feature-toggles.html mentioned in description of issue. |
@skabashnyuk I was told that we need a discussion regarding usage of feature toggles, so this is the reason for the issue. I agree with the points from your last comment. |
@dmytro-ndp yes, I know about this burden and we would have to deal with that in case the code would be available to users. But since not all the flows merge code that is available to users it is up to the author of the contribution and reviewers to agree on what should be tested and how. |
@skabashnyuk I was not talking about theia plugins when saying that toggle is a real benefit as we've early feedback on features and merge small changes every time. I assume to test any feature on che on che.openshift.io using a toggle. |
@dmytro-ndp well, I do not think it is the same expectations, i.e. we hardly would plan a release with switched on experimental features. |
Feature flag capabilities would be absolutely valuable for the community and anyone involve on Eclipse Che.
That would be definitely valuable for Che moving forward. |
@gazarenkov: if user will be able to switch on some experimental feature in released version it would be better to ensure that it works correctly. |
If a user knows how to enable an experimental feature (it is good practice to have a unique toggle for a feature, so user can't enable all of them) and want to try it it's great. He will provide an early feedback. And since he enabled the feature manually it is totally clear that he is ready to face some instability to check it out. |
@dmytro-ndp yep, it would be, in ideal world ;) |
Issues go stale after Mark the issue as fresh with If this issue is safe to close now please do so. Moderators: Add |
Description
While the most widespread practice in the project for the development of a feature is to use a long-living feature branch it might not always be the best options.
Another popular solution for development of a feature is Feature toggle. Here is a great and detailed explanation of the thing, use cases, and techniques by Martin Fowler https://martinfowler.com/articles/feature-toggles.html
I thought that contributors and maintainers were free to choose a technique they prefer but figured out that we need an agreement on that here.
Personally, I and other team members struggled a lot because of lack of agreement whether we can use feature toggles or not.
Feature toggle technique can tackle a lot of use cases such as:
The text was updated successfully, but these errors were encountered: