14983566498b — Gerald Klix (speedy) 8 months ago
SUM: Added a Haver version.
2 files changed, 46 insertions(+), 32 deletions(-)

M Haverize.st
M haver/Haverize.pck.st
M Haverize.st +2 -1
@@ 1,1 1,2 @@ 
-Feature require: 	(DirectoryEntry currentDirectory / 'HaverOnCuis' / 'haver' // 'Haverize.pck.st' :: pathName)
+Feature require: (DirectoryEntry currentDirectory / 'HaverOnCuis' / 'haver' // 'Haverize.pck.st' :: pathName).
+HaverizePackage haverVersion: 1

          
M haver/Haverize.pck.st +44 -31
@@ 1,6 1,6 @@ 
-'From Haver7.0 [latest update: #6454] on 22 June 2024 at 3:39:21 pm'!
+'From Haver7.0 [latest update: #6454] on 14 August 2024 at 11:14:44 pm'!
 'Description Convert the running Cuis image to an Haver image.'!
-!provides: 'Haverize' 1 169!
+!provides: 'Haverize' 1 170!
 SystemOrganization addCategory: #Haverize!
 
 

          
@@ 12,7 12,7 @@ CodePackage subclass: #HaverizePackage
 	category: 'Haverize'!
 !classDefinition: 'HaverizePackage class' category: #Haverize!
 HaverizePackage class
-	instanceVariableNames: 'isUnzippedDistribution isNewlyHaverized'!
+	instanceVariableNames: 'isUnzippedDistribution isNewlyHaverized haverVersion'!
 
 
 !HaverizePackage commentStamp: '<historical>' prior: 0!

          
@@ 157,7 157,7 @@ hasIntegrateCommandlineOption
 
 	^ Smalltalk startUpArguments includes: '--integrate'! !
 
-!HaverizePackage class methodsFor: 'installing' stamp: 'KLG 4/21/2022 11:49:29'!
+!HaverizePackage class methodsFor: 'installing' stamp: 'KLG 8/14/2024 23:01:05'!
 installHaver
 	"Install all the haver packages."
 

          
@@ 168,7 168,7 @@ installHaver
 					self installHaverPackagesFromRepository: rootDirectory ]
 				ifTrue: [
 					self installHaverPackagesFromUnzippedDistribution: rootDirectory ].
-			self shouldIntegrate ifTrue: [		self integrateHaverPackages ] ]
+			self shouldIntegrate ifTrue: [		 self integrateHaverPackages ] ]
 		ifNil: [
 			Transcript
 				cr;

          
@@ 311,6 311,38 @@ shouldIntegrate
 	"Answer true if we should integrate Haver."
 
 	^ self hasIntegrateCommandlineOption! !
+
+!HaverizePackage class methodsFor: 'versioning' stamp: 'KLG 8/14/2024 23:07:00'!
+haverVersion
+	"Answer Haver's version, which is an integer that is incremented on each („̨relevant“) change.
+	
+	The haver version is relative to the Cuis version.
+	
+	A well defined Haver version is at least 1."
+
+	^ haverVersion ifNil: [ 0 ]! !
+
+!HaverizePackage class methodsFor: 'versioning' stamp: 'KLG 8/14/2024 23:08:03'!
+haverVersion: anInteger
+	"Set Haver's version and answer it.
+	
+	The haver version is relative to the Cuis version.
+	
+	A well defined Haver version is at least 1."
+
+	self assert: anInteger > 0.
+	^ haverVersion := anInteger! !
+
+!HaverizePackage class methodsFor: 'versioning' stamp: 'KLG 8/14/2024 23:13:53'!
+printHaverVersionOn: aStream
+	"Put the current haver version on aStream."
+
+	haverVersion ifNotNil: [
+		aStream nextPut: $-.
+		haverVersion 
+			printOn: aStream
+			length: 3
+			zeroPadded: true ]! !
 HaverizePackage prePackageInstall!
 
 !ProtoObject methodsFor: '*Haverize-debugging' stamp: 'KLG 1/3/2021 16:56:40'!

          
@@ 589,21 621,23 @@ askConfirmationOnQuit
 		^self confirm: 'Do you really want to exit Haver without saving the image?' ].
 	^true! !
 
-!SystemDictionary methodsFor: '*Haverize-image, changes name' stamp: 'KLG 1/29/2024 22:45:07'!
+!SystemDictionary methodsFor: '*Haverize-image, changes name' stamp: 'KLG 8/14/2024 23:13:53'!
 baseNameForVersion: aSystemVersion distributionPrefix: aPrefixString distributionSuffix: aSuffixString 
 	"Answer a new haver base name for a system version."
 
-	^ String streamContents: [ :strm |
-		strm
+	^ String streamContents: [ :stream |
+		stream
 			nextPutAll: aPrefixString;
 			print: aSystemVersion versionMajor;
 			nextPut: $.;
 			print: aSystemVersion versionMinor;
 			nextPut: $-;
-			print: aSystemVersion highestUpdate;
+			print: aSystemVersion highestUpdate.
+		HaverizePackage printHaverVersionOn: stream.
+		stream
 			nextPutAll: aSuffixString.
 			Smalltalk wordSize = 4 ifTrue: [
-					strm nextPutAll: '-32' ] ]! !
+					stream nextPutAll: '-32' ] ]! !
 
 !SystemDictionary methodsFor: '*Haverize-image, changes name' stamp: 'KLG 4/11/2021 17:58:31'!
 cuisBaseNameForCurrentVersion

          
@@ 915,27 949,6 @@ enclose: aKeyboardEvent
 			self selectFrom: startIndex+1 to: stopIndex].
 	^ true.! !
 
-!FeatureRequirement methodsFor: '*Haverize-private' stamp: 'KLG 6/22/2024 15:39:09'!
-placesToLookForPackagesDo: aBlock
-
-	| myDir |
-
-       "Keep this behavior from Cuis:"
-
-	"Look inside my own folder"
-	pathName ifNotNil: [
-		myDir := pathName asFullFileEntry parent.
-		aBlock value: myDir ].
-
-	"Look in codePackageFile folder"
-	codePackageFile ifNotNil: [
-		myDir := codePackageFile fullName asFullFileEntry parent.
-		aBlock value: myDir ].
-
-	"Bootstrap, remove the Cuis stuff and restrict ourselfes to the Haver directory.
-	Will be overridden in the HaverDirectories package:"
-	DirectoryEntry currentDirectory / 'HaverOnCuis' allRegularDirectoriesDo: aBlock! !
-
 !RealEstateAgent class methodsFor: '*Haverize-window area' stamp: 'KLG 8/3/2023 11:49:27'!
 freeQuadrantsDo: aBlock
 	"Evaluate a block with each free, meaning containing no window, quadrant.