stx_goodies_metacello.st
author jv
Mon, 03 Sep 2012 11:27:03 +0000
changeset 2 7b5f1be6a996
parent 1 9e312de5f694
child 8 e046a5b3427f
permissions -rw-r--r--
Make MetacelloVersionNumber a variableSubclass

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

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


!stx_goodies_metacello class methodsFor:'description'!

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

    ^ #(
    )
!

preRequisites
    "list all required packages.
     This list can be maintained manually or (better) generated and
     updated by scanning the superclass hierarchies and looking for
     global variable accesses. (the browser has a menu function for that)
     Howevery, often too much is found, and you may want to explicitely
     exclude individual packages in the #excludedFromPrerequisites method."

    ^ #(
        #'stx:goodies/monticello'    "MCCacheRepository - referenced by ConfigurationOf class>>bootstrapPackage:from: "
        #'stx:goodies/sunit'    "TestCase - superclass of MetacelloSpecTestCase "
        #'stx:libbasic'    "ProjectDefinition - superclass of stx_goodies_metacello "
    )
! !

!stx_goodies_metacello 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"
        ConfigurationOf
        Metacello
        MetacelloAbstractConstructor
        MetacelloCannotUpdateReleasedVersionError
        MetacelloCleanNotification
        MetacelloClearStackCacheNotification
        (MetacelloCommonVersionNumberTestCase autoload)
        MetacelloErrorInProjectConstructionNotification
        MetacelloMethodSection
        MetacelloMethodSpec
        MetacelloPackageSpecResolutionError
        MetacelloPlatform
        MetacelloProject
        MetacelloProjectRegistration
        MetacelloProjectRegistry
        MetacelloProjectSpecForLoad
        MetacelloProjectSpecGenerator
        MetacelloProjectSpecLoadError
        MetacelloScriptEngine
        MetacelloScriptExecutor
        MetacelloScriptGitHubDownloadNotification
        MetacelloScriptNotification
        MetacelloScriptingError
        MetacelloSemanticVersionNumber
        MetacelloSkipDirtyPackageLoad
        MetacelloSpec
        MetacelloSpecLoader
        (MetacelloSpecTestCase autoload)
        MetacelloStackCacheNotification
        (MetacelloStackCacheTestCase autoload)
        MetacelloValidationFailure
        MetacelloValidationIssue
        MetacelloValidationNotification
        MetacelloVersion
        MetacelloVersionDoesNotExistError
        MetacelloVersionNumber
        #'stx_goodies_metacello'
        BaselineOf
        MetacelloAbstractPackageSpec
        MetacelloAbstractVersionConstructor
        MetacelloBaseConfiguration
        MetacelloBaselineSpecGenerator
        MetacelloCleanLoadAndTestsNotification
        MetacelloCleanLoadNotification
        MetacelloConfigurationSpecGenerator
        MetacelloConflictingProjectError
        (MetacelloGroupSpecTestCase autoload)
        MetacelloLockedProjectError
        MetacelloMemberListSpec
        MetacelloMemberSpec
        (MetacelloPackagesSpecTestCase autoload)
        (MetacelloProjectReferenceSpecTestCase autoload)
        MetacelloProjectSpec
        MetacelloProjectSpecLoadConflict
        (MetacelloProjectSpecTestCase autoload)
        MetacelloResolveProjectUpgrade
        MetacelloScriptApiExecutor
        MetacelloScriptEnsureProjectLoadedForDevelopment
        MetacelloScriptImageExecutor
        MetacelloScriptProjectSpecNotification
        MetacelloScriptRegistryExecutor
        (MetacelloSemanticVersionNumberTestCase autoload)
        MetacelloSymbolicVersionDoesNotExistError
        MetacelloSymbolicVersionMethodSpec
        MetacelloSymbolicVersionSpec
        MetacelloUseUpgradeError
        MetacelloValidationCriticalWarning
        MetacelloValidationError
        MetacelloValidationWarning
        MetacelloValueHolderSpec
        (MetacelloValueHolderSpecTestCase autoload)
        MetacelloVersionDefinitionError
        MetacelloVersionMethodSection
        MetacelloVersionMethodSpec
        (MetacelloVersionNumberTestCase autoload)
        MetacelloVersionSpec
        (MetacelloVersionSpecTestCase autoload)
        MetacelloVersionValidator
        MetacelloAddMemberSpec
        MetacelloAllowConflictingProjectUpgrade
        MetacelloAllowProjectDowngrade
        MetacelloAllowProjectUpgrade
        MetacelloBaselineConstructor
        MetacelloCopyMemberSpec
        MetacelloGenericProjectSpec
        MetacelloGroupSpec
        MetacelloLookupBaselineSpecForEnsureLoad
        MetacelloLookupProjectSpec
        MetacelloLookupProjectSpecForLoad
        MetacelloMergeMemberSpec
        MetacelloPackagesSpec
        MetacelloProjectReferenceSpec
        MetacelloProjectSpecLoadedNotification
        MetacelloRemoveMemberSpec
        MetacelloSymbolicVersionNotDefinedError
        MetacelloToolBoxConstructor
        MetacelloVersionConstructor
    )
!

extensionMethodNames
    "lists the extension methods which are to be included in the project.
     Entries are 2-element array literals, consisting of class-name and selector."

    ^ #(
        Block execute:against:
        Block setAuthorInMetacelloConfig:
        Block setBaseline:withInMetacelloConfig:
        Block setBlessingInMetacelloConfig:
        Block setConfiguration:withInMetacelloConfig:
        Block setDescriptionInMetacelloConfig:
        Block setPackage:withInMetacelloConfig:
        Block setProject:withInMetacelloConfig:
        Block setTimestampInMetacelloConfig:
        Collection addToMetacelloPackages:
        Collection execute:against:
        Collection mergeIntoMetacelloPackages:
        Collection removeFromMetacelloPackages:
        Collection setIncludesInMetacelloPackage:
        Collection setLoadsInMetacelloProject:
        Collection setRequiresInMetacelloPackage:
        Integer metacelloIntegerLessThanSelf:
        Integer metacelloSemanticIntegerLessThanSelf:
        Integer metacelloSemanticStringLessThanSelf:
        Integer metacelloSemanticVersionComponentLessThan:
        Integer metacelloStringLessThanSelf:
        Integer metacelloVersionComponentLessThan:
        MCRepository flushForScriptGet
        Object metacelloIntegerLessThanSelf:
        Object metacelloSemanticIntegerLessThanSelf:
        Object metacelloSemanticStringLessThanSelf:
        Object metacelloSemanticVersionComponentLessThan:
        Object metacelloStringLessThanSelf:
        Object metacelloVersionComponentLessThan:
        String addToMetacelloPackages:
        String asMetacelloSemanticVersionNumber
        String asMetacelloVersionNumber
        String execute:against:
        String mergeIntoMetacelloPackages:
        String metacelloIntegerLessThanSelf:
        String metacelloSemanticIntegerLessThanSelf:
        String metacelloSemanticStringLessThanSelf:
        String metacelloSemanticVersionComponentLessThan:
        String metacelloStringLessThanSelf:
        String metacelloVersionComponentLessThan:
        String removeFromMetacelloPackages:
        String setAuthorInMetacelloConfig:
        String setAuthorInMetacelloVersion:
        String setBlessingInMetacelloConfig:
        String setBlessingInMetacelloVersion:
        String setDescriptionInMetacelloConfig:
        String setDescriptionInMetacelloVersion:
        String setIncludesInMetacelloPackage:
        String setLoadsInMetacelloProject:
        String setPackage:withInMetacelloConfig:
        String setPostLoadDoItInMetacelloSpec:
        String setPreLoadDoItInMetacelloSpec:
        String setProject:withInMetacelloConfig:
        String setRequiresInMetacelloPackage:
        String setTimestampInMetacelloConfig:
        String setTimestampInMetacelloVersion:
        Symbol setPostLoadDoItInMetacelloSpec:
        Symbol setPreLoadDoItInMetacelloSpec:
        Timestamp setTimestampInMetacelloConfig:
        Timestamp setTimestampInMetacelloVersion:
        UndefinedObject asMetacelloSemanticVersionNumber
        UndefinedObject asMetacelloVersionNumber
        UndefinedObject metacelloRegistrationHash
        UndefinedObject registrationsCompareEqual:
        UndefinedObject setAuthorInMetacelloVersion:
        UndefinedObject setBlessingInMetacelloVersion:
        UndefinedObject setDescriptionInMetacelloVersion:
        UndefinedObject setPostLoadDoItInMetacelloSpec:
        UndefinedObject setPreLoadDoItInMetacelloSpec:
        UndefinedObject setProject:withInMetacelloConfig:
        UndefinedObject setTimestampInMetacelloVersion:
    )
! !

!stx_goodies_metacello 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 Class library'
!

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

    ^ 'Copyright Claus Gittinger 1988-2012\nCopyright eXept Software AG 1998-2012'
!

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_metacello class methodsFor:'description - svn'!

svnRepositoryUrlString
    "Return a SVN repository URL of myself.
     (Generated since 2011-04-08)
     Do not make the string shorter!!!!!! We have to use fixed-length keyword!!!!!!
    "        

    ^ '$URL::                                                                                                                        $'
!

svnRevisionNr
    "Return a SVN revision number of myself.
     This number is updated after a commit"

    ^ "$SVN-Revision:"'2               '"$"
! !

!stx_goodies_metacello class methodsFor:'documentation'!

version_SVN
    ^ '$Id::                                                                                                                        $'
! !