Loader provides support for loading Metacello baselines. While it uses Metacello baselines,it has its own implementation separated from Metacello.
The main entry pont for loading a project is GtRlProjectsLoader>>#loadBaseline:fromRepository:
loadBaseline: aBaselineName fromRepository: aRepositoryLocationString
| clonedProject |
self loggers do: [ :aLogger |
aLogger startFor: GtRlClonerBaselineSignal, GtRlLoaderDirectiveActionSignal ].
[
clonedProject := self
cloneBaseline: aBaselineName
fromRepository: aRepositoryLocationString.
self
loadBaselineClass: clonedProject baselineClass
fromRepository: clonedProject repository loadSpecificationString
] ensure: [
self loggers do: [ :aLogger | aLogger stop ] ]
.
Internally the loading happens in two states:
- first, all repositories all cloned (GtRlProjectsCloner
Object subclass: #GtRlProjectsCloner
instanceVariableNames: 'baselineName repositoryUrlString cloneWorkflow loggersById'
classVariableNames: ''
package: 'GToolkit-Releaser-Cloner-Core'
)
- second, the code is loaded (GtRlProjectsLoader
Object subclass: #GtRlProjectsLoader
instanceVariableNames: 'loggersById'
classVariableNames: ''
package: 'GToolkit-Releaser-Loader-Core'
)