# HG changeset patch # User Gerald Klix (speedy) # Date 1723670314 -7200 # Wed Aug 14 23:18:34 2024 +0200 # Branch Cuis7.0based # Node ID 14983566498b879e87e3727251ca1ea28aa1580b # Parent d63e762345cc372c2da9f1a32feeed4a6ca72128 SUM: Added a Haver version. diff --git a/Haverize.st b/Haverize.st --- a/Haverize.st +++ b/Haverize.st @@ -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 diff --git a/haver/Haverize.pck.st b/haver/Haverize.pck.st --- a/haver/Haverize.pck.st +++ b/haver/Haverize.pck.st @@ -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 @@ category: 'Haverize'! !classDefinition: 'HaverizePackage class' category: #Haverize! HaverizePackage class - instanceVariableNames: 'isUnzippedDistribution isNewlyHaverized'! + instanceVariableNames: 'isUnzippedDistribution isNewlyHaverized haverVersion'! !HaverizePackage commentStamp: '' prior: 0! @@ -157,7 +157,7 @@ ^ 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 @@ self installHaverPackagesFromRepository: rootDirectory ] ifTrue: [ self installHaverPackagesFromUnzippedDistribution: rootDirectory ]. - self shouldIntegrate ifTrue: [ self integrateHaverPackages ] ] + self shouldIntegrate ifTrue: [ self integrateHaverPackages ] ] ifNil: [ Transcript cr; @@ -311,6 +311,38 @@ "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 @@ ^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 @@ 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.