Java's modules rock? (was Re: election details *PLEASE READ*)

Bert Freudenberg bert at freudenbergs.de
Tue Mar 13 10:42:31 UTC 2007


On Mar 13, 2007, at 10:27 , Andrew Tween wrote:

> For example, ShoutMonticello enables Shout in Monticello, and  
> overrides
> MCTool>>textMorph: to force it to use MorphicTextEditor default ,  
> rather than
> PluggableTextMorph.
>
> Similarly, ShoutOmniBrowser, overrides MCDefinitionPanel>>morph to  
> force the use
> of MorphicTextEditor default, instead of OBPluggableTextMorph.
> [...]
> They are distributed as .mcz files, on SqueakMap and SqueakSource,  
> mainly for
> convenience.

Indeed, "if you know what you are doing" this is one of the two ways  
you can handle this at the moment. The advantage of using a package  
that overrides something in another package is that the original  
package does not get "dirty", it can still be updated, and you can  
maintain the patch separately - but this is usually more than  
outweighed by the horrible mess you get when the clever system fails,  
which is more often the case than not.

The other way is to just save your own version of the original  
package, and then remember to only ever "merge" upstream versions.  
The problem with this is that it's hard to still produce a clean new  
upstream version from your locally modified package - since MC is  
snapshot-based it does not know which patches belong to your local  
branch and should not be published.

> They could just as easily be some changesets, downloadable from a
> Wiki page, or whatever. In that case would they still be  
> 'packages', or just
> 'patches'?

That would be the worst of both worlds - but surely works, you just  
have to manually reapply the change after upgrading the package.

- Bert -





More information about the Squeak-dev mailing list