But we do not load FameUtils? do we so why this would
have an impact.
The magic 'latest' version tricks have their drawbacks.
Gofer checks prefixes, so if you tell it to load a package named Fame
the packages Fame and FameUtil both match. Now when ordering according
to numbers to get the 'latest' version, it matters how the two
packages are ordered against each other. Before Gofer just had a
collection of strings, where Fame and FameUtil were ordered against
the number. Since Fame had a higher number the Fame package was
picked:
#( Fame.1 FameUtils.1 Fame.2 FameUtils.2 Fame.3 Fame.4 ) --> Fame.4 (ok)
Recently I introduced version objects that know how to sort
themselves. Suddenly the list was sorted with more knowledge and Gofer
ended up with a sorting like this and picked FameUtils:
#( Fame.1 Fame.2 Fame.3 Fame.4 FameUtils.1 FameUtils.2 ) -->
FameUtils.2 (wrong)
Now this is only a problem for badly named package names that overlap.
And it could be easily fixed in Gofer by selecting only the versions
that have the shortest package name:
#( Fame.1 Fame.2 Fame.3 Fame.4 ) --> Fame.4 (ok)
The ugly thing is that the hacks in Gofer start to accumulate and it
is very difficult to change anything, because suddenly everybody
starts to complain.
I am right now working on a better matching model for
exact/inexact/prefix versions, so that you can write a spec saying how
your packages are exactly named. That should solve many of the
problems. Until then I suggest that you do not just randomly load the
latest version of Gofer from my working repository, but use a fixed
version. Gofer-lr.58 for example seems to work with your code, but it
does not work well with Seaside packages.
Lukas
--
Lukas Renggli
http://www.lukas-renggli.ch