----- Original Message ----- | From: "Mariano Martinez Peck" <[email protected]> | To: [email protected] | Sent: Friday, September 28, 2012 12:59:46 AM | Subject: Re: [Pharo-project] Metacello bleedingEdge question | | | | | On Thu, Sep 27, 2012 at 6:46 PM, Dale Henrichs < [email protected] | > wrote: | | | Sven, | | The versions in ConfigurationOfZTimestamp aren't quite defined | correctly ... bleedingEdge defaults to loading the latest baseline | version. A baseline version is declared by setting the blessing to | #baseline: | | spec blessing: #baseline. | | Your versions in ConfigurationOfZTimestamp are importing from the | '1-baseline' but are not changing the blessing, so Metacello doesn't | know that 1, 2, and 3 are literal versions and not baselines. So | version 3 looks like the "latest baseline version".. | | | | Dale, but baselines are supposed to mandatory have the "spec | blessing: #baseline.", right? so why would metacello think that | versions 1, 2, and 3 are baselines instead of versions?
Mariano, Short answer is that literal versions are defined by importing from the baseline, so the literal version inherits the blessing from the baseline. Therefore you have to specify a blessing of #development or #release in the literal version to distinguish it from the baseline. Long answer is... For loading purposes, it actually doesn't matter what the blessing is ... In Metacello, if a package spec has a `file` specified, then the `file` is loaded. if the `file` is not specified then the latest version of the mcz file is loaded ... By convention, when we define baseline versions we don't specify the `file` for the packages. By convention when we define literal versions we do specify the `file` for the packages. The expression: spec package: 'Example-Core' with: 'Example-Core-dkh.25' defines the `file` for the 'Example-Core' package spec to be 'Example-Core-dkh.25'. The blessing is used as an hint by Metacello when using the helper functions like #bleedingEdge or #latestVersion that implement functionality based on the conventions. #bleedingEdge is defined as the latest version with a #baseline blessing. #latestVersion is defined as the latest version whose blessing is neither #baseline nor #development. Versions with a #broken blessing are excluded from consideration... Dale
