<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>Am 12.05.2010 um 17:03 schrieb karl ramberg:</div><blockquote type="cite"><br><br><div class="gmail_quote">On Thu, May 13, 2010 at 1:17 AM, Bert Freudenberg <span dir="ltr">&lt;<a href="mailto:bert@freudenbergs.de">bert@freudenbergs.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div style="word-wrap: break-word;"><div><div>Am 12.05.2010 um 15:20 schrieb karl ramberg:</div><div class="im"><blockquote type="cite">There are some Etoy classes left in Morphic-Scripting and Morphic-Scripting tiles <br>
These should be in Etoy package, right ?<br></blockquote></div></div><div><br></div><div>Makes sense :)</div><div><br></div><div>Your update worked, if only by accident. Moving stuff from one package to another is tricky. You can see that after updating, the Morphic package is marked dirty.</div>
<div><br></div><div>It worked because in the config map, the Etoys package comes before the Morphic package. When loading your Etoys package, classes are moved to Etoys, making the Morphic package dirty. Merging the Morphic package next does not reset that dirty mark.</div>
<div><br></div><div>It would have been worse when moving the other way - then the classes would have been removed first, and then re-loaded later. That would have created obsolete instances.</div><div><br></div><div>If we ever need to, it is possible to put a "small" config map into the update stream that just updates the two packages in the right order.</div>
<div><br></div><div>Not sure how to reset the "dirty" bit of the Morphic package. One can do it in the MC browser by pressing "changes". We might put something similar into the update stream. Or fix MC upgrades to check for changes after merging ... that might be a better idea.</div>
<div><br></div><div>And here is a hint for everyone submitting MC packages: before publishing, *always* check the changes (press MC's changes button) so you are sure that only changes you want to publish are included.</div>
<br><font color="#888888"><div>
<span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Lucida Grande; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><div style="font-family: Helvetica;">
<span style="font-family: Helvetica;">- Bert -</span></div></span></div></font></div></blockquote><div><br>I saw this mess and got a little confuced :-(<br>Couldn't a preamble doit for classes moving between packages work like<br>
<br>AlignmentMorph subclass: #ViewerRow<br>&nbsp;&nbsp;&nbsp; instanceVariableNames: 'elementSymbol'<br>&nbsp;&nbsp;&nbsp; classVariableNames: ''<br>&nbsp;&nbsp;&nbsp; poolDictionaries: ''<br>&nbsp;&nbsp;&nbsp; category: 'Etoys-Scripting Tiles'&nbsp; ?<br>
<br>It would be a lot cleaner at least.<br></div></div></blockquote></div><div><br></div><div>Wouldn't help - that is exactly what happens when you load the new etoys package. Actually it would make it worse, because both Etoys and Morphic would have been marked dirty :)</div><div><br></div><div>The only real clean way would be to specify that these two packages should be loaded together. There is no good way to do this for now.</div><div><br></div><div>I wouldn't worry about it though, it's not a big issue, we just have to be aware of it. Here is a do-it to clean the dirty flag for some packages:</div><div><br></div><div><div>repo := MCRepositoryGroup default repositories&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>detect: [:r | r description = MCMcmUpdater defaultUpdateURL].</div><div>#('Morphic') do: [:pkgName |</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>workingCopy := (MCPackage named: pkgName) workingCopy.</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>(workingCopy changesRelativeToRepository: repo)</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>ifNotNilDo: [:patch | workingCopy modified: patch isEmpty not]].</div><div><br></div><div>But the right way would be to check these differences right after upgrading a package. I might add this to MCConfig.</div><div><br></div></div><div>
<span class="Apple-style-span" style="font-size: 12px; "><div style="font-family: Helvetica; "><span class="Apple-style-span" style="font-family: Helvetica; ">- Bert -</span></div><br class="Apple-interchange-newline"></span>
</div>
<br></body></html>