MetacelloToolBox peek

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

MetacelloToolBox peek

Dale Henrichs
Here's a peek at some MetacelloToolBox scripts to give you an idea of
what I am aiming at:

This script creates a config for the 'Example' project, creates a
baseline method and opens version 1.0 for development:

        (MetacelloToolBox configurationNamed: 'Example')
                createBaselineMethod: 'baseline10:'
                        forVersion: '1.0-baseline'
                        repository: 'http://www.squeaksource.com/ProfStef'
                        projects: #('Shout')
                        packages: #('ProfStef-Core' 'ProfStef-Tests')
                        dependencies:
                                {('ProfStef-Core' -> #('Shout')).
                                ('ProfStef-Tests' -> #('ProfStef-Core'))};
                openVersion: '1.0'
                  forDevelopmentInMethod: 'version10:'
                        basedOnVersion: '1.0-baseline'

The second example updates the package version for development version
1.0:

        (MetacelloToolBox configurationNamed: 'Example')
                updatePackageSpecsForVersion: '1.0'

The final example releases version 1.0:

        (MetacelloToolBox configurationNamed: 'Example')
                releaseVersion: '1.0'

In each of these examples the configuration is validated before and
after the updates, to reveal configuration issues early in the process
(validate often:). So these high level tasks are constructed from a
set of lower level tasks, so script writers have a high level api and
tool writers can have a finer level of control ...

I plan to add support for updating/declaring symbolicVersions, saving
configurations/packages, archival, etc.... I basically want to have
scripts for doing all of the tasks that normally do in managing
configs for GLASS and Seaside ... I've worked with configurations long
enough that I finally have an inkling about what the tool API should
look like:)

Anyway, I plan to push out another #earlyAccess version before the
weekend if you want to take a peek at the toolbox stuff...

Let's see, there are quite a few new things floating around:

  symbolicVersions
  configuration validation
  metacello tool box
  I've even added version diffs (mcz and project version comparison)

Dale