First I think that to let you change Gofer we should not load the latest version of Gofer but one that this released.
Second and more important. Now I'm really sad because I have the impression we will to encode this stupid naming conventions even in the package model else when people will save the code they will not be able to load it just because we relay on fucking pattern matching. Lukas could we ban that? Could gofer not match prefix. This is not a feature this is a model bug. We should not let this hacks polute everything. Else I can tell you that people will define package the way we defined them and this will break. It would be good to fix that now.
Stef
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 _______________________________________________ Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev