metacello


Package and Configuration Management for Monticello

Metacello is a package management system for Monticello that is consistent with the important features of Monticello: * Declarative modeling. A Metacello project has named versions consisting of lists of explicit Monticello package versions. Dependencies are explicitly expressed in terms of named versions of required projects. A required project is a reference to another Metacello project. * Distributed repositories. Metacello project metadata is represented as instance methods in a class therefore the Metacello project metadata is stored in a Monticello package. As a result, it is easy for distributed groups of developers to collaborate on ad hoc projects. * Optimistic development. With Monticello-based packages, concurrent updates to the project metadata can be easily managed. Parallel versions of the metadata can be merged just like parallel versions of the code base itself.

Additionally, the following three points are important considerations for Metacello:

  • Cross platform operation. Metacello must run on all platforms that support Monticello: currently Squeak, Pharo and GLASS.
  • Conditional Monticello package loading. For projects that are expected to run on multiple platforms, it is essential that platform-specific Monticello packages can be conditionally loaded.

Download instructions.


Be sure to the check out the ProfStef tutorial with step by step instructions for creating a Metacello configuration: (ConfigurationOfMetacello project version: #stable) load: #('Tutorial'). ProfStef goOn: MetacelloDevelopmentProcess. If you don't have access to ProfStef, follow these steps.


Project Information

Labels:
smalltalk monticello projectmanagement configurationmanagement Squeak Pharo GemStoneS GLASS