[Pkg] 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 Packages
mailing list