Hi there,
I am trying the new Pharo 7 and a very elemental question arose. What I should use to manage my code? Monticello Metacello Iceberg It seems I am quite confused regarding the role of each of these tools. Documentation, I am afraid, does not apply to Pharo 7. The chapters covering Monticello and Metacello in Deep in to Pharo, are still relevant in Pharo 7? Please I need profound and detailed help on this. Thanks so much best Ichi -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html |
Administrator
|
Monticello - packages code
Metacello - dependency management between packages Iceberg - GUI for loading code via git Currently, the cutting edge is to use Iceberg to load Metacello projects which load Monticello packages, although there are other options (e.g. old-school MCZ repos instead of git) Ichiseki wrote > The chapters covering Monticello and Metacello in Deep in to Pharo, are > still relevant in Pharo 7? Yes, but... Configurations are for applying Metacello to MCZ repos. These are replaced by Baselines for git. The API is very similar, but Config #baseline *methods* are reified into Baseline *objects* ----- Cheers, Sean -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
Cheers,
Sean |
Sean,
Thank you very much for your prompt response. Do you know, or have a reference to, some documentation on Iceberg? Pharo is evolving really fast, that is a good thing. But it seems that the community is formed, largely, by developers of the Pharo ecosystem and not actual plain vanilla users. I am not saying that as criticism or in any chance, trying to smear the work of the community. What I am trying to say is that I found that the whole system is become extremely complex for a non-core developer. I am trying to jump from pharo 5 to 7 and believe me, it is getting really hard to. thanks so much again best ichi -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html |
In reply to this post by Ichiseki
On Sat, 1 Dec 2018 at 09:05, Ichiseki <[hidden email]> wrote: Hi there, Metacello Iceberg It seems I am quite confused regarding the role of each of these tools. Monticello is a "package manager" that defines which package that classes below to. One way to consider it, is that it consists of three main parts. 1. An internal representation - all the "MC" classes that make up its in-Image representation. 2. An external representation - a number of different repo systems, traditionally MCZ on a http server, but also disk-based MCZ files, but also disk-based Filetree files and recently git based repos. Use Spotter to search for "MC' the drill in and search for "Repo" 3. A tool for managing the link the previous two - showing what packages are available in repos, their commit messages, which packages are loaded and their ancestry. Iceberg is a tool that replaces part 3 of Monticello when working with Git repos. IIUC, Part 1 remains very much operational and Iceberg makes use of it. Sorry I'm not clear on how Iceberg overlaps Part 2. Metacello is a package "dependency manager". It defines which packages depends on which packages. Before git, it also had to manage its own versioning and both these were defined together in a ConfigurationOfxxxxx. But with git branching and tagging, storing a ConfigurationOfxxxxx means its versioning info is at best redundant, and at worst confusing and contradictory. Like the saying... "man with one watch knows the time, man with two watches is never sure." So the ConfigurationOfxxxx was trimmed down to a BaselineOfxxxxx. Now I haven't played with BaselineOf's yet myself, but my understanding is that in summary, in Pharo 7 you should use a git repo with Iceberg, with BaselineOfxxxx's stored in that git repo. ConfigurationOf's may still have some role in linking to older Monticello repos, but sorry I'm not sure on that. cheers -ben Documentation, I am afraid, does not apply to Pharo 7. |
Best documentation I have seen is this one: On Sat, Dec 1, 2018 at 11:20 AM Ben Coman <[hidden email]> wrote:
|
Free forum by Nabble | Edit this page |