[ET Trac] [Einstein Toolkit] #241: Thorns should be able to specify implementation versions, and other thorns should be able to depend on those

Einstein Toolkit trac-noreply at einsteintoolkit.org
Wed Jan 26 13:09:02 CST 2011


#241: Thorns should be able to specify implementation versions, and other thorns
should be able to depend on those
-------------------------+--------------------------------------------------
 Reporter:  knarf        |       Owner:     
     Type:  enhancement  |      Status:  new
 Priority:  minor        |   Milestone:     
Component:  Cactus       |     Version:     
 Keywords:               |  
-------------------------+--------------------------------------------------
 Cactus thorns implement 'implementations', and other thorns can then
 depend on particular implementations being present. However, quite often
 those are updated, and incompatibilities occur. Usually this is resolved
 by the developer in both thorns - the implementing and the using thorn.
 However, a user might just update one of them, and Cactus would not catch
 this error. Thus, I suggest to think about, and implement how to:

 - specify implementation versions
   e.g. IMPLEMENTS: Cactus (4.0)
   The version string within () would have be sorted in an intelligent way
 to allow
   comparisons [1].

 - specify dependencies on particular versions of other implementations
   In particular I suggest the following dependencies: depends, and
 conflicts, both
   with comparisons < <= == >= > !=
   e.g. DEPENDS: Cactus (>= 4.0)
        DEPENDS:   BadImplementation (!=3.14)   <-- this introduces a
 dependency
        CONFLICTS: BadImplementation (==3.14)   <-- this doesn't introduce
 a depencency

 [1] First the initial part of each string consisting entirely of non-digit
 characters is determined. These two parts (one of which may be empty) are
 compared lexically. If a difference is found it is returned. The lexical
 comparison is a comparison of ASCII values modified so that all the
 letters sort earlier than all the non-letters. Then the initial part of
 the remainder of each string which consists entirely of digit characters
 is determined. The numerical values of these two parts are compared, and
 any difference found is returned as the result of the comparison. For
 these purposes an empty string (which can only occur at the end of one or
 both version strings being compared) counts as zero.
 These two steps (comparing and removing initial non-digit strings and
 initial digit strings) are repeated until a difference is found or both
 strings are exhausted.

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/241>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list