'From Squeak5.3alpha of 14 January 2019 [latest update: #18378] on 21 January 2019 at 1:54:27 pm'!

!Delay class methodsFor: 'class initialization' stamp: 'mt 1/17/2019 11:35'!
cleanUp

	self initialize.! !


!ProcessorScheduler class methodsFor: 'background process' stamp: 'mt 1/17/2019 11:49'!
installIdleProcess
	"Install a background process of the lowest possible priority that is always runnable."
	"Details: The virtual machine requires that there is aways some runnable process that
	 can be scheduled; this background process ensures that this is the case."

	BackgroundProcess ifNotNil: [BackgroundProcess terminate].
	BackgroundProcess := [self idleProcess] newProcess.
	BackgroundProcess priority: SystemRockBottomPriority.
	BackgroundProcess resume.! !

!ProcessorScheduler class methodsFor: 'background process' stamp: 'mt 1/17/2019 11:50'!
startUp: resuming

	Smalltalk processPreemptionYields ifTrue: [
		Smalltalk processPreemptionYields: false].

	resuming ifTrue: [
		Smalltalk installLowSpaceWatcher.
		self installIdleProcess].! !


!ReleaseBuilder class methodsFor: 'preparing' stamp: 'mt 1/17/2019 12:12'!
prepareProcesses
	"Re-start running processes if necessary. Call this at late as possible in the release process. Only required to processes that are not reset at image #startUp."
	
	Delay startTimerEventLoop.! !

!ReleaseBuilder class methodsFor: 'saving' stamp: 'mt 1/21/2019 13:42'!
saveAndQuit

	Smalltalk condenseChanges.
	Smalltalk snapshot: true "Important to sync changes and image!!" andQuit: false.
	
	"Finally, we have to make sure that all method activations are up to date."
	self prepareProcesses.
	
	"Start new UI process; terminate current one."
	self assert: Processor activeProcess == Project current uiProcess.
	Project current
		addDeferredUIMessage: [Smalltalk snapshot: true andQuit: true];
		spawnNewProcessIfThisIsUI: Processor activeProcess.
	Processor activeProcess terminate.! !

!ReleaseBuilder class methodsFor: 'saving' stamp: 'mt 1/17/2019 12:02'!
saveAsNewRelease
	"Use this to create a new release image to be used in the automated release artifact building process on http://www.github.com/squeak-smalltalk/squeak-app."

	| fileName |
	self setNewSystemVersion: self versionString.
	self assert: self versionString = SystemVersion current version.
	
	fileName := ('squeak-{1}.{2}{3}' format: {
		SystemVersion current majorVersionNumber.
		SystemVersion current minorVersionNumber.
		self releaseLocally ifTrue: ['-offline'] ifFalse: ['']}).
	Smalltalk saveAs: fileName.

	"Update the image state."
	self
		prepareSourceCode;
		prepareEnvironment;
		switchToNewRepository: self releaseRepository;
		addAdditionalRepositories.
	
	self saveAndQuit.! !

!ReleaseBuilder class methodsFor: 'saving' stamp: 'mt 1/17/2019 12:02'!
saveAsNewTrunk
	"Use this to create a new release image to be used in the automated release artifact building process on http://www.github.com/squeak-smalltalk/squeak-app."

	| fileName |	
	fileName := ('squeak-trunk{1}' format: {
		self releaseLocally ifTrue: ['-offline'] ifFalse: ['']}).
	Smalltalk saveAs: fileName.
	
	self
		prepareSourceCode;
		prepareEnvironment;
		switchToNewRepository: self buildRepository.
	
	self saveAndQuit.! !


!ReleaseBuilder class reorganize!
('scripts' clearCaches configureDesktop configureTools setPreferences)
('accessing' buildConfiguration buildRepository buildRepositoryUrl inboxRepository releaseLocally releaseRepository releaseRepositoryName releaseRepositoryUrl releaseVersionMajor releaseVersionMinor serverUrl versionString versionStringAlpha)
('scripts - support' addAdditionalRepositories changesBetween:and: changesBetweenReleases checkCurrentProjects checkForDirtyPackages checkForUndeclaredSymbols confirm:orCancel:title: deleteAllOtherMorphs deleteAllWindows discardUserObjects ensureMorphicTopProject fileOutChangesBetweenReleases firstConfigurationIn:map: getBalloonForm lastConfigurationIn:map: loadWellKnownPackages openWelcomeWorkspaces openWelcomeWorkspacesWith: recompileAll setDisplayExtent: setProjectBackground: switchToNewRepository: unloadForeignPackages updateCorePackages)
('preparing' askInAdvance clearQAndA prepareEnvironment prepareProcesses prepareSourceCode)
('saving' saveAndQuit saveAsNewRelease saveAsNewTrunk)
('manual' assureReleaseRepositoryReadAccess: assureReleaseRepositoryWriteAccess: copyPackages copyPackagesFrom:to:depth: copyUpdateMap copyUpdateMap:to: requestNextReleaseVersion setNewSystemVersion: uploadNewSystemVersion)
('class initialization' initialize initializeTemplate startUp:)
('manual - steps' doNextStep step0AssureAlpha step1FeatureFreeze step2CodeFreeze step3NextReleaseCandidate step4Release)
!

