@@ 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
@@ 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.