Task #1893
closed
StrategyChoice: allow strategy versioning
Added by Junxiao Shi over 10 years ago.
Updated about 10 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