The Trunk: Temp-update-stream-migration-dtl.1.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Temp-update-stream-migration-dtl.1.mcz

commits-2
David T. Lewis uploaded a new version of Temp-update-stream-migration to project The Trunk:
http://source.squeak.org/trunk/Temp-update-stream-migration-dtl.1.mcz

==================== Summary ====================

Name: Temp-update-stream-migration-dtl.1
Author: dtl
Time: 22 August 2015, 11:48:59.798 am
UUID: d7fb25f5-ac27-45ce-a58e-14cb6e904689
Ancestors:

The Squeak trunk development stream is transitioning to Spur image format. Existing V3 images that update from trunk need to avoid loading Spur-specific methods. Move the update preference for those images to the squeak46 maintenance repository. This class is intended to be loadedfrom a single update map in order to perform a one time update for V3 images, after which is serves no ongoing purpose. Therefore, following its initialization, it will delete itself from the system.

==================== Snapshot ====================

SystemOrganization addCategory: #'Temp-update-stream-migration'!

Object subclass: #MoveTrunkEndToSqueak46RepoForV3Images
        instanceVariableNames: ''
        classVariableNames: ''
        poolDictionaries: ''
        category: 'Temp-update-stream-migration'!

!MoveTrunkEndToSqueak46RepoForV3Images commentStamp: 'dtl 8/21/2015 19:31' prior: 0!
The Squeak trunk development stream is transitioning to Spur image format. Existing V3 images that update from trunk need to avoid loading Spur-specific methods. Move the update preference for those images to the squeak46 maintenance repository. This class is intended to be loadedfrom a single update map in order to perform a one time update for V3 images, after which is serves no ongoing purpose. Therefore, following its initialization, it will delete itself from the system.

        "MoveTrunkEndToSqueak46RepoForV3Images checkAndChangeUpdateStream"
!

----- Method: MoveTrunkEndToSqueak46RepoForV3Images class>>checkAndChangeUpdateStream (in category 'update stream migration') -----
checkAndChangeUpdateStream
        "Change the update stream preference to squeak46 if this image cannot follow Spur updates."
       
        (((self isSqueakV3
                        and: [self isUsingTrunkUpdateStream]))
                                and: [self isAtEndOfV3Updates])
                ifTrue: ["change from trunk to http://source.squeak.org/squeak46"
                        MCMcmUpdater defaultUpdateURL: 'http://source.squeak.org/squeak46'].
        ^ 'updates from ', MCMcmUpdater updateMapName, ' at ', MCMcmUpdater defaultUpdateURL
!

----- Method: MoveTrunkEndToSqueak46RepoForV3Images class>>destroy (in category 'class initialization') -----
destroy
        "Remove this class from the system after it has served its purpose"

        | category |
        category := self category.
        self removeFromSystem.
        SystemOrganization futureDo: #removeCategory: at: 1000 args: { category }
!

----- Method: MoveTrunkEndToSqueak46RepoForV3Images class>>initialize (in category 'class initialization') -----
initialize
        "This class is intended to be loaded and initialized from a specific update map. After
        performing the update stream check, remove this class from the system."

        self checkAndChangeUpdateStream.
        self destroy
!

----- Method: MoveTrunkEndToSqueak46RepoForV3Images class>>isAtEndOfV3Updates (in category 'testing') -----
isAtEndOfV3Updates
        "The update number for the Squeak 4.6 release image is 15102. Answer true if this image
        is at that level or greater."

        ^ SystemVersion current highestUpdate >= 15102!

----- Method: MoveTrunkEndToSqueak46RepoForV3Images class>>isSqueakV3 (in category 'testing') -----
isSqueakV3
        "True if this image is in a pre-Spur object format"
        | formats |
        formats := #(
                6504 "32-bit V3 with traditional float ordering"
                6505 "32-bit V3 with platform float ordering (Cog VM)"
                68002 "64-bit V3 with traditional float ordering"
                68003 "64-bit V3 with platform float ordering (mythical)"
        )..
        ^ formats includes: Smalltalk imageFormatVersion!

----- Method: MoveTrunkEndToSqueak46RepoForV3Images class>>isUsingTrunkUpdateStream (in category 'testing') -----
isUsingTrunkUpdateStream
        "True if the update preferences specify the trunk stream"

        ^ ( 'http://source.squeak.org/trunk' = MCMcmUpdater defaultUpdateURL )
                and: [ 'update' = MCMcmUpdater updateMapName ]!