What is a baseline?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

What is a baseline?

Alexandre Bergel-5
Hi!

Is it okay to say that a baseline is a method defined in a configuration (i.e., a class having its name beginning with 'ConfigurationOf') that contains the pragma #version: ?

I first though the method name could be used for this (i.e., if it begins with 'baseline'), but some are using a baseline default and minimal.

ConfigurationOfMetacello is the only instance I see that contains a baseline with #versions:imports:
E.g.,
baseline10beta18: spec
        <version: '1.0-beta.18-baseline' imports: #('1.0-beta.17-baseline')>

So, what is the rule?

Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.





Reply | Threaded
Open this post in threaded view
|

Re: What is a baseline?

NorbertHartl

On 16.02.2011, at 15:01, Alexandre Bergel wrote:

> Hi!
>
> Is it okay to say that a baseline is a method defined in a configuration (i.e., a class having its name beginning with 'ConfigurationOf') that contains the pragma #version: ?
>
> I first though the method name could be used for this (i.e., if it begins with 'baseline'), but some are using a baseline default and minimal.
>
> ConfigurationOfMetacello is the only instance I see that contains a baseline with #versions:imports:
> E.g.,
> baseline10beta18: spec
> <version: '1.0-beta.18-baseline' imports: #('1.0-beta.17-baseline')>
>
> So, what is the rule?
>
Alexandre,

I'm no expert in metacello. But what how it appears to me is like that:

A version is a method that has a version pragma. The string in the pragma denotes the version. A version can be derived from another version (imports). So you can define a new version from scratch or if you have only little to change you can import and alter another version. That is how it works.

The baseline thing is a convention. Package management is always about dependencies and version numbers. A baseline usually denotes the dependencies of the individual components. It only contains version numbers from dependent projects. So loading a baseline gives you always the dependencies and the newest package versions. A version (methods that begin with 'version') imports from a baseline and sets the fixed version number for every individual package that the whole thing is made of.

hope this helps,

Norbert

Reply | Threaded
Open this post in threaded view
|

Re: What is a baseline?

Dale Henrichs
In reply to this post by Alexandre Bergel-5
On 02/16/2011 06:01 AM, Alexandre Bergel wrote:

> Hi!
>
> Is it okay to say that a baseline is a method defined in a
> configuration (i.e., a class having its name beginning with
> 'ConfigurationOf') that contains the pragma #version: ?
>
> I first though the method name could be used for this (i.e., if it
> begins with 'baseline'), but some are using a baseline default and
> minimal.
>
> ConfigurationOfMetacello is the only instance I see that contains a
> baseline with #versions:imports: E.g., baseline10beta18: spec
> <version: '1.0-beta.18-baseline' imports: #('1.0-beta.17-baseline')>
>
> So, what is the rule?
>
> Cheers, Alexandre

Alexandre,

The rule is a that a baseline version is a version whose _blessing_ is
#baseline. The name of the method is not important nor is the method
used to construct a version important whether it be done with #version:
pragma or a #version:imports: pragma.

Baseline versions are excluded from the #latestVersion list. Of course,
#lastestVersion is on it's way out.

By convention, a baseline version defines the structure of a project
including repositories, dependencies and project references. Virtually
any combination of specs are allowed in a baseline version. Validation
for a baseline version reports only errors.

You will often see baseline versions being imported into a literal
version or another baseline version with the #version:imports: pragma.

Validation for a literal version produces warnings for convention
violations such as not specifying a specific version for a package or a
project reference.

Dale
Reply | Threaded
Open this post in threaded view
|

Re: What is a baseline?

Alexandre Bergel-5
In reply to this post by NorbertHartl
> A version is a method that has a version pragma. The string in the pragma denotes the version. A version can be derived from another version (imports). So you can define a new version from scratch or if you have only little to change you can import and alter another version. That is how it works.
>
> The baseline thing is a convention. Package management is always about dependencies and version numbers. A baseline usually denotes the dependencies of the individual components. It only contains version numbers from dependent projects. So loading a baseline gives you always the dependencies and the newest package versions. A version (methods that begin with 'version') imports from a baseline and sets the fixed version number for every individual package that the whole thing is made of.

Thanks Norbert,

The subject of my email was a bit naive however.

Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.





Reply | Threaded
Open this post in threaded view
|

Re: What is a baseline?

Alexandre Bergel-5
In reply to this post by Dale Henrichs
> The rule is a that a baseline version is a version whose _blessing_ is #baseline. The name of the method is not important nor is the method used to construct a version important whether it be done with #version: pragma or a #version:imports: pragma.

Ok, excellent!

> Baseline versions are excluded from the #latestVersion list. Of course,
> #lastestVersion is on it's way out.

Yep, it makes sense.

> By convention, a baseline version defines the structure of a project
> including repositories, dependencies and project references. Virtually any combination of specs are allowed in a baseline version. Validation for a baseline version reports only errors.

ah ok!!!! Now I understand the meaning of #versions:imports: in a baseline. New repository and dependencies may be added. Avoiding to duplicate the baseline.

> Validation for a literal version produces warnings for convention violations such as not specifying a specific version for a package or a project reference.


The validation is extremely important.
I really appreciate your work. It is really to be able to do: (MetacelloToolBox validateConfiguration: ConfigurationOfMoose) explore.

Cheers,
Alexandre

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.