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

commits at source.squeak.org commits at source.squeak.org
Wed Sep 25 07:28:07 UTC 2019


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

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

Name: ReleaseBuilder-mt.199
Author: mt
Time: 25 September 2019, 9:28:08.255671 am
UUID: a27499bc-3692-a540-9210-eff8f33e6c2e
Ancestors: ReleaseBuilder-mt.198, ReleaseBuilder-dtl.198

Merges ReleaseBuilder-dtl.198.

=============== Diff against ReleaseBuilder-mt.198 ===============

Item was added:
+ ----- 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 changed:
+ ----- Method: ReleaseBuilder class>>changesBetween:and: (in category 'scripts - changes') -----
- ----- Method: ReleaseBuilder class>>changesBetween:and: (in category 'scripts - support') -----
  changesBetween: startConfiguration and: endConfiguration
  	
  	| a b d |
  	a := startConfiguration.
  	b := endConfiguration.
  	d := OrderedDictionary new.
  
  	b dependencies do: [:dep |
  		| begin end finished started |
  		finished := false. started := false.
  		begin := a dependencies
  			detect: [:ea | ea package = dep package]
  			ifFound: [:x | x versionInfo]
  			ifNone: [nil].
  		end := dep versionInfo.
  		
  		d at: dep package put: OrderedDictionary new.
  		dep package workingCopy ancestry allAncestorsDo: [:ver |
  			started := started or: [(ver name findTokens: '.') last asNumber <= (end name findTokens: '.') last asNumber].
  			finished := finished or: [begin notNil and: [(ver name findTokens: '.') last asNumber <= (begin name findTokens: '.') last asNumber]].
  			started & finished not ifTrue: [(d at: dep package) at: ver put: ver message]]].
  	^ d!

Item was changed:
+ ----- Method: ReleaseBuilder class>>changesBetweenReleases (in category 'scripts - changes') -----
- ----- Method: ReleaseBuilder class>>changesBetweenReleases (in category 'scripts - support') -----
  changesBetweenReleases
  	
  	| repos configs result |
  	repos :=#(52) collect: [:ea |
  		(MCHttpRepository
  		    location: 'http://source.squeak.org/squeak', ea
  		    user: 'squeak'
  		    password: 'squeak')].
  	configs := repos collect: [:ea | ea description -> (self firstConfigurationIn: ea map: 'update')].
  	configs := configs, {(self buildRepository description -> self buildConfiguration)}.
  	
  	result := OrderedDictionary new.
  	configs overlappingPairsDo: [:c1 :c2 |
  		result
  			at: c2 key
  			put: (self changesBetween: c1 value and: c2 value)].
  		
  	^ result
  		!

Item was changed:
  ----- 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.' ] .
- 	Project allProjects size = 1 ifFalse: [
- 		Warning signal: 'There should only be one project.'].
  	
  	"Avoid strange drawing issues."
  	Project current world allMorphsDo: [:m | m removeProperty: #errorOnDraw].!

Item was changed:
+ ----- Method: ReleaseBuilder class>>confirm:orCancel:title: (in category 'scripts - ui') -----
- ----- Method: ReleaseBuilder class>>confirm:orCancel:title: (in category 'scripts - support') -----
  confirm: aString orCancel: cancelBlock title: titleString
  	"Allow questions to be answered in advance."
  	^QAndA
  		at: titleString
  		ifAbsent:
  			[Project uiManager
  				confirm: aString translated
  				orCancel: cancelBlock
  				title: titleString translated]!

Item was changed:
+ ----- Method: ReleaseBuilder class>>fileOutChangesBetweenReleases (in category 'scripts - changes') -----
- ----- Method: ReleaseBuilder class>>fileOutChangesBetweenReleases (in category 'scripts - support') -----
  fileOutChangesBetweenReleases
  	"Generate mark-down files with all commit messages by release. To be used to write release notes."
  	
  	| fileNames |
  	fileNames := OrderedCollection new.
  	
  	self changesBetweenReleases keysAndValuesDo: [:location :c |
  		fileNames add: ('commits-{1}.md' format: {(location findTokens: '/') last}).
  		FileStream forceNewFileNamed: fileNames last do: [:strm |
  		c keysAndValuesDo: [:pkg :changes |
  			strm nextPutAll: '# '; nextPutAll: pkg name; cr.
  			changes keysAndValuesDo: [:ver :msg |
  				msg linesDo: [:line | line withBlanksTrimmed ifNotEmpty: [:m |
  					(m first isDigit or: [{$*. $-} includes: m first])
  						ifTrue: [strm nextPutAll: '   ', m]
  						ifFalse: [strm nextPutAll: ' - ', m].
  					strm cr]].
  				strm nextPutAll: '------------------'; cr]]]].
  
  	self inform: 'Files written:\' withCRs, (fileNames joinSeparatedBy: String cr).!

Item was changed:
+ ----- Method: ReleaseBuilder class>>firstConfigurationIn:map: (in category 'scripts - changes') -----
- ----- Method: ReleaseBuilder class>>firstConfigurationIn:map: (in category 'scripts - support') -----
  firstConfigurationIn: repo map: map
  
  	| min versionName |
  	min := 999999999.
  	versionName := ''.
  	
  	(repo versionNamesForPackageNamed: map) do: [:nm |
  		((nm findTokens: $.) atLast: 2) asInteger in: [:versionNumber |
  			versionNumber < min ifTrue: [min := versionNumber. versionName := nm]]].
  	
  	^ repo versionNamed: versionName 
  !

Item was changed:
+ ----- Method: ReleaseBuilder class>>getBalloonForm (in category 'scripts - ui') -----
- ----- Method: ReleaseBuilder class>>getBalloonForm (in category 'scripts - support') -----
  getBalloonForm
  
  	^ (FileDirectory default fileExists: 'balloon.png')
  		ifFalse: [nil]
  		ifTrue: [Form fromFileNamed: 'balloon.png']!

Item was changed:
+ ----- Method: ReleaseBuilder class>>lastConfigurationIn:map: (in category 'scripts - changes') -----
- ----- Method: ReleaseBuilder class>>lastConfigurationIn:map: (in category 'scripts - support') -----
  lastConfigurationIn: repo map: map
  
  	| max versionName |
  	max := 0.
  	versionName := ''.
  	
  	(repo versionNamesForPackageNamed: map) do: [:nm |
  		((nm findTokens: $.) atLast: 2) asInteger in: [:versionNumber |
  			versionNumber > max ifTrue: [max := versionNumber. versionName := nm]]].
  	
  	^ repo versionNamed: versionName 
  !



More information about the Squeak-dev mailing list