How to clone GlamorousToolkit repositories for development

To load Glamorous Toolkit in a base Pharo Image we first clone repositories and load all baselines starting from the baseline retuned by BaselineOfGToolkit>>#fullBaselineProject fullBaselineProject "Return a project for the main baseline used to load Glamorous Toolkit." ^ BaselineOfGToolkitForPharo9 gtRlProjectWithRepository: self gtoolkitRepositorySpec. .

Also to use cloner we first need to load it in a base Pharo image. For that we rely on Metacello.

Metacello new
    baseline: 'GToolkitReleaser';
    repository: 'github://feenkcom/gtoolkit-releaser:main/src';
    load.
  

Once the project is loaded we can use it to instantiate a GtRlProjectsCloner Object subclass: #GtRlProjectsCloner instanceVariableNames: 'baselineName repositoryUrlString cloneWorkflow loggersById' classVariableNames: '' package: 'GToolkit-Releaser-Cloner-Core' object.

projectCloner := GtRlProjectsCloner new.
projectCloner 
	baseline: BaselineOfGToolkit fullBaselineProject;
	repository: BaselineOfGToolkit gtoolkitRepositorySpec.
  

With cloner it is not possible to see beforehand the list of actions that will be executed, as the list of repositories to load is created at runtime by following dependencies.

One can register a logger with the cloner object that will log all actions done while cloning.

projectCloner registerMemoryLogger
  

The following snippet performs the cloning.

projectCloner execute