Conversation
Signed-off-by: Calum Murray <cmurray@redhat.com>
This is a breaking change as the helm toolset does not meet the requirements to be a "beta" toolset, so it was reverted to "alpha". This means that helm is now disabled by default. Signed-off-by: Calum Murray <cmurray@redhat.com>
Signed-off-by: Calum Murray <cmurray@redhat.com>
Signed-off-by: Calum Murray <cmurray@redhat.com>
| The general idea for these versions is: | ||
| - "alpha": the toolset is not guaranteed to work well | ||
| - "beta": the toolset is not guaranteed to work well, but we are evaluating how well it works | ||
| - "stable": the toolset works well, and we are evaluating how well it works to avoid regressions |
There was a problem hiding this comment.
stable: this reads (b/c of evaluating) not that stable. that sentence reads a bit vague.
| ### Beta | ||
|
|
||
| For a tool/prompt/toolset to enter into "beta", we require that there are eval scenarios. For a toolset to enter "beta", there must be scenarios | ||
| excercising all of the tools and prompts in the toolset. For individual tools and prompts to enter "beta", we only require an eval scenario |
There was a problem hiding this comment.
perhaps would be good to eventually point to concrete example for that. But generally I like the requirement of having some sort of eval (w/ our toolkit)
|
|
||
| ### GA/Stable | ||
|
|
||
| For a tool/prompt/toolset to enter into "stable", we require that 95% or more of the eval scenarios are passing. There is the same requirements as "beta" in terms of the number of evaluation scenarios. |
There was a problem hiding this comment.
I think @mrunalp was mentioning this as a threshold
| ```toml | ||
| default_toolset_version = "beta" | ||
|
|
||
| toolsets = [ "core", "config", "helm:alpha" ] |
| ServerInstructions string `toml:"server_instructions,omitempty"` | ||
|
|
||
| // Which toolset version to enable (any tools/toolsets below this will be disabled) | ||
| DefaultToolsetVersion api.Version `toml:"default_toolset_version"` |
There was a problem hiding this comment.
So, at "server level", we say stable - hence no beta (for instance) enabled.
what about explicit enablement - given a "global default" ?
E.g. something like toolsets = [ "core", "config", "helm:alpha" ] would than "win", right?
There was a problem hiding this comment.
IMO there are two parts to configuring everything:
- Which toolsets you want. In my mind, this doesn't necessarily align with how mature the toolsets are, but rather with which domains you want to interact
- What level of maturity of tools you want to use
So, if you set "core", "config", and "helm:alpha" in the current setup, what would happen is:
- The core and config toolsets would both pick up the default version of "stable". As they are both in "beta" currently, no tools would be selected
- The helm toolset would use the overridden "alpha" version, and since it is in alpha, all of it's tools would be available
I wasn't 100% convinced that the way I wrote it is the most intuititive, I just want to capture somewhere that there are those two key separate ideas in the config (which toolsets/domains, which versions you are okay with). My main thought is that enabling "stable" or "beta" should not enable all the toolsets with that version
| GetPrompts() []ServerPrompt | ||
| // GetVersion returns the version of the toolset. | ||
| // This version can be overridden by specific tools/prompts (e.g. a toolset may be beta, but have an alpha tool). | ||
| GetVersion() Version |
There was a problem hiding this comment.
for downstreaming impls we would than just set those?
| "name": "kiali_workload_logs" | ||
| } | ||
| ] | ||
| [] |
There was a problem hiding this comment.
Oh I think this is a mistake - because now by default this toolset is not enabled, there are no tools so the json snapshot update removed these.
Will switch it so these are enabled in the tests
|
Given what we discussed internally yesterday and this proposal, I'm not that sure that versioning is exactly what we want. This is how I see it:
|
Signed-off-by: Calum Murray <cmurray@redhat.com>
I think for that (downstream) certified/supported versus NOT certified is good. For upstream (here) I do see the reasoning behind the idea of coming in at a more flexible stage (e.g. alpha, beta, ga), allowing to define a set of robustness there. E.g. in some CNCF projects we had similar stage of "feature promotion". Showing how robust a (new) feature is. Which still than would fit with the term on the license. @manusa I guess you are more for a lower (or different) bar of adding toolsets, like "if it passes X % of eval it can come in" ? Should all be enabled by default? (Which of course can be changed on the downstream too) |
|
From discussions today the idea (as I understand it) is:
The idea then for new toolsets is that they will not be certified by default, until they get evals. For existing toolsets we can add a |
| ### Beta | ||
|
|
||
| For a tool/prompt/toolset to enter into "beta", we require that there are eval scenarios. For a toolset to enter "beta", there must be scenarios | ||
| excercising all of the tools and prompts in the toolset. For individual tools and prompts to enter "beta", we only require an eval scenario |
There was a problem hiding this comment.
type excercising -> exercising
| case "beta": | ||
| tmp = VersionBeta | ||
| case "ga", "", "stable": | ||
| tmp = VersionGA |
There was a problem hiding this comment.
minor issue:
The empty string "" is grouped with "ga" and "stable", so if a user has a config like:
default_toolset_version = ""
it silently becomes VersionGA instead of the default of VersionBeta
This PR adds toolset versioning and versioning guidelines to the server.
A couple key points for reviewers: