The Trunk: ReleaseBuilder-mt.139.mcz

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

The Trunk: ReleaseBuilder-mt.139.mcz

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

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

Name: ReleaseBuilder-mt.139
Author: mt
Time: 29 July 2016, 5:02:02.533103 pm
UUID: cee7fc24-d57e-8a46-a5d7-142aa6e0d44d
Ancestors: ReleaseBuilder-mt.138

Some updates for guided release process.

=============== Diff against ReleaseBuilder-mt.138 ===============

Item was changed:
  ----- Method: ReleaseBuilder class>>buildConfiguration (in category 'accessing') -----
  buildConfiguration
 
  | max versionName |
  max := 0.
  versionName := ''.
 
+ (self buildRepository versionNamesForPackageNamed: MCMcmUpdater updateMapName) do: [:nm |
- (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>>requestNextReleaseVersion (in category 'manual - steps') -----
  requestNextReleaseVersion
  "self requestNextReleaseVersion"
 
  | nextMinor nextMajor current |
  current := {
  SystemVersion current majorVersionNumber.
  SystemVersion current minorVersionNumber}.
  nextMinor := {
  current first.
  current second + 1}.
  nextMajor := {
  current first + 1.
  0}.
 
  (UIManager default
  chooseFrom: {
  '{1}.{2}' format: {nextMinor first. nextMinor second}.
  '{1}.{2}' format: {nextMajor first. nextMajor second}}
  title: 'Please Choose Next Version') in: [:answer |
+ answer ifNil: [^ self requestNextReleaseVersion].
- answer ifNil: [^ false].
  answer = 1 ifTrue: [
  NextMinorVersion := nextMinor second].
  answer = 2 ifTrue: [
  NextMajorVersion := nextMajor first.
+ NextMinorVersion := 0]].!
- NextMinorVersion := 0]].
-
- ^ true!

Item was changed:
  ----- Method: ReleaseBuilder class>>setNewSystemVersion: (in category 'manual') -----
  setNewSystemVersion: version
 
  self class
  compile: ('initialize
  Smalltalk addToStartUpList: self.
 
  SystemVersion newVersion: ''{1}''.' format: {version})
  classified: 'class initialization'.
 
+ self initialize.
+
+ SystemVersion current isRelease
+ ifFalse: [self uploadNewSystemVersion].!
- self initialize.!

Item was changed:
  ----- Method: ReleaseBuilder class>>startUp: (in category 'class initialization') -----
  startUp: resuming
  resuming
+ ifTrue: [NextTask := nil. DeferredTask ifNotNil: [:task | DeferredTask := nil. task value]]
+ ifFalse: [DeferredTask := nil. NextTask ifNotNil: [:task | NextTask := nil. task value]].!
- ifTrue: [DeferredTask ifNotNil: [:task | DeferredTask := nil. task value]. NextTask := nil]
- ifFalse: [NextTask ifNotNil: [:task | NextTask := nil. task value]. DeferredTask := nil].!

Item was changed:
  ----- Method: ReleaseBuilder class>>step0AssureAlpha (in category 'manual - steps') -----
  step0AssureAlpha
+ "Re-open the trunk again."
+
+ self requestNextReleaseVersion.
-
- self requestNextReleaseVersion ifFalse: [^ self].
  self setNewSystemVersion: self versionString, 'alpha'.!

Item was changed:
  ----- Method: ReleaseBuilder class>>step1FeatureFreeze (in category 'manual - steps') -----
  step1FeatureFreeze
 
  (UIManager default
  confirm: ('Do you really want to feature-freeze the trunk\in preparation for the next release {1}?\Bugfixes only after this.' withCRs format: {self versionString})
  title: 'Release Builder Step 1 of 4: Feature Freeze') ifFalse: [^ self].
 
  self setNewSystemVersion: self versionString, 'beta'.!

Item was changed:
  ----- Method: ReleaseBuilder class>>step4Release (in category 'manual - steps') -----
  step4Release
  "Creates the release. New file, clean-ed up."
 
- | fileName |
  (UIManager default
  confirm: ('Do you want release {1}{2}?' withCRs format: {
  self versionString.
  (self releaseLocally ifTrue: [' locally'] ifFalse: [''])})
  title: 'Release Builder Step 4 of 4: The Release')
  ifFalse: [^ self].
 
  "If you re-open the current trunk image again, it will be an alpha version for the next release."
  DeferredTask := [self step0AssureAlpha].
- Smalltalk snapshot: true andQuit: false.
 
+ "We continue with preparing the release image."
+ NextTask := [self step5DoRelease].
- "Create new .image and .changes files for the release image."
- self setNewSystemVersion: self versionString.
- 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
- setTopProject;
- prepareSourceCode;
- prepareEnvironment;
- switchToNewRepository: self releaseRepository.
- ] on: MCEmptyVersion do: [:warning | warning resume].
 
+ "Now save it but do not quit."
+ Smalltalk snapshot: true andQuit: false.!
- NextTask := [self uploadForSmalltalkCI: fileName.].
-
- Smalltalk condenseChanges.
- Smalltalk snapshot: true "Important!!" andQuit: false.!

Item was added:
+ ----- Method: ReleaseBuilder class>>step5DoRelease (in category 'manual - steps') -----
+ step5DoRelease
+ "Creates the release. New file, clean-ed up."
+
+ | fileName |
+
+ "Create new .image and .changes files for the release image."
+ self setNewSystemVersion: self versionString.
+ 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
+ setTopProject;
+ prepareSourceCode;
+ prepareEnvironment;
+ switchToNewRepository: self releaseRepository.
+ ] on: MCEmptyVersion do: [:warning | warning resume].
+
+ NextTask := [self uploadForSmalltalkCI: fileName.].
+
+ Smalltalk condenseChanges.
+ Smalltalk snapshot: true "Important!!" andQuit: false.
+ "Finished. See NextTask."!

Item was added:
+ ----- Method: ReleaseBuilder class>>uploadNewSystemVersion (in category 'manual') -----
+ uploadNewSystemVersion
+ "TODO: Just commit changes in the ReleaseBuilder because #initialize will change the system version:"
+
+ UIManager default
+ confirm: 'Do you want to set the new system version for all?'
+ title: 'Publish New System Version'.
+
+
+ self inform: 'Upload not implemented.'.!