On Fri, Sep 28, 2012 at 3:42 PM, Dale Henrichs <[email protected]> wrote:

>
>
> ----- 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.
>
>
Thanks Dale for the explanation. Now I understand.


> 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
>
>


-- 
Mariano
http://marianopeck.wordpress.com

Reply via email to