Project

General

Profile

Task #1893

StrategyChoice: allow strategy versioning

Added by Junxiao Shi about 5 years ago. Updated about 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Tables
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
2.00 h

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.


Related issues

Blocks NFD - Task #1972: strategy-choice/set: return versioned strategyNameClosed

History

#1 Updated by Junxiao Shi about 5 years ago

  • Status changed from New to In Progress
  • Estimated time changed from 3.00 h to 2.00 h

#2 Updated by Junxiao Shi about 5 years ago

  • Status changed from In Progress to Code review
  • % Done changed from 0 to 100

#3 Updated by Junxiao Shi about 5 years ago

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.

#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:

  1. /strategy/P/Q
  2. /strategy/P/Q/%FD%03
  3. /strategy/P/Q/R/%FD%01
  4. /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

#5 Updated by Junxiao Shi about 5 years ago

  • Status changed from Code review to Closed

Management protocol StrategyChoice page is updated. Its implementation will be in a separate Task.

#6 Updated by Junxiao Shi about 5 years ago

  • Blocks Task #1972: strategy-choice/set: return versioned strategyName added

Also available in: Atom PDF