On 16 April 2013 15:11, Stephan Eggermont <step...@stack.nl> wrote: > Frank wrote: >>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.) > > Thank you. That's a clear vulnerability of the optimistic strategy. > > That sounds nice, but also means getting a change rate that is the sum > of that of all your dependencies. It is also not very nice when you are > depending on things that have known bugs you know will be fixed soon.
Why? If you use a baseline during development, you don't specify your own versions at all. It's only when you're preparing a release that you need to harden up the dependencies. Or: I'd be very surprised to see you needing to constantly update your _external_ dependencies. > What does it mean that a certain set of versions work together? > Implicit seems the assumption that #Pharo2x is #stable, and we don't talk > about the vm version or even worse the non-smalltalk dependencies. > > I don't see Metacello descriptions specifying all loaded packages. Indeed: as far as Metacello's concerned there's just #pharo20 or #squeak or whatever. But then, _usually_ you won't need to do special things for, say, Pharo 2.0 prior to some update N versus Pharo 2.0 from update N+1 onwards. (Where "2.0" is a stand-in for any not-bleeding-edge version.) frank > Stephan >