[Pkg] Monticello Public: PackageInfo-Base-kph.58.mcz
squeak-dev-noreply at lists.squeakfoundation.org
squeak-dev-noreply at lists.squeakfoundation.org
Sun Dec 7 03:56:26 UTC 2008
A new version of PackageInfo-Base was added to project Monticello Public:
http://www.squeaksource.com/mc/PackageInfo-Base-kph.58.mcz
==================== Summary ====================
Name: PackageInfo-Base-kph.58
Author: kph
Time: 7 December 2008, 3:56:24 am
UUID: 501a6979-ec82-4594-a99c-fb7b68a4db57
Ancestors: PackageInfo-Base-kph.57
added files support and class comment to go with
=============== Diff against PackageInfo-Base-kph.57 ===============
Item was added:
+ ----- Method: PackageInfo>>externalFilesMatches (in category 'naming') -----
+ externalFilesMatches
+
+ ^ self systemCategoryPrefix in: [ :prefix |
+ { prefix. (prefix , '.*'). (prefix , '-*'). } ]!
Item was changed:
Object subclass: #PackageInfo
instanceVariableNames: 'packageName methodCategoryPrefix properties'
classVariableNames: ''
poolDictionaries: ''
category: 'PackageInfo-Base'!
PackageInfo class
instanceVariableNames: 'default'!
+ !PackageInfo commentStamp: 'kph 12/7/2008 03:10' prior: 0!
+ Subclass this class to create new specialised packages, and make sure that #isResponsibleForName: is correctly defined.
+
+ We have a number of useful default package types defined. If you use the appropriate suffix for the package name you add, then it will select the correct PacakgeInfo subclass.
+
+ Package types for selective platform specific code exporting are available as an addon package. I.e. you can have a single package, and have a Seaside.vw Seaside.squeak etc providing different exports of the same codebase.
+
+ External Files Support
+ ================
+
+ The default implementation of the two methods below considers all files and directories (with their contents) matching the package name to be part of the package.
+
+ #externalFiles
+ #externalFilesMatches
+
+ e.g. package name 'Release'.
+
+ files matching would include:
+
+ Release.text
+ Release/Introduction.text
+ Release/Tutorial/ch1.text
+
+ External Files Support - Monticello
+ ========================================
+ *Only file based repositories (i.e. .mcz files) are supported at present
+
+ Since your external files will change far less than your code, it is recommended that you
+ use a separate package to manage files in order to save space and time.
+
+ Files are included in the .mcz (which is a standard zip archive)
+ as files/* according to the pattern files/<uuid>/<path>/<to>/<file>
+
+ *note: the uuid will change with every snapshot, it is unique to that file in that snapshot
+ *note: in changes browsers the file is considered to be changed if the fileSize has changed.
+
+ Snapshotting a package with files uses a temporary directory in package-cache/files
+ The #flushCachedVersions menu item deletes this directory.
+
+
+
+
+
+
+
+ OSProcess!
- !PackageInfo commentStamp: 'kph 6/2/2008 23:37' prior: 0!
- Subclass this class to create new Packages.
- !
Item was added:
+ ----- Method: FileDirectory>>entriesAsFDs (in category '*packageinfo-base') -----
+ entriesAsFDs
+
+ ^ self entriesRecursive: false on: OrderedCollection new
+ !
Item was added:
+ ----- Method: FileDirectory>>allEntriesAsFDs (in category '*packageinfo-base') -----
+ allEntriesAsFDs
+
+ ^ self entriesRecursive: true on: OrderedCollection new
+ !
Item was added:
+ ----- Method: FileDirectory>>entriesRecursive:on: (in category '*packageinfo-base') -----
+ entriesRecursive: isRecursive on: aCollection
+
+ | aFD |
+
+ self entries do: [ :dirEntry |
+
+ aFD := self fullNameFor: dirEntry name.
+
+ dirEntry isDirectory
+ ifTrue: [ isRecursive ifTrue: [ (FileDirectory on: aFD) entriesRecursive: isRecursive on: aCollection ] ]
+ ifFalse: [ aCollection add: (FileDirectory on: aFD) ]
+ ].
+
+ ^ aCollection!
Item was added:
+ ----- Method: PackageInfo>>externalFiles (in category 'naming') -----
+ externalFiles
+
+ | matches entries |
+
+ matches := self externalFilesMatches.
+
+ entries := (FileDirectory default entriesAsFDs) select: [ :aFD | matches anySatisfy: [ :match | match match: aFD localName ] ].
+
+ entries addAll: (entries gather: [ :aFD | aFD allEntriesAsFDs ]).
+
+ ^ entries !
Item was changed:
Object subclass: #PackageOrganizer
instanceVariableNames: 'packages'
classVariableNames: ''
poolDictionaries: ''
category: 'PackageInfo-Base'!
PackageOrganizer class
instanceVariableNames: 'default'!
+
+ !PackageOrganizer commentStamp: 'kph 12/7/2008 01:38' prior: 0!
+ PacakgeOrganizer default explore!
Item was changed:
PackageInfo subclass: #PackageInfoTests
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'PackageInfo-Base'!
-
- !PackageInfoTests commentStamp: 'kph 6/1/2008 11:34' prior: 0!
- Packages named MyPackage.test
-
- Includes:
-
- MyPackage-Category-Tests
- MyPackage-Category-Testing
- MyPackage-Category-TestSupport
-
- and method categories
-
- *mypackage.test!
More information about the Packages
mailing list