[squeak-dev] The Trunk: ReleaseBuilder-mt.200.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Sep 25 08:40:17 UTC 2019


Marcel Taeumel uploaded a new version of ReleaseBuilder to project The Trunk:
http://source.squeak.org/trunk/ReleaseBuilder-mt.200.mcz

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

Name: ReleaseBuilder-mt.200
Author: mt
Time: 25 September 2019, 10:40:18.380838 am
UUID: 27babed0-e564-3247-ae21-049b92db4129
Ancestors: ReleaseBuilder-mt.199

Minor tweaks for constructing MVC->Morphic in the release.

=============== Diff against ReleaseBuilder-mt.199 ===============

Item was changed:
  Object subclass: #ReleaseBuilder
  	instanceVariableNames: ''
  	classVariableNames: 'DeferredTask NextMajorVersion NextMinorVersion NextTask QAndA'
  	poolDictionaries: ''
  	category: 'ReleaseBuilder'!
  
+ !ReleaseBuilder commentStamp: 'mt 9/25/2019 09:30' prior: 0!
- !ReleaseBuilder commentStamp: 'mt 6/22/2016 18:08' prior: 0!
  I'm the script that prepares a trunk image for release.
  
  Just do "ReleaseBuilder doNextStep" repeatedly until the next release is done.
  
  For the final release step:
+ - If you want to try it locally, change #releaseLocally to return true.
+ - Most of the code operates (read-only) on the #buildRepository, which is usually the trunk. For releases, there is a #releaseRepository, to which some package versions will be copied from trunk.!
- - If you want to try it locally, change #localBuild to return true.
- - Most of the code operates (read-only) on the build repository, which is usually the trunk. For releases, there is a release repository, to which some package versions will be copied from trunk.!

Item was removed:
- ----- Method: ReleaseBuilder class>>addMVCParentProject (in category 'scripts - support') -----
- addMVCParentProject
- 	"The home project is a single Morphic project. Let the home project have a
- 	parent MVC project as the root of the project tree. The MVC project supports
- 	emergency debugging in the event of unrecoverable Morphic problems, and
- 	will fall back on the traditional emergency evaluator if MVC debugging fails.
- 	If MVC is not installed in the image, then do nothing."
- 
- 	(Smalltalk hasClassNamed:#MVCProject) ifTrue: [ | cls |
- 		cls := Smalltalk classNamed: #MVCProject.
- 		((Project topProject) perform: #isMVC)
- 			ifFalse: [(cls new name: 'The root project') beTopProject ] ].
- !

Item was removed:
- ----- Method: ReleaseBuilder class>>checkCurrentProjects (in category 'scripts - support') -----
- checkCurrentProjects
- 
- 	Project current isMorphic ifFalse: [
- 		Warning signal: 'The current project is not Morphic. Please create a new Morphic project, enter it, and restart the release building process.'].
- 	
- 	Project allProjects size
- 		caseOf: {
- 			[ 1 ]  -> [ self addMVCParentProject ] .
- 			[ 2 ] -> [ ((Project current parent) perform: #isMVC) ifFalse: [ Warning signal: 'Parent of the home project should be an MVC project.' ]  ] }
- 		otherwise: [ Warning signal: 'There should be one home Morphic project with a parent MVC project for fallback debugging.' ] .
- 	
- 	"Avoid strange drawing issues."
- 	Project current world allMorphsDo: [:m | m removeProperty: #errorOnDraw].!

Item was changed:
  ----- Method: ReleaseBuilder class>>configureDesktop (in category 'scripts') -----
  configureDesktop
  	"Open tools, multimedia content, etc."
  
  	self setDisplayExtent: 1024 @ 768.
  	self setProjectBackground: Color darkGray.
  	(UserInterfaceTheme named: 'Squeak') apply.
  	
  	self deleteAllWindows.
  	self deleteAllOtherMorphs.
  
+ 	"Avoid strange drawing issues."
+ 	Project current world allMorphsDo: [:m | m removeProperty: #errorOnDraw].
+ 
  	"Replace docking bar instance in case its code has changed."
  	Project current removeMainDockingBar.
  	TheWorldMainDockingBar updateInstances.!

Item was added:
+ ----- Method: ReleaseBuilder class>>configureProjects (in category 'scripts') -----
+ configureProjects
+ 	"Set up the desired configuration of projects, which might be a single project, multiple projects..."
+ 	
+ 	| homeProject rootProject |
+ 	homeProject := Project current.
+ 	rootProject := homeProject.
+ 	
+ 	homeProject isMorphic ifFalse: [
+ 		Warning signal: 'The current project is not Morphic. Please create a new Morphic project, enter it, and restart the release building process.'].
+ 	
+ 	"The home project is a single Morphic project. Let the home project have a parent MVC project as the root of the project tree. The MVC project supports emergency debugging in the event of unrecoverable Morphic problems, and will fall back on the traditional emergency evaluator if MVC debugging fails. If MVC is not installed in the image, then do nothing."
+ 	Project current removeAllOtherProjects.
+ 	(Smalltalk classNamed: #MVCProject)
+ 		ifNil: [Warning signal: 'MVC must be installed in the release image.']
+ 		ifNotNil: [:mvc | rootProject := (mvc new name: 'The root project')].
+ 
+ 	self
+ 		assert: homeProject isTopProject;
+ 		assert: rootProject isTopProject not.
+ 
+ 	rootProject beTopProject.
+ 
+ 	self
+ 		assert: rootProject isTopProject;
+ 		assert: homeProject isTopProject not.
+ 	
+ 	self
+ 		assert: rootProject subProjects size = 1;
+ 		assert: homeProject parent == rootProject;
+ 		assert: rootProject isMVC.!

Item was removed:
- ----- Method: ReleaseBuilder class>>ensureMorphicTopProject (in category 'scripts - support') -----
- ensureMorphicTopProject
- 
- 	Project current isMorphic ifFalse: [
- 		Warning signal: 'The current project is not Morphic. A new Morphic project will be created and entered. Please restart the release building process after that.'.
- 		MorphicProject new enter "current process terminates after this"].!

Item was changed:
  ----- Method: ReleaseBuilder class>>prepareEnvironment (in category 'preparing') -----
  prepareEnvironment
  	"Prepare everything that should be done for a new image build. Clear caches, passwords, etc."
- 	"ReleaseBuilder prepareNewBuild"
  	
  	| balloon |
  	
  	self
  		clearCaches;
+ 		configureProjects;
- 		checkCurrentProjects;
  		configureTools;
  		setPreferences;
  		configureDesktop.
  	
  	balloon := self getBalloonForm. "Get now because later the file might be missing."
  	DeferredTask := [
  		self openWelcomeWorkspacesWith: balloon.
  		PreferenceWizardMorph open].
  	
  	"If you save-and-quit the image after calling #prepareEnvironment, ensure that the next image startup will be fast."
  	Project current world doOneCycle.!



More information about the Squeak-dev mailing list