The Trunk: ReleaseBuilder-mt.131.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: ReleaseBuilder-mt.131.mcz

commits-2
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@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@300).
  offset := offset + (30@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}!


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: ReleaseBuilder-mt.131.mcz

marcel.taeumel
Hey Chris, hey all,

do we still need "TrunkScript-cmm.5"? And "50Deprecated-mt.2", which is empty? They are not on the current update map. If not, would we have to account for their version number in "Squeak-Version"?

Best,
Marcel
Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: ReleaseBuilder-mt.131.mcz

Chris Muller-3
Hi, IIRC, the TrunkScript's were for when a major method of the trunk
update process, itself, needed to change, and use the new version
immediately even if there were more updates to process.  I'm sure we
need them anymore.  No one would try to update such an old image from
trunk..

50Deprecated-mt.2 is a truly empty package (no scripts).  Only you
would know whether its needed.  :)

Best,
  Chris

On Thu, May 12, 2016 at 9:19 AM, marcel.taeumel <[hidden email]> wrote:

> Hey Chris, hey all,
>
> do we still need "TrunkScript-cmm.5"? And "50Deprecated-mt.2", which is
> empty? They are not on the current update map. If not, would we have to
> account for their version number in "Squeak-Version"?
>
> Best,
> Marcel
>
>
>
> --
> View this message in context: http://forum.world.st/The-Trunk-ReleaseBuilder-mt-131-mcz-tp4894490p4894491.html
> Sent from the Squeak - Dev mailing list archive at Nabble.com.
>

Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: ReleaseBuilder-mt.131.mcz

Levente Uzonyi
On Thu, 12 May 2016, Chris Muller wrote:

> Hi, IIRC, the TrunkScript's were for when a major method of the trunk
> update process, itself, needed to change, and use the new version
> immediately even if there were more updates to process.  I'm sure we
> need them anymore.  No one would try to update such an old image from
> trunk..

I wouldn't be so sure about that. It would bea lot more convenient if you
could specify a configuration you'd like your image to be updated to.

Also, why break the update mechanism for basically no benefit? In an ideal
world, you would be able to update your 3.11 image to 4.6 using the
classic VM.

Levente

>
> 50Deprecated-mt.2 is a truly empty package (no scripts).  Only you
> would know whether its needed.  :)
>
> Best,
>  Chris
>
> On Thu, May 12, 2016 at 9:19 AM, marcel.taeumel <[hidden email]> wrote:
>> Hey Chris, hey all,
>>
>> do we still need "TrunkScript-cmm.5"? And "50Deprecated-mt.2", which is
>> empty? They are not on the current update map. If not, would we have to
>> account for their version number in "Squeak-Version"?
>>
>> Best,
>> Marcel
>>
>>
>>
>> --
>> View this message in context: http://forum.world.st/The-Trunk-ReleaseBuilder-mt-131-mcz-tp4894490p4894491.html
>> Sent from the Squeak - Dev mailing list archive at Nabble.com.
>>
>
>