> On 7 Nov 2016, at 11:28, Dale Henrichs <dale.henri...@gemtalksystems.com> 
> wrote:
> 
> 
> 
> On 11/7/16 4:52 AM, Esteban Lorenzano wrote:
>> btw this is pharo-dev discussion, redirecting there.
>> 
>> Esteban
>> 
>>> On 7 Nov 2016, at 08:50, Esteban Lorenzano <esteba...@gmail.com> wrote:
>>> 
>>> We are developing Iceberg… and I know is not enough :)
>>> Which “unifying tools” are you referring ?
> The main unifying tool is a Metacello Project Browser (or something like the 
> tODE project list).
> 
> You have a nice tool with the CatalogBrowser (modulo BaselineOf support) ... 
> but you know that already:) but once you load a Project into the image with 
> the CatalogBrowser it sort of disappears ...
> 
> There needs to be a way to see the _projects_ are loaded in the image ... 
> right now you can see the package loaded into the image, and you can see the 
> dirty packages, but the package is at too low a level
> 
> From the project browser you should be able to commit a project --- which 
> saves all of the dirty packages in the project --- in one commit for a git 
> project --- all of the dirty packages written in one operation for mcz 
> packages ...
> 
> This project browser can provide the same set of services for an mcz project 
> (ConfigurationOf) or a filetree project (BaselineOf):
>  - save
>  - load            -- this is a bit more complicated to explain (I tried at 
> the Metacello Dr. talk, but more discussion is needed)
>  - diff              -- project level diff over a collection of packages
>  - commit log -- For ConfigurationOf, list the commit history of the 
> Configuration.
>                            For a BaselineOf list the commit log for the git 
> repository
> 
> The workflow at the project level is not that different between Mcz and 
> Filetree, so it is straightforward to work with …

this is what is provided by iceberg… it still needs some work, but this is 
precisely what is supposed to do :)
(and btw, this is why I disagree with Thierry some mails below).

> 
> The unification comes because you can use one metaphor (project) to work with 
> both Mcz and Filetree ... the underlying implementation will ultimately...
> 
> The next layer of unified tools is when you look at version history, for a 
> method, you need to provide the ability to view the git commit history for 
> the method (if stored in git) or the image history ... git commit hisotry can 
> be provided at the project/package/class/method ... whereever possible the 
> equivalent mcz/git service should be provided so that the two systems are on 
> an even par …

also, this is supposed to be provided by iceberg. 

> 
> The Monticello Browser and Iceberg GUI's don't go away, because it is often 
> necessary to do work at the package level, but I think that putting focus on 
> the project is the key ingredient to success for integrating git …

Iceberg is not package-oriented. It just show 
repositories/packages/classes/methods… this is a good way to do it and I do not 
thing anything is lost like this.
You need to take a second look at Iceberg :) 

> 
> Since git repos are persistent on disk and will be shared ... it is important 
> that there be a way for developers to easily access the git repos for 
> projects that have been cloned locally but not yet loaded in the image itself 
> ... I am really struggling with getting how important this point as this is 
> the also a point that ties a Catalog Browser and Project Browser together

this is something to think… I do not get what catalog browser  can do here (but 
yes, a way to browse local repositories needs to be provided).

> 
> I've been using this approach for several years now and once you have the 
> tools and can see at a glance what's "going on in your image" it is fun to 
> work in a mixed environment ... all of this frustration that is bubbling on 
> the list is largely due to not having these missing tools and underlying 
> support --- I think …

I do not think we are so far from your vision. I think you did not get it 
Iceberg right… please, take a second look :)
now… is true that now everything you say is already done… but this is general 
orientation :)

Esteban

ps: all of this is *clearly* not pharo-users but pharo-dev discussion, let’s 
move there.

>>> 
>>> I have followed very close your TOdE development… in a moment I was 
>>> planning a migration of it for pure-pharo, just… lack of time as always and 
>>> then later we started iceberg.
> Yes, I have intended to do a port of tODE to Pharo, but of time is the killer 
> :)
>>> now, we are in the process of defining a process ;) who works for pharo and 
>>> is the moment to build the bridges we need, but in general I think that 
>>> staying "with a foot in two boats” can just work during a very short lapse 
>>> of time, after that, the stream continues going and if you do not finish 
>>> your jump into one of the boats you will be very fast in the water.
> Yes but the two boat environment will last years ... it has taken almost 5 
> years for filetree to start to be used regularly ... and with the Metacello 
> Project Browser approach the transition will not be nearly as painful, 
> besides I think that the project-centric tools set is required when work with 
> git....
>>> 
>>> What I mean is that we can help any transition, but at the end there is no 
>>> way of having a “nice, coexisting” ecosystem: we will have one OR the 
>>> other, or something that does not works at all, but we will not have 
>>> seamlessly one AND the other (which does not means people using monticello 
>>> will be forced to use git tools or vice-versa, just that you will need to 
>>> chose one… right now many (many for real) of our problems come from the 
>>> attempt of keeping our git support behaving as regular monticello…
> As I say, I think that monticello/filetree can be abstracted away at the 
> Metacello Project Browser level ... a commit of dirty packages writes all the 
> dirty packages for the project in the appropriate repository ... BaselineOf 
> are filetree and ConfigurationOf are mcz ... it doesn't take a whole lot of 
> code to smoothly handle both projects --- as I've said, I have code in tODE 
> that can be looked at for the key trickery and then re-implemented within 
> Pharo without too much trouble ...
> 
> Then the choice does not have to be made between supporting ConfigurationOf 
> and BaselineOf as both are supported ... eventually a developer may choose to 
> build an image that does not include ConfigurationOf and Monticello support 
> --- but both are needed for at least the next several years
> 
> 
>>> and that way of doing has a limit. A limit I think we already passed.
>>> 
>>> Anyway, if you can list what you think we will need for the transition, I 
>>> will be very glad to see what we can do :)
> the presentation that I made last Wednesday really covers the most critical 
> things that I think are required ... Metacello Project Browser and load specs 
> are the big ones ... presumably a Project Browser/code browser that allows 
> you to read code at the project level to augment the existing package level 
> code browsers with the commit history integrated at 
> project/package/class/method level ... project level diff tool  -- 
> multi-package diffs in one window ... and a git merge tool that does a 
> three-way merge within the image ...
> 
> Dale
> 


Reply via email to