Chris Muller uploaded a new version of ReleaseBuilder to project The Trunk:
http://source.squeak.org/trunk/ReleaseBuilder-cmm.107.mcz ==================== Summary ==================== Name: ReleaseBuilder-cmm.107 Author: cmm Time: 18 January 2014, 5:20:36.277 pm UUID: 6b317f48-4ad8-4fcf-a8d6-299a8166b54b Ancestors: ReleaseBuilder-cwp.106 prepareNewBuild to clean desktop, ensure clean packages and up-to-date docking bar properties. =============== Diff against ReleaseBuilder-cwp.106 =============== Item was removed: - ----- Method: ReleaseBuilder class>>cleanPackages (in category 'scripts') ----- - cleanPackages - "Force-load the packages to ensure the image has what Trunk says it should." - MCWorkingCopy allManagers do: [:wc | - FileStream stdout nextPutAll: ('Cleaning {1}\' withCRs format: {wc packageName}). - wc ancestors size = 1 ifFalse: [ - self error: 'Package must have single parent: ', wc packageName]. - wc modified: true. "make sure actual diff is performed" - [(MCRepository trunk versionWithInfo: wc ancestors first) load] - on: Warning do: [:w | w resume]].! Item was added: + ----- Method: ReleaseBuilder class>>configureDesktop (in category 'private') ----- + configureDesktop + self deleteAllWindows. + MorphicProject initialize. + "Replace docking bar instance in case its code has changed." + Project current removeMainDockingBar. + TheWorldMainDockingBar updateInstances! Item was added: + ----- Method: ReleaseBuilder class>>deleteAllWindows (in category 'private') ----- + deleteAllWindows + (SystemWindow + windowsIn: ActiveWorld + satisfying: + [ : window | true ]) do: + [ : window | [ window makeClosable; delete ] + on: ProvideAnswerNotification + do: [ : noti | noti resume: true ] ]! Item was removed: - ----- Method: ReleaseBuilder class>>openWelcomeWorkspaces (in category 'private') ----- - openWelcomeWorkspaces - TheWorldMainDockingBar instance - showWelcomeText: #squeakUserInterface - label: 'Squeak User Interface' - in: (40 @ 40 extent: 500 @ 300). - TheWorldMainDockingBar instance - showWelcomeText: #workingWithSqueak - label: 'Working With Squeak' - in: (80 @ 80 extent: 500 @ 300). - TheWorldMainDockingBar instance - showWelcomeText: #licenseInformation - label: 'License Information' - in: (120 @ 120 extent: 500 @ 300). - TheWorldMainDockingBar instance - showWelcomeText: #welcomeFutureDirections - label: 'Future Directions' - in: (160 @ 160 extent: 500 @ 300). - TheWorldMainDockingBar instance - showWelcomeText: #welcomeToSqueak - label: 'Welcome to Squeak 4.5' - in: (200 @ 200 extent: 500 @ 300)! Item was changed: ----- Method: ReleaseBuilder class>>prepareNewBuild: (in category 'scripts') ----- + prepareNewBuild: anMCRepository - prepareNewBuild: anMCRepository "ReleaseBuilderTrunk prepareNewBuild" "Prepare everything that should be done for a new image build" MCMcmUpdater updateMissingPackages: true. MCMcmUpdater enableUpdatesForAllPackages. - Workspace allInstances do: [ : each | each topView delete]. - MorphicProject initialize. TTCFont registerAll. + RealEstateAgent standardSize: 600 @ 400. - RealEstateAgent standardSize: 600@400. SystemVersion newVersion: self versionString. + SMLoaderPlus setDefaultFilters: (OrderedCollection with: #filterSafelyAvailable). + self + setDisplayExtent: 800 @ 600 ; + setPreferences ; + switchToNewRepository: anMCRepository ; + configureDesktop ; + verifyPackagesClean. - SMLoaderPlus - setDefaultFilters: (OrderedCollection with: #filterSafelyAvailable). - self setDisplayExtent: 800 @ 600; - setPreferences; - switchToNewRepository: anMCRepository; - openWelcomeWorkspaces. - self cleanPackages. Smalltalk cleanUp: true. + Environment allInstancesDo: [ : env | env purgeUndeclared ]. + Undeclared removeUnreferencedKeys. - Environment allInstancesDo: - [:env | env purgeUndeclared]. Smalltalk garbageCollect. + [ self loadWellKnownPackages "<-- 4.5 is not ready for unloaded / reloaded packages" ]. + Compiler recompileAll! - self loadWellKnownPackages. - Compiler recompileAll.! Item was added: + ----- Method: ReleaseBuilder class>>verifyPackagesClean (in category 'scripts') ----- + verifyPackagesClean + MCWorkingCopy allManagers do: + [ : wc | wc ancestors size = 1 ifFalse: [ self error: 'Package should have single ancestor for release image.' , wc packageName ]. + wc modified ifTrue: [ self error: 'Packages should be clean for release image.' ] ]! |
On 18 January 2014 23:20, <[hidden email]> wrote:
> Chris Muller uploaded a new version of ReleaseBuilder to project The Trunk: > http://source.squeak.org/trunk/ReleaseBuilder-cmm.107.mcz > > ==================== Summary ==================== > > Name: ReleaseBuilder-cmm.107 > Author: cmm > Time: 18 January 2014, 5:20:36.277 pm > UUID: 6b317f48-4ad8-4fcf-a8d6-299a8166b54b > Ancestors: ReleaseBuilder-cwp.106 > > prepareNewBuild to clean desktop, ensure clean packages and up-to-date docking bar properties. > > =============== Diff against ReleaseBuilder-cwp.106 =============== > > Item was removed: > - ----- Method: ReleaseBuilder class>>cleanPackages (in category 'scripts') ----- > - cleanPackages > - "Force-load the packages to ensure the image has what Trunk says it should." > - MCWorkingCopy allManagers do: [:wc | > - FileStream stdout nextPutAll: ('Cleaning {1}\' withCRs format: {wc packageName}). > - wc ancestors size = 1 ifFalse: [ > - self error: 'Package must have single parent: ', wc packageName]. > - wc modified: true. "make sure actual diff is performed" > - [(MCRepository trunk versionWithInfo: wc ancestors first) load] > - on: Warning do: [:w | w resume]].! > > Item was added: > + ----- Method: ReleaseBuilder class>>verifyPackagesClean (in category 'scripts') ----- > + verifyPackagesClean > + MCWorkingCopy allManagers do: > + [ : wc | wc ancestors size = 1 ifFalse: [ self error: 'Package should have single ancestor for release image.' , wc packageName ]. > + wc modified ifTrue: [ self error: 'Packages should be clean for release image.' ] ]! If I understand correctly, these do two different things: the former #cleanPackages actually ensured that all packages really were clean by forcing them to be dirty and then check their clean-ness. Sometimes I've seen packages that _looked_ clean, but only because something failed to notify the package that it had altered. #verifyPackagesClean doesn't seem to do that: it only checks packages that claim to be dirty. In theory that should be fine, except for the apparently-clean-only-not-really problem. frank |
> If I understand correctly, these do two different things: the former
> #cleanPackages actually ensured that all packages really were clean by > forcing them to be dirty and then check their clean-ness. Sometimes > I've seen packages that _looked_ clean, but only because something > failed to notify the package that it had altered. > > #verifyPackagesClean doesn't seem to do that: it only checks packages > that claim to be dirty. In theory that should be fine, except for the > apparently-clean-only-not-really problem. Okay, we should probably invoke Berts new function to make sure. Calling #prepareNewBuild with dirty packages should be a user-error. If they / it is trying to build with a dirty package I'd rather understand why and fix that than potentially throwing away a quick fix they forgot about. |
Free forum by Nabble | Edit this page |