stx_goodies_monticello.st
author Claus Gittinger <cg@exept.de>
Thu, 03 Nov 2016 13:22:28 +0100
changeset 1014 8e77e7bafd66
parent 973 8a67537c9bea
child 995 92bb466548a9
child 1068 d31a825dfb42
permissions -rw-r--r--
#BUGFIX by cg class: MCMczWriter changed: #flush obsolete method called.

"{ Package: 'stx:goodies/monticello' }"

"{ NameSpace: Smalltalk }"

LibraryDefinition subclass:#stx_goodies_monticello
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'* Projects & Packages *'
!

!stx_goodies_monticello class methodsFor:'documentation'!

documentation
"
    Package documentation:

    This library provides support classes to read and write monticello packages
    (as used in Squeak and Pharo) and a GUI to browse and load such packages.

    Notice that Squeak packages usually do not work out-of-the-box in ST/X.
"
! !

!stx_goodies_monticello class methodsFor:'description'!

excludedFromPreRequisites
    "list all packages which should be ignored in the automatic
     preRequisites scan. See #preRequisites for more."

    ^ #(
    )
!

mandatoryPreRequisites
    "list all required mandatory packages.
     Packages are mandatory, if they contain superclasses of the package's classes
     or classes which are extended by this package.
     This list can be maintained manually or (better) generated and
     updated by scanning the superclass hierarchies
     (the browser has a menu function for that)
     However, often too much is found, and you may want to explicitely
     exclude individual packages in the #excludedFromPreRequisites method."

    ^ #(
        #'stx:libbasic'    "String - extended "
        #'stx:libbasic3'    "VersionInfo - extended "
        #'stx:libtool'    "Tools::NewSystemBrowser - extended "
        #'stx:libview2'    "ApplicationModel - superclass of extended Tools::NewSystemBrowser "
        #'stx:libcompat'
    )
!

referencedPreRequisites
    "list all packages containing classes referenced by the packages's members.
     This list can be maintained manually or (better) generated and
     updated by looking for global variable accesses
     (the browser has a menu function for that)
     However, often too much is found, and you may want to explicitely
     exclude individual packages in the #excludedFromPreRequisites method."

    ^ #(
        'stx:goodies/communication'     "/ HTTPInterface
    )
! !

!stx_goodies_monticello class methodsFor:'description - contents'!

classNamesAndAttributes
    "lists the classes which are to be included in the project.
     Each entry in the list may be: a single class-name (symbol),
     or an array-literal consisting of class name and attributes.
     Attributes are: #autoload or #<os> where os is one of win32, unix,..."

    ^ #(
        "<className> or (<className> attributes...) in load order"
        InMidstOfFileinNotification
        MCAncestry
        MCBrowserList
        MCChangeSelectionRequest
        MCConflict
        MCDefinition
        MCDefinitionIndex
        MCDependencySorter
        (MCDependentsWrapper autoload)
        MCDialog
        MCDirtyPackageInfo
        MCDoItParser
        MCEmptyPackageInfo
        MCFrontier
        MCInteractiveLoadingQuery
        MCLazyPropertyDictionary
        MCMergeRecord
        MCMergeResolutionRequest
        MCMerger
        MCMock
        MCMockAPoolDictionary
        MCMockDependency
        MCMockPackageInfo
        MCNoChangesException
        MCPackage
        MCPackageCache
        MCPackageEntry
        MCPackageLoader
        MCPackageManager
        MCPatch
        MCPatchOperation
        MCPatcher
        MCReader
        MCRepository
        MCRepositoryBrowser
        MCRepositoryEntry
        MCRepositoryGroup
        MCScanner
        MCSettingsApp
        MCSnapshot
        MCSourceCodeManager
        MCStXNamespaceQuery
        MCStXPackageInfo
        MCStXPackageQuery
        MCStXSnapshotTransformation
        MCStxVersionInfo
        MCTimestampAnnotation
        MCTool
        (MCToolWindowBuilder autoload)
        MCVariableDefinition
        MCVersion
        MCVersionDependency
        MCVersionEntry
        MCVersionLoader
        MCVersionMerger
        MCVersionNameAndMessageRequest
        MCVersionNotification
        MCVersionSorter
        MCWriter
        MethodReference
        PackageOrganizer
        #'stx_goodies_monticello'
        MCAddition
        MCClassComment
        MCClassDefinition
        MCClassInstanceVariableDefinition
        MCClassTraitDefinition
        MCClassTraitParser
        MCClassVariableDefinition
        MCCodeTool
        MCCommitDialog
        MCDictionaryRepository
        MCDiffyVersion
        MCFileBasedRepository
        MCFilteredVersionSorter
        MCGOODSRepository
        MCInstanceVariableDefinition
        MCMczWriter
        MCMethodDefinition
        MCMockDefinition
        MCMockDependentItem
        MCModification
        MCMultiPackageLoader
        MCOrganizationDefinition
        MCPackageList
        MCPoolImportDefinition
        MCRemoval
        MCRepositoryDialog
        MCRepositoryList
        (MCSaveVersionDialog autoload)
        MCScriptDefinition
        MCSnapshotReader
        MCStWriter
        MCStXSnapshotPostReadTransformation
        MCStXSnapshotPreWriteTransformation
        MCSystemCategoryParser
        MCThreeWayMerger
        MCTraitParser
        MCVersionHistoryBrowser
        MCVersionInfo
        MCVersionInfoWriter
        MCVersionInspector
        MCVersionList
        MCVersionReader
        MCWorkingAncestry
        MCWorkingCopy
        (MCWorkingCopyBrowser autoload)
        MCWriteOnlyRepository
        MCDirectoryRepository
        (MCFileRepositoryInspector autoload)
        MCFtpRepository
        MCHttpRepository
        MCLazyVersionInfo
        MCMcdWriter
        MCMczReader
        MCPatchBrowser
        MCPostscriptDefinition
        MCPreambleDefinition
        MCRemovalPostscriptDefinition
        MCRemovalPreambleDefinition
        (MCRepositoryInspector autoload)
        (MCSMCacheRepository autoload)
        MCSMReleaseRepository
        MCSmtpRepository
        (MCSnapshotBrowser autoload)
        MCStReader
        MCStxMczWriter
        MCStxStWriter
        MCTraitDefinition
        (MCWorkingHistoryBrowser autoload)
        MCCacheRepository
        (MCChangeSelector autoload)
        MCMcdReader
        (MCMergeBrowser autoload)
        MCSubDirectoryRepository
    )
!

extensionMethodNames
    "lists the extension methods which are to be included in the project.
     Entries are pairwise elements, consisting of class-name and selector."

    ^ #(
        Behavior traitCompositionString
        Behavior typeOfClass
        Class asClassDefinition
        Class classDefinitions
        Class poolDictionaryNames
        ClassDescription mcDefinition
        Object isConflict
        SequenceableCollection copyReplaceAll:with:asTokens:
        Stream isMessageStream
        String extractNumber
        String withSqueakLineEndings
        StringCollection asStringWithNativeLineEndings
        StringCollection asStringWithSqueakLineEndings
        Symbol isDoIt
        #'Tools::NewSystemBrowser' projectMenuMonticelloCommit
        UndefinedObject typeOfClass
        UserPreferences mcEnabled
        UserPreferences mcEnabled:
        UserPreferences mcRepositories
        UserPreferences mcRepositories:
        VersionInfo timeStamp
        'Annotation class' mctimestamp:
        'ProjectDefinition class' #'monticelloTimestamps_code'
        'ProjectDefinition class' #'monticelloTimestamps_codeFor:'
        'Timestamp class' fromMethodTimeStamp:
        Change mcDefinition
        Change mcDefinition:
        'ProjectDefinition class' monticelloName
        'ProjectDefinition class' #'monticelloAncestry_code'
        PackageInfo isMCStXPackageInfo
        CharacterArray asStringWithSqueakLineEndings
        CharacterArray asStringWithNativeLineEndings
        'ProjectDefinition class' monticelloNameForMCZ
    )
! !

!stx_goodies_monticello class methodsFor:'description - project information'!

applicationIconFileName
    "Return the name (without suffix) of an icon-file (the app's icon); will be included in the rc-resource file"

    ^ nil
    "/ ^ self applicationName
!

companyName
    "Return a companyname which will appear in <lib>.rc"

    ^ 'eXept Software AG'
!

description
    "Return a description string which will appear in vc.def / bc.def"

    ^ 'Smalltalk/X Monticello Class library'

    "Modified: / 20-08-2011 / 16:57:40 / cg"
!

legalCopyright
    "Return a copyright string which will appear in <lib>.rc"

    ^ 'Public - See SqueakSource'

    "Modified: / 20-08-2011 / 16:58:01 / cg"
!

productInstallDirBaseName
    "Returns a default installDir which will appear in <app>.nsi.
     This is usually not the one you want to keep"

    ^ (self package asCollectionOfSubstringsSeparatedByAny:':/') last
!

productName
    "Return a product name which will appear in <lib>.rc"

    ^ 'Smalltalk/X'
! !

!stx_goodies_monticello class methodsFor:'documentation'!

version
    ^ '$Header: /cvs/stx/stx/goodies/monticello/stx_goodies_monticello.st,v 1.25 2015-02-21 12:34:04 cg Exp $'
!

version_CVS
    ^ '$Header: /cvs/stx/stx/goodies/monticello/stx_goodies_monticello.st,v 1.25 2015-02-21 12:34:04 cg Exp $'
! !