[squeak-dev] Update stream transition
eliot.miranda at gmail.com
Sat Aug 22 15:12:40 UTC 2015
Sent from my iPhone
> On Aug 22, 2015, at 7:15 AM, David T. Lewis <lewis at mail.msen.com> wrote:
> Currently we have the problem that an existing trunk image from prior
> to the Squeak 4.6 release will lock up if the user does a normal
> "update from server". A knowledgeable user can work around this, as
> with the script that Nicolas provides. But a year from now our tribal
> knowledge is likely to dissipate, so I don't really like the idea of
> having the original trunk update stream end in a frozen image.
> I think I have come up with a way to have the update stream switch
> automatically from trunk to squeak46 for existing images, see attached
> change set. The idea is to add this class into a separate package
> "Temp-update-strean-migration" in the trunk repository, and add that
> package to the last update map that worked for V3 images (I think this
> is update-eem.321.mcm, is that right?). The package loads a class that
> checks to see if the image needs to be switched from trunk to squeak46,
> and changes the update preference accordingly. It then removes itself
> from the system.
> Does this seem reasonable?
Oh yes! Looks a v good idea. The only thing I could think of was adding a preamble to trunk Kernel & System to have them error on non Sour. But your proposal above is /much/ better.
>> On Thu, Aug 06, 2015 at 10:24:31PM +0200, Nicolas Cellier wrote:
>> 2015-08-06 16:47 GMT+02:00 Chris Muller <asqueaker at gmail.com>:
>>>> We currently have the trunk update stream, which is governed by update
>>>> called 'update' in the source.squeak.org/trunk repository. This update
>>>> stream is applicable to Squeak images up to the initial release of the
>>>> Squeak 4.6 image. These are images in the non-Spur image formats (6504
>>>> or 6505 for 32-bit images, and 68002 for a 64-bit image).
>>> The .spur branch has already been collapsed onto trunk. There is no
>>> way to advance a non-spur image except through commits to the release
>>> repositories (e.g., 'squea46').
>> FYI, I advanced the non spur with attached snippet (nothing really clever).
>> "update to latest cog version but not spur..."
> | url repository updateList updater lastUpdateMap config |
> url := MCMcmUpdater defaultUpdateURL.
> repository := MCRepositoryGroup default repositories
> detect:[:r| r description = url]
> ifNone:[ | r |
> r := MCHttpRepository location: url user: '' password: ''.
> MCRepositoryGroup default addRepository: r.
> updater := [MCMcmUpdater default] ifError: [MCMcmUpdater].
> lastUpdateMap := [updater lastUpdateMap] ifError: [MCMcmUpdater classPool at: #LastUpdateMap].
> updateList := updater updateListFor: repository.
> updateList := updateList select: [:e | e key < 323].
> updateList := updater refreshUpdateMapFor: repository with: updateList.
> updateList do:[:assoc|
> ProgressNotification signal: '' extra: 'Processing ', assoc value.
> config := repository versionNamed: assoc value.
> updater updateFromConfig: config.
> lastUpdateMap at: repository description put: assoc key.
> ] displayingProgress: 'Processing configurations'.
> config ifNil: [^updater inform: 'Unable to retrieve updates from remote repository.' translated].
> config setSystemVersion.
> updater inform: ('Update completed.
> Current update number: ' translated, SystemVersion current highestUpdate).
More information about the Squeak-dev