
metacello
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.
- Installation instructions
- Loading projects and building your own images with Metacello
- Metacello Toolbox.
- Everything you wanted to Know About Metacello (But Were Afraid to Ask)
- (gem)Stone Soup posts on Metacello
- MetacelloBrowser for Pharo
- Pharo cast: Introduction to Monticello and Metacello
- Why a Package Management System? - Torsten Bergmann provides a fairly complete use case for Metacello
- Metacello Bug Reports
- Creating a Metacello Configuration
- Tutorial
- Fetch and Record
- Determining which mcz files will be loaded
- Programmatic fetch/load
- Maintaining a secondary repository for Metacello
- Using a local directory repository
- Mailing list
- API reference
- FAQ
- Tool docs
- Pharo Metacello Configurations Repository (excellent source of example configurations)
Project Information
- License: MIT License
- 56 stars
- svn-based source control
Labels:
smalltalk
monticello
projectmanagement
configurationmanagement
Squeak
Pharo
GemStoneS
GLASS