odo icon indicating copy to clipboard operation
odo copied to clipboard

Experimental mode

Open feloy opened this issue 3 years ago • 4 comments

/kind user-story

User Story

As a user I want to define ODO_EXPERIMENTAL So that I can use experimental commands and flags

Acceptance Criteria

When ODO_EXPERIMENTAL=true

  • [ ] It should display in the header the command is running in Experimental mode
  • [ ] It should enable experimental commands, which are not visible otherwise
  • [ ] It should enable experimental flags, which are not visible otherwise

Links

  • Related Epic (mandatory): #5865

/kind user-story

feloy avatar Sep 21 '22 08:09 feloy

I'm speaking from an unpleasant experience in the past.

Having gone through one instance of moving things from experimental mode to normal mode, I humbly request not to go down this route again and find a different way of pushing new features. The myriad of if..else conditions it leads to and then removing those conditions when we want to take the feature(s) out of the experimental mode is not worth it, IMHO.

A few ideas that come to my mind:

  1. Don't cut a release till we are sure that something is baked well.
  2. Have a separate v3 branch, like we have the v2 branch. But v2 was slated for deprecation, v3 isn't/won't.
  3. Keep doing releases every sprint like we do now, but have a warning on the website and repo that informs the users about the WIP nature of things and the unreliability that it entails.

dharmit avatar Sep 21 '22 09:09 dharmit

I'm speaking from an unpleasant experience in the past.

Having gone through one instance of moving things from experimental mode to normal mode, I humbly request not to go down this route again and find a different way of pushing new features. The myriad of if..else conditions it leads to and then removing those conditions when we want to take the feature(s) out of the experimental mode is not worth it, IMHO.

I can imagine some solutions to limit the problems for code maintenance.

For example, by defining Features, which are themselves defined as Experimental or not, and use conditions on these Features

feloy avatar Sep 21 '22 11:09 feloy

For example, by defining Features, which are themselves defined as Experimental or not, and use conditions on these Features

I don't understand. :(

dharmit avatar Sep 21 '22 14:09 dharmit

I'm speaking from an unpleasant experience in the past.

Having gone through one instance of moving things from experimental mode to normal mode, I humbly request not to go down this route again and find a different way of pushing new features. The myriad of if..else conditions it leads to and then removing those conditions when we want to take the feature(s) out of the experimental mode is not worth it, IMHO.

I know that last time the situation with the experimental flag was not ideal.
We have things to learn from past mistakes. Not by not doing it. But trying to do it better.

If we want to work on bigger features, we need a mechanism like this

A few ideas that come to my mind:

  1. Don't cut a release till we are sure that something is baked well.

We want to keep doing time-based released, it works pretty well for us.

  1. Have a separate v3 branch, like we have the v2 branch. But v2 was slated for deprecation, v3 isn't/won't.

Adding new features into a separate branch can create a lot of problems when you need to merge them into the main branch. The whole release process is more complex, and it can create a lot of uncertainties.

  1. Keep doing releases every sprint like we do now, but have a warning on the website and repo that informs the users about the WIP nature of things and the unreliability that it entails.

Repo and website won't be enough, we would have to add it to the CLI (command description) as well.

kadel avatar Oct 03 '22 11:10 kadel

@feloy added one more acceptance criterion. Experimental flags/commands should not be hidden (not showing up in help, but otherwise working), but completely disabled (they should not exist in "normal" mode and error out if user tries to use them)

kadel avatar Nov 03 '22 13:11 kadel