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(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev