On 16 April 2013 09:53, Stephan Eggermont <step...@stack.nl> wrote: > Hi, > > While working with Diego on some configurations, we noticed two different > styles > of describing the latest non-baseline versions. > > In one, the versionString version of a dependency is used. > That is a defensive strategy, where you want to specify the exact version that > will be loaded (and has been tested). > > In the other the #stable version is used. That is an optimistic strategy. > This is much less brittle (but might suddenly not work anymore). > > Seaside uses defensive/mixed, while Magritte uses optimistic > > Based on what criteria should I choose which one to use (in a Pharo context)?
I'd argue that since you're declaring that a certain set of versions of packages work together, you should _always_ use explicit versions. The "optimistic" strategy leaves you vulnerable to third parties making seemingly innocuous changes that break your code. (I've been bitten by this, by making such an apparently innocuous change.) frank > Stephan & Diego