Publishing on Monticello
stéphane ducasse
ducasse at iam.unibe.ch
Fri Sep 16 12:06:05 UTC 2005
On 16 sept. 05, at 14:57, Martin Wirblat wrote:
> Andreas Raab wrote:
>
>
>> Michaël Piel wrote:
>>
>>
>>> You can also use the "override" method to do that. put your
>>> changed methods in a category named "*<YourPackageName>-
>>> <originalCategoryName>-override". Thus, These changed methods
>>> will be put as *Extensions in your package but the original
>>> package will not appear as modified in the monticello browser
>>> (wich is interesting if you made this package a dependency of
>>> yours). And finally, if you unload your package the orignal methods
>>> you changed will be restored.
>>>
>>>
>> Generally speaking this is an evil thing to do. In my experience
>> (which is plenty by now) having overrides typically points to
>> either a bug you have to fix or an inflexibility (for some
>> extension of yours) in the original design. Both are better solved
>> by keeping a modified version of the original package rather than
>> using overrides. Personally, by now I really think it would be
>> better if MC wouldn't support overrides at all.
>> Cheers,
>> - Andreas
>>
>>
>
> Keeping a modified version of the original package. What does that
> mean?
>
> For publishing e.g. on SM you then would have to publish the
> modified version of the original package, too. It is probably big
> and has nothing to do with your application. As soon as the
> original changes, the modified version had to be synchronized. All
> that because of one changed method? For publishing packages it
> should be of course tried by all means to not override anything,
> but if this is not possible some more elegant method seems to be
> needed.
>
> For private use this may not look much different. For instance, I
> am regularly "fixing some inflexibilities of the official image"
> before I use it, by overriding some things of the UI and perhaps
> other things. Is that better done by creating some big modified
> versions of original packages just because of a few changed
> methods? When the next image - or worse the next interim update -
> comes out, I would have to sort out my few changes from the
> possibly many official changes applied to the package in the meantime.
>
> As long as you are developing a master image, it is the right way
> to create modified versions of original packages. They immediately
> become the new originals;) This kind of work is wonderfully
> supported by Monticello with its many merging facilities.
> Nonetheless, if you want to develop a second master *partly*
> synchronized with another master line, there will be much work
> waiting for you, accumulating over time...
>
I agree but overrides can be nasty also with load order.
By the way, if you have fixes that you want to see moved into the
next release. Send them
> For all other purposes that want to derive from a master but want
> to develop with the master (and that is the standard case), some
> sort of "delta functionality" is needed. This delta should be as
> smoothly as possible addable to the next version of the master,
> because this work has to be done manifold (by the millions of the
> future, that are going to use Squeak:)
>
> Monticello seems to me not being so well suited for this task.
> Either it should be accompanied by a module system like the one of
> Henrik, or perhaps it is sufficient that it will be extended with
> this delta functionality.
>
> In case of overridden methods I would like to see the module or
> source code management system being able to inform me if the
> original method has been changed (or removed) since I replaced it.
> Just to check if it has a newer or older date than my replacement
> is not enough here, because I could have written my replacement
> before or after the birthday of the new official method.
>
Yes this would be nice.
>
> Regards,
> Martin
>
>
>
More information about the Squeak-dev
mailing list
|