Brian Brown wrote:
Hi Chris - I think you are missing one of the main points of the Universe model. Universes do not pick the "most recent version of anything. A particular universe has pointers to specific code packages, i.e. specific mcz files which represent one and only one version of that piece of code. There is nothing dynamic about it, so it is really like a freebsd port or debian package - you have to have specific version of the dependencies that port or package needs, not just the "latest".
That is *definitely* not true. The code in UUniverseBrowser>>allPackagesNeededToInstall:orIfImpossible: explicitly uses the *latest* version of a package; the basic loop goes like this:
package depends do: [ :depName | "... some code omitted for brevity ..." (universe hasPackageNamed: depName) ifTrue: [ packagesToConsider add: (universe newestPackageNamed: depName) ].
and #newestPackageNamed: does just what it says:
newestPackageNamed: name | potentials sorted | potentials _ self packagesNamed: name. sorted _ potentials asSortedCollection: [ :p1 :p2 | p1 version < p2 version ]. ^sorted last
"Guaranteed to work together" means that the author of the Universe has ostensibly tested that the specific package versions in that Universe do in fact work together. Since it is NOT grabbing "the latest code", that is a claim a Universe can make.
Given the above, how can it?
Cheers, - Andreas