Task #1893
closed
StrategyChoice: allow strategy versioning
Added by Junxiao Shi over 9 years ago.
Updated over 9 years ago.
Description
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.
- Status changed from New to In Progress
- Estimated time changed from 3.00 h to 2.00 h
- Status changed from In Progress to Code review
- % Done changed from 0 to 100
Management protocol StrategyChoice needs an update on strategy-choice/set
command:
- 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.
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:
/strategy/P/Q
/strategy/P/Q/%FD%03
/strategy/P/Q/R/%FD%01
/strategy/P/Q/R/%FD%02
The following will happen:
/strategy
selects nothing
/strategy/P/Q/R/S
selects nothing
/strategy/P/Q
selects 1 because exact match has priority
/strategy/P/Q/R
selects 4 because it's the latest version
/strategy/P
selects 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
- Status changed from Code review to Closed
Management protocol StrategyChoice page is updated. Its implementation will be in a separate Task.
- Blocks Task #1972: strategy-choice/set: return versioned strategyName added
Also available in: Atom
PDF