I will be a bit harder to convince then. 1 MCPackage = N RPackage doesn't 
strike me as any better than 1 MCPackage = 1 RPackage with tags, apart from 
performance issues. Remember that I was using option 1 in depth and hitting 
bugs, but not that much.

My opinion is that you don't really know what went wrong with option 1, except 
the implementation became unmanageable. So, I expect option 2 to be hardly 
better, sadly. And, as it promises breaking existing configurations, it will be 
a lot more fun !

By the way, if you enlarge the vision with RPackage, and think about the size 
of the overall system and how it has evolved a lot since the class categories 
of the beginning of Smalltalk, then your option 2 is, for me, already obsolete. 
You need more levels than the two you are promising with option 2. Scrolling 
throught thousands of categories is not fun; having packages which add hundreds 
of methods as an extension to a class is clearly not scalable and manageable. 
And scrolling through hundreds of package isn't either (or are you all working 
on 30" screens ? I'm not.).

>That just don't work. If we remove monticello from SA, monticello doesn't know 
>what changed and needs to >reconstruct every time its state... which also 
>means that monticello gui cannot be updated either.

This is wrong, since RPackageOrganizer, being aware of the changes, could 
update monticello and maintain a coherent view. It would have made the 
situation a tiny bit better.

Thierry
________________________________________
De : [email protected] 
[[email protected]] de la part de Esteban Lorenzano 
[[email protected]]
Date d'envoi : vendredi 7 septembre 2012 22:37
À : [email protected]
Objet : Re: [Pharo-project] RE :  RPackage,     Monticello and the removal of 
PackageInfo

Hi,

On Sep 7, 2012, at 10:08 PM, GOUBIER Thierry <[email protected]> wrote:

> It's hard to converse with that Exchange webmail. Oh, Ok, here it goes.
>
> The one MCPackage _ One RPackage I'm Ok with, I made that working with my 
> browser. But if this is the goal, then the current code is almost there and 
> option 2) isn't needed ? A RPackage (the one with tags) clearly represent 
> well what a MCPackage can be, bugs apart. (technically, it's a bit wider, 
> since extension methods may belong to any protocol, not just the *PackageName 
> : the AltBrowser consequently hides the extension name, which is interesting 
> at the GUI level and works very well).

That's not the goal... that *was* the goal. The goal is to have a good 
representation of the system with RPackage.
And no, we were not close, we were very far away to be close.
Here is the thing 1 MCPackage = 1 RPackage breaks everything. Tags are just 
tags and don't have coherence with Class Categories.
Now, 1 MCPackage = N RPackage has much more sense because stresses a lot less 
the system.

Now, what Stef is saying is that we wanted 1 to 1 correspondence, but a lot 
larger granularity... that means MCPackage matching current class categories. 
Not the opposite... but that means we need to ask everybody to adapt their 
monticello and configurations to match that vision, and that's something that 
it's not going to happen, not just because, for instance, Seaside has already 
tons of packages, do you imagine with the proposed granularity?
Also, Versionner or other tools can help to reduce the fear to that granularity 
in the future, but that's not going to happen tomorrow.

So, I'm really sorry your work was almost ported and we changed the rules... 
and I'm sorry that while looking for the best solution for everybody we some 
times break somethings, but that's are the risks of developing over bleeding 
edge :(

>
> The only thing needed is to make sure than when Monticello says X belongs to 
> MCPackage A, that RPackageOrganizer doesn't say that X belongs to RPackage B 
> instead, and the reverse. There is a fault in the RPackage introduction 
> there, which is that both RPackageOrganizer and Monticello are tracking 
> system announcements, and giving them different meanings (and RPackage 
> propagate its changes to Monticello). I am at around 10 Pharo images I had to 
> scrap because the damage done by those bugs was beyond repair.
>
> When you say force people to have one class category, one RPackage, that I do 
> not understand why. As stated above, you have everything to handle multiple 
> class categories in a RPackage. Why add a RPackageSet layer above ? Why make 
> the transition break that ?

"Force" is a strong word. We don't force anyone... RPackage is a construction 
with a purpose, not a general malleable tool. It is not a tool to create your 
package with your desired format. Is a way to represent the fact that system is 
composed from classes, who are grouped in units called categories. Categories 
are there for the human eye, not for the system... now, the common convention 
around those categories is that you see them in class declaration, as class 
categories, and in browser "packages" panel. Monticello packages, in other 
term, are conceptually collections of class categories packaged together.
So... for me is important to maintain that notion.
Now, there are two point of views:
1) you have a new completely different infrastructure (aka RPackage+tags) to 
represent system, and then adapt (I can say "force" too) all the tools to this 
(which is a lot of work). For me it looks like a hack (we have something and we 
force the tools to show other thing, just because), and also no real necessity 
to do it, or
2) we took our new packaging system and make it work in the most simplest way 
possible, focusing on maintain the system as close to the eyes as possible. 
RPackageSet represents a notion for Monticello packages grouping packages (and 
btw, it can disappear in the future, because RPackageSet responsibility belongs 
most probably to regular MCPackages), and RPackage instances who matches to 
what users expect most probably about the organization categories in their 
system.

Our error was trying to take approach 1 first... not take path approach 2 
now... and it was an error because after one month of working on that 
direction, the system was more and more unstable and chaotic and complex, and 
not what it should happens, which was the opposite.

>
> (RPackage is not, in my opinion, naming agnostic. The main bugs I found in 
> RPackage are because someone believe it is, where it isn't)

you're right, it is not.

>
> One thing I would suggest is : remove Monticello from system announcements. 
> Make RPackageOrganizer in charge of updating the MCWorkingCopy as needed 
> (have a coherent view of the system).

That just don't work. If we remove monticello from SA, monticello doesn't know 
what changed and needs to reconstruct every time its state... which also means 
that monticello gui cannot be updated either.

Esteban

>
> Thierry
>
> ________________________________________
> De : [email protected] 
> [[email protected]] de la part de Stéphane Ducasse 
> [[email protected]]
> Date d'envoi : vendredi 7 septembre 2012 21:37
> À : [email protected]
> Objet : Re: [Pharo-project] RPackage,   Monticello and the removal of 
> PackageInfo
>
> On Sep 7, 2012, at 8:44 PM, GOUBIER Thierry wrote:
>
>> Ok,
>>
>> It's good to know, because, for me, as I was / I am trying to track the 
>> changes in RPackage for the past two weeks, it seemed that RPackage was 
>> happily oscillating between 1 and 2, and, to add to the fun, backporting 
>> it's instability by creating spurious packages in Monticello on the way.
>>
>> Oh well, I almost managed to stabilize on 1), now I'll have to recode for 
>> 2). Should have stuck to PackageInfo :-(.
>
>
> you are not the only one. Benjamin too.
> Now we are fighting with it and this is just not for fun.
>
>
>> Is there a plan to have clear semantics of the different matches planned 
>> (extension categories and sub categories, class category, package 
>> sub-category) ?
>
> Yes
> Ideally we want
> one MCPackage  -        one RPackage +  tags
>
> Nothing more (no class category, no package info).
> Now we should be able to remove class categories.
> But this does not work easily because everybody would have to rewrite 
> configurationOf for their projects (since each categories would be turned 
> into a package).
> So may be when versionner will be working we can add a behavior to migrate 
> automatically configuration.
>
>
> So esteban will see if his idea is working which leads to a first class 
> category and we can in a second period go more towards
> one MCPackage - one RPackage with tagged classes.
>
>> Monticello has already set a few conventions (not case sensitive, for 
>> example) (and they are not respected by quite a few packages) and not a few 
>> of the RPackage bugs are linked to it not respecting it (i.e. some methods 
>> of package matching in RPackage are case sensitive, whereas they are not in 
>> MCWorkingCopy) ?
>
> You forgot to add "crap in PackageOrganizer."
> So yes it would be good to clean all that.
> RPackage is totally agostic to naming conventions but we have to create them 
> and support backward compatibility.
>
>
>



Reply via email to