On 21 October 2012 22:21, Göran Krampe <goran@krampe.se> wrote:
Hey!
On 10/21/2012 04:21 PM, Stéphane Ducasse wrote:
Well we started with ezequiel to work on that. We took a look at Deltas: - any change is revertible and keeps it changes
Ezequiel was planning to show to the group what he has friday but we were busy. he will show us that tomorrow.
Ehrm?? Are you looking at Deltas? I haven't seen a single email, I would love to at least be in the "consulting loop" on this - it is my baby after all and I can answer most questions about it.
Now I would really like that we do not have hack change set, whateverâ¦. But write something new aside.
Please, please, please - if you plan to replace ChangeSet (and you *should*) - please take Deltas and run with it. It was *built* for that and I think a lot of the code in there is good code and a nice design.
And if you think some other file format is better - I don't care - that is just serialization after all. And Tirade is of course not hard coded into Deltas.
To me the one of important part of this story is to have better code reuse. I like the idea of (re)using regular smalltalk parser to do heavylifting, while rest is built on top of it. I like the idea with Deltas that you can rewind them or play them. Now the problem is that it will require substantial effort to adopt it to Pharo. Not long ago, we introduced SystemAnnouncer, and if you look at announces (SystemAnnouncement subclasses) you can see that it very closely resembling delta records. I dont think that it will be clever to have two classes per each system event, i.e. ClassRemoved and then ClassRemovedDelta. It would be much nicer to have a single one. Another thing is what to do with SystemEditor? My main problem with it, that it is gone too far, trying to resemble many Class/Behavior protocols. That means that any change/extension in Class/Behavior will have potential risk breaking SystemEditor, if we forget to sync changes there as well. And the last time we did pass on SystemEditor, if i remember, there was still no support for traits. But sure thing, i should not forget to say about what SystemEditor gives: atomic updates. My only concern is that price for having such feature is a bit too high as to me: - big and complex (okay, non-trivial ;) ) logic - a maintenance needed if we go and hack Class/Behavior/Traits etc). for the other features, i don't see significant advantage of using it over something else (less complex and more compact). -- Best regards, Igor Stasenko.