[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