StrategyChoice: allow strategy versioning
To encourage strategy renovation and improvement, strategy Names should be versioned.
Requiring every strategy to have a distinct base Name isn't good, because it affects the user's perception of the relationship between one strategy and the improved version of the same strategy.
Conceptually, when a strategy Name is given to StrategyChoice, it should match the latest version of the strategy, if multiple versions are installed.
#3 Updated by Junxiao Shi about 5 years ago
Management protocol StrategyChoice needs an update on
- the request contains a prefix of a strategy
- the response should show the versioned strategy Name (not copying from request)
This update and its implementation will be in a follow-up Task.
#4 Updated by Junxiao Shi about 5 years ago
I decide that it's too loose to allow any prefix of a strategyName to select a strategy.
Design is changed as follows:
- unversioned strategy can only be selected by its exact Name
- versioned strategy can be selected by its exact Name
- versioned strategy can be selected by its unversioned Name, and latest version is preferred
- exact match has priority
For example, if the following strategies are installed:
The following will happen:
/strategy/P/Qselects 1 because exact match has priority
/strategy/P/Q/Rselects 4 because it's the latest version
/strategy/Pselects either 1 or nothing; this is a degree of freedom for implementation, so that implementation doesn't have to determine whether a NameComponent represents a version