[Pharo-project] [Metacello] Best strategy for ConfigurationOfPharo using #stable
Mariano Martinez Peck
marianopeck at gmail.com
Mon May 2 00:27:00 CEST 2011
> My rule of thumb for a literal version spec is that you should use the
> #stable symbolic version if the project is loosely coupled to your project
> and a specific version otherwise. OmniBrowser tends to be loosely coupled as
> you are interested in getting any old version of OmniBrowser as long as it
> functions on the platform.
> The rule of thumb for a baseline version spec is to use #stable for all
> projects (as long as the #stable version is defined), even "tightly coupled"
> projects. When the baseline version is loaded, you normally don't want to
> load the "latest code" or all of the projects that you depend upon.
> The #bleedingEdge symbolic version should be used only when the referenced
> project is part of your project family.
> When I load the baseline version for Seaside30, I want to load the
> #bleedingEdge versions of Grease, Kom, and Swazoo, because they are part of
> the project family. I absolutely don't want to load the latest OmniBrowser
> code, because who knows what you'd get...
> So for the ConfigurationOfPharo, if you followed my rule of thumb, you
> would create a baseline version and use the #stable version for all of the
> projects in the baseline. In the literal version you would use the explicit
> version, so that you'd have an explicit repeatable specification for a set
> of projects that were known to work together.
Thanks Dale for the answer....Now, putting #stable in the versionString of a
baseline make sense ONLY because the default is not #stable, isn't it ? I
mean, if ConfigurationOfPharo >> baseline13:
I am doing:
project: 'OB Dev'
as you can see, in any baseline of ConfigurationOfPharo I set a version.
Hence, if someone does ConfigurationOfPharo project version: '1.3-baseline',
then Metacello will load the DEFAULT for 'ConfigurationOfOmniBrowser' which
I guess it is not #stable becuase otherwise what you told me doesn't have
sense. So, I guess it is #bleedingEdge? I think I have already asked
this...sorry I couldn't find it in my gmail...
> Developers interested in getting the "latest released version for all
> projects" in ConfigurationOfPharo would load the baseline version and then
> get the #stable version of all the projects for their platform ... each of
> the projects was know to work by itself in an image (that's what the #stable
> designation means), but the unknown is whether all of the projects work
> together in image ... When you know that, you create a literal version of
> ConfigurationOfPharo to commemorate that set of versions....
> Without looking at the list of projects, it might still make sense to use
> #stable in the literal version, but it would be the exception to the rule
> Does this make sense to you?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Pharo-project