As you explain it, I understand RPackage is nothing more than a cache
maintained by virtue of SystemAnnoucements.
That's a huge effort for a small revolution.
I'm sure there are other goals behind, or were there postponed due to MC?
aMCPackage is a set of RPackages whose name beginsWith: aMCPackage name
A well known mess with MC is when aMCPackageA name beginsWith: aMCPackageB name,
then aMCPackageA is included into aMCPackageB
As long as, 1 RPackage = 1 category exactly, there is no such mess
with RPackage, a class belongs to a single RPackage.
Extension methods are less clear, and seem those in protocols that
beginsWith: ('*' , aRPackage name)
Possible mess this time
aRPackageA name beginsWith: aRPackageB name
the methods will belong to several RPackage?
Now if I create protocols '*MyOwnCruft-core' then a new category
('MyOwnCruft'), I believe the organizer or the new RPackage must scan
all existing protocols to catch extension methods... Does that happen?
Nicolas
2012/9/7 Esteban Lorenzano <[email protected]>:
> 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.
>>
>>
>>
>
>