Edgewall Software

Opened 13 years ago

Last modified 13 years ago

#9929 closed enhancement

Pluggable Version and Milestone Sorter — at Version 2

Reported by: Carsten Klein <carsten.klein@…> Owned by:
Priority: normal Milestone:
Component: ticket system Version:
Severity: normal Keywords: fieldrefactoring
Cc: Branch:
Release Notes:
API Changes:
  • New extension points IVersionSorter and IMilestoneSorter
  • patch to both Version model and Milestone model to make use of the new sorters
  • introduction of two new components which implement default sorting behaviour for both versions and milestones
Internal Changes:

Description

The current version and milestone sorting is rather generic.

However, it fails on correctly sorting versions such as 1.0.0proto_stable and 1.0.0proto_alpha, 1.0.0alpha_stable, 1.0.0beta_proto.

These, at least in my world, should be sorted as follows

1.0.0proto_alpha 1.0.0proto_stable 1.0.0alpha_stable 1.0.0beta_stable

The same is true for milestones implementing a similar naming scheme.

What I propose is to allow the user to plug-in both sorters for milestones and versions and make this available as extension points, with the default behaviour being either hard coded into the existing components or externalized as default implementations of these interface.

I already did some work on this and the existing system seems to work, but will fail on input that does not match the sorter's production scheme, i.e. it will raise an exception thus preventing lists from being displayed. So additional work must be invested.

In addition, these sorters should also be able to reverse sort the input based on an additional parameter.

Change History (2)

comment:1 by Carsten Klein <carsten.klein@…>, 13 years ago

API Changes: modified (diff)

comment:2 by Carsten Klein <carsten.klein@…>, 13 years ago

API Changes: modified (diff)
Note: See TracTickets for help on using tickets.