[squeak-dev] Updated instructions for trunk updating configurations

Bert Freudenberg bert at freudenbergs.de
Mon Feb 19 16:34:41 UTC 2018


On 18 February 2018 at 23:30, Chris Cunningham <cunningham.cb at gmail.com>
wrote:

> Based on feedback from last round of asking for feedback (and a few
> spelling fixes, too).  I have removed discussion about the method movement,
> since it *should* just work; and I've put pointers in for new topic on
> renaming classes.
>
> Plus, we'll need to document what is happening in Congifurations and
> Monticello, maybe, to make it more reasonable to use these.
>
> -----
> When and How to change the trunk update configuration:
> * First, only create a configuration when it is necessary.  Extra
> configurations slow down the update process.  BUT, missing a config that
> should be there BREAKS the update process.  Ask when not sure
> * When you are adding a new package to trunk, update the configuration
> with the new package (just because a package is in the repository does not
> mean it is loaded)
> * When you are removing a package from trunk, update the configuration to
> remove the package (and follow instructions for removing the package)
> * When you need to ensure a preamble or postscript script is run for a
> package, include the version in a new configuration (otherwise it could be
> skipped - trunk only loads the latest version of a package if specific
> versions are not called out in the update configuration)
>

​Not quite. If you need a preamble/postscript to run again, it needs to be
modified (just add a new line or space).

These scripts should be coded to be safely run multiple times. That means,
each part of the script should check if it is necessary to run, then
execute the needed system massaging. Newer additions should go on the
bottom. It's not usually needed to remove older parts of the script when
they are properly protected by these guards. But after some time passes
(let's say after a new system release) then cleaning up these scripts is a
good idea.

A modified script *​will* be run at the next update even if not mentioned
explicitly in a config map. That is because as the last step of updating,
the updater builds an implicit config map from all the latest packages in
the default repository, and loads it.


> * When you are renaming a class (follow the instructions for class
> renaming in trunk)
> * If you need to do very intricate, step by step surgery on the internals
> of Squeak itself, such as converting how contexts work, you should use a
> series of update configurations to ensure step by step applications of the
> packages so the trunk update is successful
> * When you are unsure - ask.  If no response in a reasonable time (day(s),
> or sooner if it is to patch a broken trunk process, to wait for a
> response), then go ahead a build a config.
>
> To update the configuration:
> 1. Update from trunk to the latest
> 2. Open the trunk package
> 3. Select the 'update' package, find the last update commit, and "Browse"
> it (with the button)
> 4. In the MCConfigurationBrowser, press the "Update" button and choose
> "update all from image"
> 5. If you need to add a new package, press the "Add" button and chose the
> package to add (it needs to be in your image with the right version to add
> it)
> 6. If you need to remove a package, select the package and press "Remove"
> 7. If you packages are updating that have dependencies between each other
> (say, adding an abstract class to one package, and a subclass of that
> abstract class in another package), then you will need to make sure those
> packages are in the right order.  In this case, find the package with the
> subclass, and make sure it is after the abstract classes package.  Do this
> by selecting one package and pressing the "Up" and "Down" keys until the
> packages are in the right order
> 8. Finally, save the package back to Trunk, and test out the update stream
> to ensure it works.
> -----
>
> Thanks,
> cbc
>


​Rest looks good to me, but I didn't double-check if we mentioned anything
else in the discussion.

- Bert -​
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20180219/219c6aab/attachment.html>


More information about the Squeak-dev mailing list