The Trunk: ReleaseBuilder-cmm.107.mcz

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

The Trunk: ReleaseBuilder-cmm.107.mcz

commits-2
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.' ] ]!


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: ReleaseBuilder-cmm.107.mcz

Frank Shearar-3
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

Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: ReleaseBuilder-cmm.107.mcz

Chris Muller-3
> 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.