[Cuis-dev] [Integrated] Re: Rename class not logging to user changes
Juan Vuletich
juan at jvuletich.org
Thu Dec 5 06:41:00 PST 2019
On 12/4/2019 11:32 AM, Hernan Wilkinson wrote:
> Thank you Eric!
> I integrated it but when testing it I found that browser were not
> refreshing correctly when renaming a class, so I added a few changes
> :-) (well not a few really...)
>
> Juan, could you take a look at it? Attached is the changes file.
> You should also integrate the test changes Eric sent to
> BaseImageTests.pck.st <http://BaseImageTests.pck.st>.
>
> Cheers!
> Hernan.
>
>
> On Mon, Dec 2, 2019 at 12:06 AM Eric Brandwein
> <brandweineric at gmail.com <mailto:brandweineric at gmail.com>> wrote:
>
> Hi all,
> After a long while without doing anything about this, here's a
> ChangeSet that fixes this bug by adding in the user changes file
> the line `Smalltalk renameClassNamed: #OldClassName as:
> #NewClassName!` when a class is renamed, like it's currently being
> done when fliing out a ChangeSet. Any comments, as always, are
> very welcome.
>
> Cheers,
> Eric
>
> El vie., 5 jul. 2019 a las 14:02, Juan Vuletich via Cuis-dev
> (<cuis-dev at lists.cuis.st <mailto:cuis-dev at lists.cuis.st>>) escribió:
>
> Ok for class rename.
>
> BTW, just checked and in the current change set it gets
> recorded like:
> Smalltalk renameClassNamed: #EllipseMorph as: #TheEllipseMorph
>
> But, if I rename ivar pointBlock in HandleMorph, and then file
> out changes, I do get the detailed sequence.
>
>
> On 7/5/2019 12:35 PM, Hernan Wilkinson wrote:
>> recording the whole sequence is going to be more difficult
>> because that it is not what really happens... so those events
>> should be "artificially" created, and I think that for an
>> automatic recovery of the image that is the most used case
>> for this, it is better just to add the "rename" event. When
>> recovering it will just rename the class and then apply the
>> method changes...
>>
>> On Fri, Jul 5, 2019 at 12:20 PM Juan Vuletich
>> <juan at jvuletich.org <mailto:juan at jvuletich.org>> wrote:
>>
>> Maybe they should be recorded both ways: as ClassRename
>> and as sequence {ClassCreation. NewMethods.
>> UpdateClassReferences. OldClassRemoval}. There are some
>> reasons for wanting the sequence. One is to be able to
>> re-apply changes, or not require to be in exactly the
>> same state as when the change was created.
>>
>> If both ways are included, then the user of the file can
>> decide what s(he) prefers.
>>
>> On 7/5/2019 10:11 AM, Hernan Wilkinson via Cuis-dev wrote:
>>> Hi Eric,
>>> yeap, class rename is not being logged ... a new type
>>> of change should be created for that. If fact, it would
>>> be great to record all type of refactorings as
>>> refactorings instead of only the changes composed by the
>>> refactoring.
>>>
>>> Regarding the new change record, it should be a class
>>> rename type, not a deletion and creation of the new one
>>> because that does not happen when doing a class rename.
>>> There is an important question to answer: when loading
>>> the change record, should it rename the references too
>>> or should only do it for those that are recorded? ... if
>>> all the changes are loaded then the later should be
>>> applied but if not? I think the best option is to only
>>> rename the class and then let the other changes change
>>> the reference. (I hope this is understandable :-) )
>>>
>>> Hernan.
>>>
>>> On Fri, Jul 5, 2019 at 2:04 AM Eric Brandwein via
>>> Cuis-dev <cuis-dev at lists.cuis.st
>>> <mailto:cuis-dev at lists.cuis.st>> wrote:
>>>
>>> Hi all,
>>>
>>> Today Cuis broke because I was messing with Morphs,
>>> and I had to close the image. Unfortunately, I
>>> hadn't saved my changes, so to recover them I had to
>>> rely on the .user.changes file. I opened up the
>>> image again, and it asked me to recover changes. I
>>> selected to automatically recover them, and a
>>> strange error occurred: it told me that
>>> UndefinedObject didn't understand #removeSelector:.
>>> Digging through the ChangeList, I noticed something:
>>> the class renames were nowhere to be seen. So, what
>>> was happening is that there were some
>>> ChangeListElements that removed selectors from
>>> classes that didn't exist because they had the old
>>> names from before I renamed them.
>>>
>>> All this story is to point out that bug: the class
>>> rename isn't logging to the changes file. And I'm
>>> not really sure how to solve it quickly and cleanly;
>>> there isn't a ClassRenameChangeRecord class like
>>> there's a ClassDeletionChangeRecord, so either there
>>> should be a new kind of ChangeList record to log
>>> class renames or we should log the deletion of the
>>> class and the subsequent adding of all the methods
>>> that were previously in that class to the class with
>>> the new name. What do you think?
>>>
>>> Cheers,
>>> Eric
>>> --
>>> Cuis-dev mailing list
>>> Cuis-dev at lists.cuis.st <mailto:Cuis-dev at lists.cuis.st>
>>> https://lists.cuis.st/mailman/listinfo/cuis-dev
>>>
>>>
>>>
>>> --
>>> *Hernán Wilkinson
>>> Agile Software Development, Teaching & Coaching*
>>> *Phone: +54-011*-4893-2057
>>> *Twitter: @HernanWilkinson*
>>> *site: http://www.10Pines.com <http://www.10pines.com/>*
>>> Address: Alem 896, Floor 6, Buenos Aires, Argentina
>>
>>
>> --
>> Juan Vuletich
>> www.cuis-smalltalk.org <http://www.cuis-smalltalk.org>
>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
>> https://github.com/jvuletich
>> https://www.linkedin.com/in/juan-vuletich-75611b3
>> @JuanVuletich
>>
>>
>>
>> --
>> *Hernán Wilkinson
>> Agile Software Development, Teaching & Coaching*
>> *Phone: +54-011*-4893-2057
>> *Twitter: @HernanWilkinson*
>> *site: http://www.10Pines.com <http://www.10pines.com/>*
>> Address: Alem 896, Floor 6, Buenos Aires, Argentina
>
>
> --
> Juan Vuletich
> www.cuis-smalltalk.org <http://www.cuis-smalltalk.org>
> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
> https://github.com/jvuletich
> https://www.linkedin.com/in/juan-vuletich-75611b3
> @JuanVuletich
>
> --
> Cuis-dev mailing list
> Cuis-dev at lists.cuis.st <mailto:Cuis-dev at lists.cuis.st>
> https://lists.cuis.st/mailman/listinfo/cuis-dev
>
>
>
> --
> *Hernán Wilkinson
> Agile Software Development, Teaching & Coaching*
> *Phone: +54-011*-4893-2057
> *Twitter: @HernanWilkinson*
> *site: http://www.10Pines.com <http://www.10pines.com/>*
> Address: Alem 896, Floor 6, Buenos Aires, Argentina
Integrated. Thanks!
Cheers,
--
Juan Vuletich
www.cuis-smalltalk.org
https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
https://github.com/jvuletich
https://www.linkedin.com/in/juan-vuletich-75611b3
@JuanVuletich
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20191205/c9021f06/attachment-0001.htm>
More information about the Cuis-dev
mailing list