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