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

commits at source.squeak.org commits at source.squeak.org
Thu May 12 14:51:57 UTC 2016


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

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

Name: ReleaseBuilder-mt.131
Author: mt
Time: 12 May 2016, 4:51:52.306309 pm
UUID: 2adf101d-9026-1f49-a311-0a6af2533db8
Ancestors: ReleaseBuilder-mt.130

CLEAN-UP RELEASE BUILDER
- make use of latest project refactorings
- support for local release builds (enabled by default)
- add update map to release repository
- do code update during the process
- unload foreign packages (i.e. the ones not in the update map)
- provide option to re-load dirty packages automatically
- disable full-screen when setting the display extent
- automatically quit the VM after saving the build artifact

Try out local builds via "ReleaseBuilder saveAsNewRelease".

=============== Diff against ReleaseBuilder-mt.130 ===============

Item was changed:
  Object subclass: #ReleaseBuilder
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'ReleaseBuilder'!
  
+ !ReleaseBuilder commentStamp: 'mt 5/12/2016 16:50' prior: 0!
+ I'm the script that prepares a trunk image for release. For the next release version please update #releaseVersionMajor and #releaseVersionMinor.
+ 
+ Prepare and save this image as a release image via "ReleaseBuilder saveAsNewRelease."
+ If you want to save this image as the next alpha release, do: "ReleaseBuilder saveAsNextVersionAlpha."
+ 
+ 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.!
- !ReleaseBuilder commentStamp: 'fbs 5/2/2013 22:36' prior: 0!
- I'm the script that prepares a trunk image for release. Which version of Squeak I release is stored in ReleaseBuilder class >> squeakVersion.!

Item was added:
+ ----- Method: ReleaseBuilder class>>buildConfiguration (in category 'accessing') -----
+ buildConfiguration
+ 
+ 	| max versionName |
+ 	max := 0.
+ 	versionName := ''.
+ 	
+ 	(self buildRepository versionNamesForPackageNamed: 'update') do: [:nm |
+ 		((nm findTokens: $.) atLast: 2) asInteger in: [:versionNumber |
+ 			versionNumber > max ifTrue: [max := versionNumber. versionName := nm]]].
+ 	
+ 	^ self buildRepository versionNamed: versionName 
+ !

Item was changed:
+ ----- Method: ReleaseBuilder class>>buildRepository (in category 'accessing') -----
- ----- Method: ReleaseBuilder class>>buildRepository (in category 'private') -----
  buildRepository
  	^ MCRepository trunk!

Item was added:
+ ----- Method: ReleaseBuilder class>>buildRepositoryUrl (in category 'accessing') -----
+ buildRepositoryUrl
+ 	^ self buildRepository description!

Item was changed:
  ----- Method: ReleaseBuilder class>>checkForDirtyPackages (in category 'scripts') -----
  checkForDirtyPackages
+ 
+ 	| modifiedWorkingCopies unmergedWorkingCopies |
  	MCWorkingCopy checkModified: true.
+ 	modifiedWorkingCopies := MCWorkingCopy allManagers
+ 		select: [:wc | wc ancestors size = 1 and: [wc modified] ].
+ 	unmergedWorkingCopies := MCWorkingCopy allManagers
+ 		select: [:wc | (wc ancestors size = 1) not ].
+ 
+ 	unmergedWorkingCopies ifNotEmpty: [
+ 		"Sort to simplify exploration. MC browser does also show packages sorted."
+ 		(modifiedWorkingCopies sortBy: [:wc1 :wc2 | wc1 packageName <= wc2 packageName]) explore.
+ 		Warning signal: 'There are unmerged packages.'].
+ 
+ 	modifiedWorkingCopies ifNotEmpty: [
+ 		"Sort to simplify exploration. MC browser does also show packages sorted."
+ 		(modifiedWorkingCopies sortBy: [:wc1 :wc2 | wc1 packageName <= wc2 packageName]) explore.
+ 		
+ 		(Project current uiManager
+ 			confirm: 'Do you want to discard all local changes?'
+ 			orCancel: [^ Error signal: 'Release building canceled.']
+ 			title: 'Dirty Packages Found')
+ 				ifTrue: [modifiedWorkingCopies do: [:wc |
+ 					[(self buildRepository versionWithInfo: wc ancestors first) load]
+ 						on: Warning do: [:warning | warning resume]]]].!
- 	(MCWorkingCopy allManagers anySatisfy:
- 		[ : wc | (wc ancestors size = 1) not or: [ wc modified ] ]) ifTrue: [ Warning signal: 'There are dirty and/or unmerged packages.' ]!

Item was changed:
+ ----- Method: ReleaseBuilder class>>configureDesktop (in category 'scripts') -----
- ----- Method: ReleaseBuilder class>>configureDesktop (in category 'private') -----
  configureDesktop
  	self deleteAllWindows.
- 	MorphicProject initialize.
  	Project current resourceManager reset. "Zap eventual resources"
  	"Replace docking bar instance in case its code has changed."
  	Project current removeMainDockingBar.
  	TheWorldMainDockingBar updateInstances!

Item was added:
+ ----- Method: ReleaseBuilder class>>copyPackagesFrom:to:depth: (in category 'scripts') -----
+ copyPackagesFrom: sourceRepository to: targetRepository depth: historyDepth
+ 	"Copy the packages currently loaded in the image from the source repository to a target repository. Follow ancestry up to the depth specified."
+ 	
+ 	| currentDepth nextVersions currentVersions ignoredVersions |
+ 	currentDepth := 0.
+ 	nextVersions := (MCWorkingCopy allManagers gather: [:wc | wc ancestors]) asOrderedCollection.
+ 	ignoredVersions := OrderedCollection new.
+ 
+ 	[nextVersions notEmpty] whileTrue: [
+ 		currentVersions := nextVersions.
+ 		nextVersions := OrderedCollection new.
+ 		currentDepth := currentDepth + 1.
+ 		
+ 		currentVersions do: [:versionInfo | 
+ 			(targetRepository includesVersionNamed: versionInfo versionName)
+ 				ifTrue: [Transcript showln: ('[ReleaseBuilder] Version {1} already exists in {2}'
+ 					format: {versionInfo versionName. targetRepository description})]
+ 				ifFalse: [(sourceRepository versionWithInfo: versionInfo)
+ 					ifNil: [ignoredVersions add: versionInfo]
+ 					ifNotNil: [:version | targetRepository storeVersion: version ] ].
+ 			currentDepth < historyDepth ifTrue: [
+ 				nextVersions addAll: versionInfo ancestors]]].
+ 
+ 	ignoredVersions ifNotEmpty: [
+ 		ignoredVersions explore.
+ 		Warning signal: 'There were versions not found in the source repository.'].!

Item was added:
+ ----- Method: ReleaseBuilder class>>copyUpdateMapTo: (in category 'scripts') -----
+ copyUpdateMapTo: targetRepository
+ 
+ 	self buildConfiguration in: [:config |
+ 		| newConfig |
+ 		newConfig := MCConfiguration new.
+ 		newConfig repositories add: targetRepository.
+ 		newConfig dependencies addAll: config dependencies.
+ 		newConfig name: config name.
+ 		
+ 		targetRepository storeVersion: newConfig].!

Item was changed:
+ ----- Method: ReleaseBuilder class>>deleteAllWindows (in category 'scripts') -----
- ----- Method: ReleaseBuilder class>>deleteAllWindows (in category 'private') -----
  deleteAllWindows
  	(SystemWindow
+ 		windowsIn: Project current world
- 		windowsIn: ActiveWorld
  		satisfying:
  			[ : window | true ]) do:
  				[ : window | [ window makeClosable; delete ]
  					on: ProvideAnswerNotification
  					do: [ : noti | noti resume: true ] ]!

Item was changed:
+ ----- Method: ReleaseBuilder class>>loadWellKnownPackages (in category 'scripts') -----
- ----- Method: ReleaseBuilder class>>loadWellKnownPackages (in category 'private') -----
  loadWellKnownPackages
  	"Load into the release image those packages that have been stripped from Trunk, but still deemed necessary for a release artifact."
  	Installer new merge: #squeakRelease!

Item was added:
+ ----- Method: ReleaseBuilder class>>localBuild (in category 'accessing') -----
+ localBuild
+ 	"If true, use a local, directory-based repository. Usually in the working directory."
+ 	
+ 	^ true!

Item was changed:
+ ----- Method: ReleaseBuilder class>>openWelcomeWorkspaces (in category 'scripts') -----
- ----- Method: ReleaseBuilder class>>openWelcomeWorkspaces (in category 'private') -----
  openWelcomeWorkspaces
  	|offset | offset:= 50 at 50.
  	 #('License Information' 'The Squeak User Interface' 'Working With Squeak' 'Release Notes')
  		with:  #(#licenseInformation #squeakUserInterface #workingWithSqueak #releaseNotes)
   		do: [ : eachLabel : eachAccessor |
  			TheWorldMainDockingBar instance
  				showWelcomeText: eachAccessor
  				label: eachLabel
  				in: (offset extent: 500 at 300).
  			offset := offset + (30 at 30)]!

Item was added:
+ ----- 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"
+ 	
+ 	TTCFont registerAll.
+ 	FileList initialize.
+ 	RealEstateAgent standardSize: 600 @ 400.
+ 	SMLoaderPlus setDefaultFilters: (OrderedCollection with: #filterSafelyAvailable).
+ "	Preferences outOfTheBox."  "<-- uncomment after #defaultValueTableForCurrentRelease is fixed up."
+ 	self
+ 		 setDisplayExtent: 800 @ 600 ;
+ 		 setPreferences ;  "<-- remove this after defaultValueTableForCurrentRelease is fixed up."
+ 		 discardUserObjects ;
+ 		 configureDesktop.
+ 	Smalltalk cleanUp: true.
+ 	MCFileBasedRepository flushAllCaches.
+ 	MCHttpRepository clearCredentials.
+ 	Utilities setAuthorInitials: String empty.
+ 	Environment allInstancesDo: [ : env | env purgeUndeclared ].
+ 	Undeclared removeUnreferencedKeys.
+ 	Smalltalk garbageCollect.
+ 	[ self loadWellKnownPackages "<-- 4.5 is not ready for unloaded / reloaded packages" ].
+ 	Compiler recompileAll.
+ 	self openWelcomeWorkspaces.!

Item was removed:
- ----- Method: ReleaseBuilder class>>prepareNewBuild (in category 'scripts') -----
- prepareNewBuild
- 	self prepareNewBuild: self buildRepository.!

Item was removed:
- ----- Method: ReleaseBuilder class>>prepareNewBuild: (in category 'scripts') -----
- prepareNewBuild: anMCRepository 
- 	"ReleaseBuilderTrunk prepareNewBuild"
- 	"Prepare everything that should be done for a new image build"
- 	MCMcmUpdater updateMissingPackages: true.
- 	MCMcmUpdater enableUpdatesForAllPackages.
- 	TTCFont registerAll.
- 	FileList initialize.
- 	RealEstateAgent standardSize: 600 @ 400.
- 	SystemVersion newVersion: self versionString.
- 	SMLoaderPlus setDefaultFilters: (OrderedCollection with: #filterSafelyAvailable).
- "	Preferences outOfTheBox."  "<-- uncomment after #defaultValueTableForCurrentRelease is fixed up."
- 	self
- 		 setDisplayExtent: 800 @ 600 ;
- 		 switchToNewRepository: anMCRepository ;
- 		 setPreferences ;  "<-- remove this after defaultValueTableForCurrentRelease is fixed up."
- 		 checkForDirtyPackages ;
- 		 discardUserObjects ;
- 		 configureDesktop.
- 	Smalltalk cleanUp: true.
- 	MCFileBasedRepository flushAllCaches.
- 	MCHttpRepository clearCredentials.
- 	Utilities setAuthorInitials: String empty.
- 	Environment allInstancesDo: [ : env | env purgeUndeclared ].
- 	Undeclared removeUnreferencedKeys.
- 	Smalltalk garbageCollect.
- 	[ self loadWellKnownPackages "<-- 4.5 is not ready for unloaded / reloaded packages" ].
- 	Compiler recompileAll.
- 	self
- 		setProjectBackground: Color darkGray ;
- 		openWelcomeWorkspaces!

Item was changed:
+ ----- Method: ReleaseBuilder class>>prepareNewRelease (in category 'preparing') -----
- ----- Method: ReleaseBuilder class>>prepareNewRelease (in category 'scripts') -----
  prepareNewRelease
  	"This method is run at time of release to transfer the top trunk versions into my releaseRepository, and produce a release image."
+ 	
+ 	| source target |
+ 	source := self buildRepository.
+ 	target := self releaseRepository.
+ 	
+ 	[ self
+ 		setTopProject;
+ 		prepareSourceCode;
+ 		copyPackagesFrom: source to: target depth: 1;
+ 		copyUpdateMapTo: target;
+ 		prepareEnvironment;
+ 		switchToNewRepository: target.
+ 	] on: MCEmptyVersion do: [:warning | warning resume].
+ 
+ 	SystemVersion newVersion: self versionString.!
- 	self
- 		transferCurrentPackagesAsUser: Utilities authorInitials
- 		password: (UIManager default requestPassword: 'Enter password for ' , self projectUrl).
- 	self prepareNewBuild: self releaseRepository!

Item was changed:
+ ----- Method: ReleaseBuilder class>>prepareNextVersionAlpha (in category 'preparing') -----
- ----- Method: ReleaseBuilder class>>prepareNextVersionAlpha (in category 'scripts') -----
  prepareNextVersionAlpha
  	"Prepare the first alpha image for next release."
+ 
+ 	self
+ 		setTopProject;
+ 		prepareSourceCode;
+ 		prepareEnvironment;
+ 		switchToNewRepository: self buildRepository.
+ 
+ 	SystemVersion newVersion: self versionStringAlpha.!
- 	SystemVersion
- 		newVersion: ((UIManager default request: 'Please specify the name of the\new version of Squeak.' withCRs initialAnswer: SystemVersion current version)
- 				ifEmpty: [^ self inform: 'Aborted.']).
- 	MCFileBasedRepository flushAllCaches.
- 	MCHttpRepository clearCredentials.
- 	Utilities setAuthorInitials: String empty.
- 	self switchToNewRepository: self buildRepository!

Item was added:
+ ----- Method: ReleaseBuilder class>>prepareSourceCode (in category 'preparing') -----
+ prepareSourceCode
+ 	"Update code. Remove foreign packages."
+ 
+ 	MCMcmUpdater defaultUpdateURL: self buildRepository description.
+ 
+ 	MCMcmUpdater updateMissingPackages: true.
+ 	MCMcmUpdater enableUpdatesForAllPackages.
+ 
+ 	MCMcmUpdater default doUpdate: false. "non-interactive".
+ 
+ 	self unloadForeignPackages.
+ 	self checkForDirtyPackages.!

Item was removed:
- ----- Method: ReleaseBuilder class>>projectUrl (in category 'private') -----
- projectUrl
- 	^ (self repositoryUrl , '/', (self versionString copyWithout: $.)) asLowercase!

Item was changed:
+ ----- Method: ReleaseBuilder class>>releaseRepository (in category 'accessing') -----
- ----- Method: ReleaseBuilder class>>releaseRepository (in category 'private') -----
  releaseRepository
+ 
+ 	^ (MCRepository location: self releaseRepositoryUrl) in: [:repo |
+ 		self localBuild ifFalse: [
+ 			repo
+ 				user: (UIManager default
+ 					request: 'Enter user for ', self releaseRepositoryUrl
+ 					initialAnswer: Utilities authorInitials);
+ 				password: (UIManager default
+ 					requestPassword: 'Enter password for ' , self releaseRepositoryUrl)].
+ 		repo].!
- 	^ MCRepository location: self projectUrl!

Item was added:
+ ----- Method: ReleaseBuilder class>>releaseRepositoryUrl (in category 'accessing') -----
+ releaseRepositoryUrl
+ 
+ 	^ self localBuild
+ 		ifFalse: [(self serverUrl, '/', (self versionString copyWithout: $.)) asLowercase]
+ 		ifTrue: [(FileDirectory default on: 'repositories', FileDirectory slash, (self versionString copyWithout: $.) asLowercase)
+ 			assureExistence;
+ 			fullName]!

Item was added:
+ ----- Method: ReleaseBuilder class>>releaseVersionMajor (in category 'accessing') -----
+ releaseVersionMajor
+ 
+ 	^ 5!

Item was added:
+ ----- Method: ReleaseBuilder class>>releaseVersionMinor (in category 'accessing') -----
+ releaseVersionMinor
+ 
+ 	^ 1!

Item was removed:
- ----- Method: ReleaseBuilder class>>repositoryUrl (in category 'private') -----
- repositoryUrl 
- 	^ 'http://source.squeak.org'!

Item was added:
+ ----- Method: ReleaseBuilder class>>saveAsNewRelease (in category 'saving') -----
+ saveAsNewRelease
+ 	"ReleaseManager saveAsNewRelease"
+ 
+ 	(Project current uiManager
+ 		confirm: 'About to build new release', (self localBuild ifTrue: [' (locally!!)'] ifFalse: ['']),': ', self versionString, String cr, String cr, 'The VM will quit after that. Continue?'
+ 		title: 'Release Builder') ifFalse: [^ self].
+ 	
+ 	self prepareNewRelease.
+ 	Smalltalk saveAs: self versionString, '-', SystemVersion current highestUpdate asString.
+ 	Smalltalk snapshot: true "Important!!" andQuit: true.!

Item was added:
+ ----- Method: ReleaseBuilder class>>saveAsNextVersionAlpha (in category 'saving') -----
+ saveAsNextVersionAlpha
+ 	"ReleaseBuilder saveNextVersionAlpha."
+ 
+ 	(Project current uiManager
+ 		confirm: 'About to build new release', (self localBuild ifTrue: [' (locally!!)'] ifFalse: ['']),': ', self versionStringAlpha, String cr, String cr, 'The VM will quit after that. Continue?'
+ 		title: 'Release Builder') ifFalse: [^ self].
+ 	
+ 	self prepareNextVersionAlpha.
+ 	Smalltalk saveAs: self versionStringAlpha, '-', SystemVersion current highestUpdate asString.
+ 	Smalltalk snapshot: true "Important!!" andQuit: true.!

Item was added:
+ ----- Method: ReleaseBuilder class>>serverUrl (in category 'accessing') -----
+ serverUrl 
+ 	^ 'http://source.squeak.org'!

Item was changed:
+ ----- Method: ReleaseBuilder class>>setDisplayExtent: (in category 'scripts') -----
- ----- Method: ReleaseBuilder class>>setDisplayExtent: (in category 'private') -----
  setDisplayExtent: extent
+ 
+ 	DisplayScreen
+ 		fullScreenOff;
+ 		setNewScreenSize: extent.
+ 		
+ 	self assert: Display extent = extent.!
- "Uncomment next line when the primitives become available in the Squeak VM."
- "	DisplayScreen hostWindowSize: extent."
- 	Display extent = extent ifFalse: [ Warning signal: 'Display extent not set to ', extent ]!

Item was changed:
+ ----- Method: ReleaseBuilder class>>setPreferences (in category 'scripts') -----
- ----- Method: ReleaseBuilder class>>setPreferences (in category 'preferences') -----
  setPreferences
  	"Preferences class defaultValueTableForCurrentRelease"
  
  	self setProjectBackground: Color darkGray.
  
  	"General User interaction"
  	Preferences
  		enable: #generalizedYellowButtonMenu ;
  		disable: #mouseOverForKeyboardFocus ;
  		enable: #swapMouseButtons.
  	Morph indicateKeyboardFocus: true.
+ 	ToolBuilder openToolsAttachedToMouseCursor: false.
  	SearchBar useScratchPad: false.
  		
  	"Text input."
  	TextEditor
  		 autoEnclose: true ;
  		 autoIndent: true ;
  		 destructiveBackWord: false ;
  		 blinkingCursor: true ;
  		 dumbbellCursor: false.
  	Preferences
  		 insertionPointColor: Color red.
  	PluggableTextMorph simpleFrameAdornments: false.
  	
  	"Windows"
  	Preferences installUniformWindowColors.
  	SystemWindow reuseWindows: false.
  	Model windowActiveOnFirstClick: false. "Not good for 800x600"
  	Preferences
  		disable: #showSplitterHandles;
  		enable: #fastDragWindowForMorphic.	
  	CornerGripMorph drawCornerResizeHandles: false.
  	ProportionalSplitterMorph
  		 smartHorizontalSplitters: false ;
  		 smartVerticalSplitters: false.
  
  	"Scroll bars."
  	Preferences
  		enable: #scrollBarsNarrow;
  		enable: #scrollBarsOnRight;
  		disable: #alwaysHideHScrollbar;
  		disable: #alwaysShowHScrollbar;
  		disable: #alwaysShowVScrollbar.
  	ScrollBar
  		scrollBarsWithoutArrowButtons: true;
  		scrollBarsWithoutMenuButton: true.
  	ScrollPane
  		useRetractableScrollBars: false.
  
  	"Rounded corners."
  	Morph preferredCornerRadius: 6.
  	Preferences disable: #roundedWindowCorners.
  	PluggableButtonMorph roundedButtonCorners: false.
  	FillInTheBlankMorph roundedDialogCorners: false.
  	MenuMorph roundedMenuCorners: false.
  	ScrollBar roundedScrollBarLook: false.
  	
  	"Gradients."
  	Preferences disable: #gradientScrollBars.
  	SystemWindow gradientWindow: false.
  	MenuMorph gradientMenu: false.
  	PluggableButtonMorph gradientButton: false.
  
  	"Shadows"
  	Preferences enable: #menuAppearance3d.
  	MenuMorph
  		menuBorderWidth: 1;
  		menuBorderColor: Color lightGray;
  		menuLineColor: Color lightGray.
  	Morph useSoftDropShadow: true..
  	
  	"Lists and Trees"
  	PluggableListMorph
  		filterableLists: true;
  		clearFilterAutomatically: false;
  		highlightHoveredRow: true;
  		menuRequestUpdatesSelection: true.
  	PluggableTreeMorph
  		filterByLabelsOnly: false;
  		maximumSearchDepth: 1.
  	LazyListMorph
  		listSelectionTextColor: Color black;
  		listSelectionColor: (Color r: 0.72 g: 0.72 b: 0.9).
  	
  	"Standard Tools"
  	BalloonMorph balloonColor:
  		(TranslucentColor r: 0.92 g: 0.92 b: 0.706 alpha: 0.75).
  	Workspace shouldStyle: false.
  	Browser
  		listClassesHierarchically: true;
  		showClassIcons: true;
  		showMessageIcons: true;
  		sortMessageCategoriesAlphabetically: true.
  	Preferences enable: #annotationPanes;
  		 enable: #optionalButtons;
  		 enable: #diffsWithPrettyPrint;
  		 enable: #traceMessages;
  		 enable: #alternativeBrowseIt;
  		 enable: #menuWithIcons;
  		 enable: #visualExplorer.
+ 	SystemNavigation thoroughSenders: true.
+ 	Preferences disable: #debugLogTimestamp.
- 	SystemNavigation thoroughSenders: true.	
  
  	"Halo"
  	Preferences
  		enable: #showBoundsInHalo ;
  		disable: #alternateHandlesLook.
  
  	"System"
  	NetNameResolver enableIPv6: false.
  	Scanner
  		allowUnderscoreAsAssignment: true;
  		prefAllowUnderscoreSelectors: true.
  
  	"that's all, folks"!

Item was changed:
+ ----- Method: ReleaseBuilder class>>setProjectBackground: (in category 'scripts') -----
- ----- Method: ReleaseBuilder class>>setProjectBackground: (in category 'private') -----
  setProjectBackground: aFormOrColorOrFillStyle
  
  	MorphicProject defaultFill: (aFormOrColorOrFillStyle isForm
  		ifTrue: [InfiniteForm with: aFormOrColorOrFillStyle]
  		ifFalse: [aFormOrColorOrFillStyle isColor
  			ifTrue: [SolidFillStyle color: aFormOrColorOrFillStyle]
  			ifFalse: [aFormOrColorOrFillStyle]]).
  	ActiveWorld fillStyle: MorphicProject defaultFill.!

Item was added:
+ ----- Method: ReleaseBuilder class>>setTopProject (in category 'scripts') -----
+ setTopProject
+ 
+ 	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"].
+ 	
+ 	Project current removeAllOtherProjects.!

Item was changed:
+ ----- Method: ReleaseBuilder class>>switchToNewRepository: (in category 'scripts') -----
- ----- Method: ReleaseBuilder class>>switchToNewRepository: (in category 'private') -----
  switchToNewRepository: anMCRepository 
  	MCMcmUpdater defaultUpdateURL: anMCRepository description.
  	MCRepositoryGroup reset.
  	MCRepositoryGroup default addRepository: anMCRepository.
  	MCWorkingCopy allManagers do:
  		[ : each | each repositoryGroup:
  			(MCRepositoryGroup new
  				 addRepository: anMCRepository ;
  				 yourself) ]!

Item was removed:
- ----- Method: ReleaseBuilder class>>transferCurrentPackagesAsUser:password: (in category 'scripts') -----
- transferCurrentPackagesAsUser: username password: password
- 	"Copy the packages currently loaded in the image from the trunk repository to my releaseRepository."
- 	| releaseRep |
- 	releaseRep := self releaseRepository
- 		user: username;
- 		password: password;
- 		yourself.
- 	MCWorkingCopy allManagers do:
- 		[ : eachWorkingCopy | eachWorkingCopy ancestors do:
- 			[ : eachVersionInfo | (releaseRep includesVersionNamed: eachVersionInfo versionName) ifFalse:
- 				[ (MCRepository trunk versionWithInfo: eachVersionInfo)
- 					ifNil: [ Warning signal: eachVersionInfo name , ' not found in trunk.' ]
- 					ifNotNilDo: [ : ver | releaseRep storeVersion: ver ] ] ] ]!

Item was added:
+ ----- Method: ReleaseBuilder class>>unloadForeignPackages (in category 'scripts') -----
+ unloadForeignPackages
+ 	"Removes all packages that are not present in the build configuration."
+ 	
+ 	self buildConfiguration in: [:config |
+ 		MCWorkingCopy allManagers
+ 			reject: [:wc | config dependencies anySatisfy: [:dep | dep package name = wc package name]]
+ 			thenDo: [:wc | wc unload]].!

Item was changed:
+ ----- Method: ReleaseBuilder class>>versionString (in category 'accessing') -----
- ----- Method: ReleaseBuilder class>>versionString (in category 'private') -----
  versionString
+ 	"Result format is specified in SystemVersion."
+ 	^ 'Squeak{1}.{2}' format: {self releaseVersionMajor. self releaseVersionMinor}!
- 	^ 'Squeak5.0'!

Item was added:
+ ----- Method: ReleaseBuilder class>>versionStringAlpha (in category 'accessing') -----
+ versionStringAlpha
+ 	"Result format is specified in SystemVersion."
+ 	^ 'Squeak{1}.{2}alpha' format: {self releaseVersionMajor. self releaseVersionMinor+1}!



More information about the Squeak-dev mailing list