-Bonjour à tous.
On va s'intéresser à Metacello,
qui permet de charger des packages extérieurs
à votre environnement Pharo dans Pharo
en leur donnant une baseline et un lien vers un repository GitHub.
C'est ce qu'on va faire ici pour charger "Containers-Stack",
qui est un package Pharo
qui implémente une stack, donc une pile,
avec des opérations basiques de push, size, top, pop,
par exemple.
On voit dans le paragraphe "Loading"
qu'un bout de script Pharo utilise Metacello,
l'outil de chargement de packages,
avec les arguments "baseline" que je vais expliquer plus tard,
et "repository", qui est l'URL de ce repository GitHub.
On va copier ce bout de script.
On va se diriger dans notre environnement Pharo.
On peut voir dans le System Browser que si on recherche "Containers",
on n'a pas de package qui s'appelle "Containers-Stack".
On va ouvrir un playground : Tools, Playground.
On copie le code que je vous ai montré tout à l'heure,
on l'exécute en faisant "Do it", Cmd+D.
On peut voir qu'il est en train de charger la baseline
et le package.
On peut voir que nos trois nouveaux packages sont apparus.
On a notre "Containers-Stack" qui contient la classe
avec les méthodes basiques de fonctionnement de la pile,
les tests sur cette même pile, et on va avoir la baseline.
Si on regarde ce qu'il y a dans la baseline,
qui est un des arguments qu'on faisait passer
à Metacello, ici, "Containers-Stack",
on se rend compte que la baseline a une seule méthode
qui est une pragma qui s'appelle "baseline",
et qui va nous donner des spécifications de dépendance.
On va voir, par exemple, que le package "Containers-Stack"
va être chargé avec le package "Containers-Stack-Tests",
et que le package "Containers-Stack-Tests"
demande le package "Containers-Stack".
La baseline, c'est des choses que vous pouvez définir dans vos packages
pour stipuler les dépendances qui existent entre différents packages,
votre package et d'autres packages extérieurs,
pour qu'ils soient chargés au moment du package avec Metacello.
Vous avez vu comment utiliser Metacello
pour charger un repository GitHub
qui a une baseline qui a une dépendance.
Ici, ça va être les tests qui vont dépendre
du package basique "Containers-Stack".