A new version of Packages-Library was added to project Packages:
http://www.squeaksource.com/Packages/Packages-Library-kph.80.mcz
==================== Summary ====================
Name: Packages-Library-kph.80
Author: kph
Time: 30 June 2009, 2:13:50 pm
UUID: 9f3b916f-dc57-49a3-aa62-94d9b72398b4
Ancestors: Packages-Library-kph.79
auto regenerated:
PackagesDevU>>OBEnhancements{Code Browsing} (changed)
PackagesDevU>>PierSetup{Web Development} (changed)
PackagesDevU>>OmniBrowserStandard{Code Browsing} (changed)
PackagesDevU>>OmniBrowser{Code Browsing} (changed)
PackagesDevU>>PierSeaside{Web Development} (changed)
PackagesDevU>>PierLightBox{Web Development} (changed)
PackagesDevU>>Scriptaculous{Web Development} (changed)
PackagesDevU>>CloudforkAWS{Web Development}
PackagesDevU>>FileBase{Model Extension} (changed)
PackagesDevU>>PierSqueakPersistency{Development} (changed)
PackagesDevU>>PierTagCloud{Web Development} (changed)
PackagesDevU>>PierRandomizer{Web Development} (changed)
PackagesDevU>>MagritteModel{Development} (changed)
PackagesDevU>>PierModel{Development} (changed)
PackagesDevU>>PierShout{Web Development} (changed)
PackagesDevU>>PierSitemap{Web Development} (changed)
PackagesDevU>>CloudforkSqueakPlatform{Web Development}
PackagesDevU>>Monticello16{Group Development} (changed)
PackagesDevU>>Comet{Web Development} (changed)
PackagesDevU>>PierDesign{Web Development} (changed)
PackagesDevU>>OmniBrowserTools{Development} (changed)
PackagesDevU>>PierTitles{Web Development} (changed)
PackagesDevU>>Squeakdevimage{Squeak Distributions} (changed)
PackagesDevU>>Monticello15{Group Development} (changed)
PackagesDevU>>PierSecurity{Web Development} (changed)
PackagesDevU>>TimeZoneDatabase{Uncategorized} (changed)
PackagesDevU>>OmniBrowserMorphic{Code Browsing} (changed)
PackagesDevU>>RSRSS2{Web Development} (changed)
PackagesDevU>>Seaside{Web Development} (changed)
PackagesDevU>>PierGoogle{Web Development} (changed)
PackagesDevU>>PierEditorEnh{Web Development} (changed)
PackagesDevU>>OCompletion{Uncategorized}
PackagesDevU>>PierDocuments{Web Development} (changed)
PackagesDevU>>PierLinks{Web Development} (changed)
PackagesDevU>>MagritteTests{Development} (changed)
PackagesDevU>>PierTests{Development} (changed)
PackagesDevU>>MagritteSeaside{Web Development} (changed)
PackagesDevU>>PierBlog{Web Development} (changed)
=============== Diff against Packages-Library-kph.79 ===============
Item was changed:
----- Method: PackagesDevU>>PierSecurity (in category 'Web Development') -----
PierSecurity
self name: 'Pier-Security'.
+ self version: '1.1.1.141'.
- self version: '1.1.1.121'.
info category: 'Web Development'.
info description:
'Pier Unix security plugin.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.piercms.com/'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/pier/Pier-Security-lr.141.mcz'.
- info url: 'http://source.lukas-renggli.ch/pier/Pier-Security-lr.121.mcz'.
self provides: #().
self dependsOn: #('Pier-Seaside' 'Pier-Tests').
!
Item was changed:
----- Method: PackagesDevU>>OmniBrowserStandard (in category 'Code Browsing') -----
OmniBrowserStandard
self name: 'OmniBrowser-Standard'.
+ self version: '0.406'.
- self version: '0.402'.
info category: 'Code Browsing'.
info description:
'OB-Standard represents the classical system browser implemented with the OmniBrowser framework.'.
info maintainer: 'Colin Putney'.
info homepage: 'http://source.wiresong.ca/ob/'.
info squeakMapID: ''.
+ info url: 'http://source.wiresong.ca/ob/OB-Standard-dr.406.mcz'.
- info url: 'http://source.wiresong.ca/ob/OB-Standard-dr.402.mcz'.
self provides: #().
self dependsOn: #('OmniBrowser').
!
Item was changed:
----- Method: PackagesDevU>>OmniBrowser (in category 'Code Browsing') -----
OmniBrowser
self name: 'OmniBrowser'.
+ self version: '0.447'.
- self version: '0.444'.
info category: 'Code Browsing'.
info description:
'OmniBrowser is a ground up rewrite of the classical system browsers provided
in Smalltalk. It''s designed to be flexible and extensible, so as to encourage
experimentation with new types of development tools, language extensions,
and runtime environments. In fact it''s a framework to build browsers. Install OmniBrowser-Standard to get the new browser using this framework.'.
info maintainer: 'Damien Cassou <damien.cassou(a)gmail.com>'.
info homepage: 'http://source.wiresong.ca/ob/'.
info squeakMapID: '81451b19-7df8-4fc7-8652-b26cc55dd291'.
+ info url: 'http://source.wiresong.ca/ob/OmniBrowser-dr.447.mcz'.
- info url: 'http://source.wiresong.ca/ob/OmniBrowser-dr.444.mcz'.
self provides: #().
self dependsOn: #().
!
Item was changed:
----- Method: PackagesDevU>>RSRSS2 (in category 'Web Development') -----
RSRSS2
self name: 'RSRSS2'.
+ self version: '2.8.4.12'.
- self version: '2.8.3.11'.
info category: 'Web Development'.
info description:
'RSS 2.0 feed creation with Seaside canvas API.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: ''.
info squeakMapID: ''.
+ info url: 'http://www.squeaksource.com/rsrss/RSRSS2-pmm.12.mcz'.
- info url: 'http://www.squeaksource.com/rsrss/RSRSS2-SW.11.mcz'.
self provides: #().
self dependsOn: #('Seaside').
!
Item was changed:
----- Method: PackagesDevU>>Monticello15 (in category 'Group Development') -----
Monticello15
self name: 'Monticello15'.
self version: '1.5+'.
info category: 'Group Development'.
info description:
'Monticello - evolution - Improvements over 1.0
- Method/Class Orphanage which enables out-of-order loading of packages, and maintenance of packages whose dependencies have not been loaded.
- Method Overrides (if properly categorized) are fully supported preserving the integrity of a package even if it has overridden methods
- Refactored UI/repository classes so that one UI heirachy serves all.
- Dual Changes Browser
- In memory cache repository
- Support for configurations (Please name them using the MC conventions)
- Support for more complex version numbering conventions i.e. Package-kph-1.0.3.mcz
known problems:
methods have been known to loose their categories
future:
Atomic Loading loader using System Editor is already coded and contained in this release.
See #theChosenLoaderClass.
'.
info maintainer: 'kph <keith_hodges(a)yahoo.co.uk>'.
info homepage: ''.
info squeakMapID: ''.
+ info url: 'http://ftp.squeak.org/3.11/scripts/mc15.st'.
+ self provides: #('Monticello15' 'Installer' 'MonticelloConfigurations' 'PackageInfo-Base').
- info url: 'http://installer.pbwiki.com/f/mc15.st'.
- self provides: #('PackageInfo-Base' 'Installer' 'MonticelloConfigurations' 'Monticello15').
self dependsOn: #().
!
Item was changed:
----- Method: PackagesDevU>>TimeZoneDatabase (in category 'Uncategorized') -----
TimeZoneDatabase
self name: 'TimeZoneDatabase'.
+ self version: '1.3.2'.
- self version: '1.2.5'.
info category: 'Uncategorized'.
info description:
+ 'This is a time zone database for Smalltalk. It answers the number of seconds offset from UTC for any time zone at any point in time in the range of the database rule set, as well as the number of leap seconds for a point in time (for tzfiles which contain the leap second rules).
- 'This is a time zone database for Smalltalk. It answers the number of seconds
- offset from UTC for any time zone at any point in time in the range of the
- database rule set, as well as the number of leap seconds for a point in time
- (for tzfiles which contain the leap second rules).
+ A full time zone database requires access to tzfile data files, typically distributed with Unix (Linux) systems. A limited set of tzfile files is provided to initialize the database and demonstrate its functions.
+
+ Note: Some Squeak images (including 3.10.2) will require the fix posted in Mantis 7356 (http://bugs.squeak.org/view.php?id=7356) in order for all unit tests to pass.
- A full time zone database requires access to tzfile data files, typically
- distributed with Unix (Linux) systems. A limited set of tzfile files is provided
- to initialize the database and demonstrate its functions.
- ~
'.
info maintainer: 'Dave Lewis <lewis(a)mail.msen.com>'.
info homepage: 'http://wiki.squeak.org/squeak/1076'.
+ info squeakMapID: '788b52f3-1192-4534-b200-47f105d12a3e'.
+ info url: 'http://wiki.squeak.org/squeak/uploads/1076/TimeZoneDatabaseV1-3-2-dtl.cs'.
- info squeakMapID: ''.
- info url: 'http://wiki.squeak.org/squeak/uploads/1076/TimeZoneDatabaseV1-2-5-dtl.cs.gz'.
self provides: #().
self dependsOn: #().
!
Item was changed:
----- Method: PackagesDevU>>PierLightBox (in category 'Web Development') -----
PierLightBox
self name: 'Pier-LightBox'.
+ self version: '1.1.1.8'.
- self version: '1.1.1.6'.
info category: 'Web Development'.
info description:
'Pier lightbox plugin.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.piercms.com/'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-LightBox-lr.8.mcz'.
- info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-LightBox-dc.6.mcz'.
self provides: #().
self dependsOn: #('Pier-Seaside').
!
Item was changed:
----- Method: PackagesDevU>>PierTests (in category 'Development') -----
PierTests
self name: 'Pier-Tests'.
+ self version: '1.1.1.137'.
- self version: '1.1.1.117'.
info category: 'Development'.
info description:
'Pier SUnit tests.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.piercms.com/'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/pier/Pier-Tests-lr.137.mcz'.
- info url: 'http://source.lukas-renggli.ch/pier/Pier-Tests-lr.117.mcz'.
self provides: #().
self dependsOn: #('Magritte-Tests' 'Pier-Model').
!
Item was changed:
----- Method: PackagesDevU>>OmniBrowserMorphic (in category 'Code Browsing') -----
OmniBrowserMorphic
self name: 'OmniBrowser-Morphic'.
+ self version: '0.88'.
- self version: '0.86'.
info category: 'Code Browsing'.
info description:
'OB-Standard represents the classical system browser implemented with the OmniBrowser framework.'.
info maintainer: 'Damien Cassou <damien.cassou(a)gmail.com>'.
info homepage: 'http://source.wiresong.ca/ob/'.
info squeakMapID: ''.
+ info url: 'http://source.wiresong.ca/ob/OB-Morphic-dr.88.mcz'.
- info url: 'http://source.wiresong.ca/ob/OB-Morphic-dr.86.mcz'.
self provides: #().
self dependsOn: #('OmniBrowser' 'OmniBrowser-Standard').
!
Item was changed:
----- Method: PackagesDevU>>PierSeaside (in category 'Web Development') -----
PierSeaside
self name: 'Pier-Seaside'.
+ self version: '1.1.1.419'.
- self version: '1.1.1.340'.
info category: 'Web Development'.
info description:
'Pier bindings for Seaside.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.piercms.com/'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/pier/Pier-Seaside-lr.419.mcz'.
- info url: 'http://source.lukas-renggli.ch/pier/Pier-Seaside-damiencassou.340.mcz'.
self provides: #().
self dependsOn: #('Magritte-Seaside' 'Pier-Model' 'Scriptaculous' 'Seaside').
!
Item was changed:
----- Method: PackagesDevU>>PierDocuments (in category 'Web Development') -----
PierDocuments
self name: 'Pier-Documents'.
+ self version: '1.1.1.15'.
- self version: '1.1.1.8'.
info category: 'Web Development'.
info description:
'Provide additional documents on a praticular structure, for example to add a side-bar. Custom documents can inherit from the parent and/or provide a default document.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.piercms.com/'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-Documents-lr.15.mcz'.
- info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-Documents-lr.8.mcz'.
self provides: #().
self dependsOn: #('Pier-Seaside').
!
Item was changed:
----- Method: PackagesDevU>>MagritteTests (in category 'Development') -----
MagritteTests
self name: 'Magritte-Tests'.
+ self version: '1.1.1.153'.
- self version: '1.1.1.149'.
info category: 'Development'.
info description:
'Magritte SUnit tests.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.lukas-renggli.ch/smalltalk/magritte'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/magritte/Magritte-Tests-lr.153.mcz'.
- info url: 'http://source.lukas-renggli.ch/magritte/Magritte-Tests-lr.149.mcz'.
self provides: #().
self dependsOn: #('Magritte-Model').
!
Item was changed:
----- Method: PackagesDevU>>Scriptaculous (in category 'Web Development') -----
Scriptaculous
self name: 'Scriptaculous'.
+ self version: '2.8.4.250'.
- self version: '2.8.3.242'.
info category: 'Web Development'.
info description:
'High-level Javascript bindings for the Seaside web application framework. This package includes PrototypeJS (http://www.prototypejs.org) and script.aculo.us (http://script.aculo.us).'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://scriptaculous.seasidehosting.st/'.
info squeakMapID: ''.
+ info url: 'http://www.squeaksource.com/Seaside/Scriptaculous-lr.250.mcz'.
- info url: 'http://www.squeaksource.com/Seaside/Scriptaculous-lr.242.mcz'.
self provides: #().
self dependsOn: #('Seaside').
!
Item was added:
+ ----- Method: PackagesDevU>>CloudforkAWS (in category 'Web Development') -----
+ CloudforkAWS
+
+ self name: 'Cloudfork-AWS'.
+ self version: '89'.
+ info category: 'Web Development'.
+ info description:
+ 'Smalltalk library for accessing the Amazon web service APIs related to cloud computing.'.
+ info maintainer: 'Jan van de Sandt <jvdsandt(a)gmail.com>'.
+ info homepage: 'http://www.squeaksource.com/Cloudfork.html'.
+ info squeakMapID: ''.
+ info url: 'http://www.squeaksource.com/Cloudfork/Cloudfork-AWS-jvds.89.mcz'.
+ self provides: #().
+
+ self dependsOn: #('HTTPClient' 'YAXO').
+
+ !
Item was changed:
----- Method: PackagesDevU>>MagritteSeaside (in category 'Web Development') -----
MagritteSeaside
self name: 'Magritte-Seaside'.
+ self version: '1.1.1.302'.
- self version: '1.1.1.284'.
info category: 'Web Development'.
info description:
'Magritte bindings for Seaside.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.lukas-renggli.ch/smalltalk/magritte'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/magritte/Magritte-Seaside-lr.302.mcz'.
- info url: 'http://source.lukas-renggli.ch/magritte/Magritte-Seaside-lr.284.mcz'.
self provides: #().
self dependsOn: #('Magritte-Model' 'Scriptaculous' 'Seaside').
!
Item was changed:
----- Method: PackagesDevU>>PierTagCloud (in category 'Web Development') -----
PierTagCloud
self name: 'Pier-TagCloud'.
+ self version: '1.1.1.12'.
- self version: '1.1.1.11'.
info category: 'Web Development'.
info description:
'Pier tag cloud plugin.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.piercms.com/'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-TagCloud-dkh.12.mcz'.
- info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-TagCloud-lr.11.mcz'.
self provides: #().
self dependsOn: #('Pier-Seaside').
!
Item was changed:
----- Method: PackagesDevU>>MagritteModel (in category 'Development') -----
MagritteModel
self name: 'Magritte-Model'.
+ self version: '1.1.1.349'.
- self version: '1.1.1.340'.
info category: 'Development'.
info description:
'Most applications consist of a big number of model- or so called domain-objects. Building different views, editors, and reports; querying, validating and storing those objects is very repetitive and error-prone, if an object changes its shape frequently. Magritte is a fully dynamic meta-description framework that helps to solve those problems, while keeping the full power to the programmer in all aspects. Moreover since Magritte is described in itself, you can let your users modify the meta-world and add their own fields and forms without writing a single line of code.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.lukas-renggli.ch/smalltalk/magritte'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/magritte/Magritte-Model-lr.349.mcz'.
- info url: 'http://source.lukas-renggli.ch/magritte/Magritte-Model-lr.340.mcz'.
self provides: #().
self dependsOn: #().
!
Item was changed:
----- Method: PackagesDevU>>PierShout (in category 'Web Development') -----
PierShout
self name: 'Pier-Shout'.
+ self version: '1.1.1.14'.
- self version: '1.1.1.10'.
info category: 'Web Development'.
info description:
'Pier Smalltalk syntax highlighting plugin.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.piercms.com/'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/pieraddons/ShoutPier-dr.14.mcz'.
- info url: 'http://source.lukas-renggli.ch/pieraddons/ShoutPier-lr.10.mcz'.
self provides: #().
self dependsOn: #('Pier-Seaside' 'Shout').
!
Item was changed:
----- Method: PackagesDevU>>PierDesign (in category 'Web Development') -----
PierDesign
self name: 'Pier-Design'.
+ self version: '1.1.1.6'.
- self version: '1.1.1.5'.
info category: 'Web Development'.
info description:
'Enabled design editing tools in the context of the applied page.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.piercms.com/'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-Design-lr.6.mcz'.
- info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-Design-tg.5.mcz'.
self provides: #().
self dependsOn: #('Pier-Seaside').
!
Item was changed:
----- Method: PackagesDevU>>OmniBrowserTools (in category 'Development') -----
OmniBrowserTools
self name: 'OmniBrowser-Tools'.
+ self version: '0.77'.
- self version: '0.76'.
info category: 'Development'.
info description:
'Set of tools (debugger, inspector...) rewritten on top of the OmniBrowser framework.'.
info maintainer: 'Dale Henrichs <dale.henrichs(a)gemstone.com>'.
info homepage: ''.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/omnibrowser/OB-Tools-dkh.77.mcz'.
- info url: 'http://source.lukas-renggli.ch/omnibrowser/OB-Tools-dkh.76.mcz'.
self provides: #().
self dependsOn: #('OmniBrowser' 'OmniBrowser-Morphic' 'OmniBrowser-Standard').
!
Item was added:
+ ----- Method: PackagesDevU>>CloudforkSqueakPlatform (in category 'Web Development') -----
+ CloudforkSqueakPlatform
+
+ self name: 'Cloudfork-Squeak-Platform'.
+ self version: '47'.
+ info category: 'Web Development'.
+ info description:
+ 'Smalltalk library for accessing the Amazon web service APIs related to cloud computing. This package contains the Squeak specific parts of the library'.
+ info maintainer: 'Jan van de Sandt <jvdsandt(a)gmail.com>'.
+ info homepage: 'http://www.squeaksource.com/Cloudfork.html'.
+ info squeakMapID: ''.
+ info url: 'http://www.squeaksource.com/Cloudfork/Cloudfork-Squeak-Platform-jvds.47.mcz'.
+ self provides: #().
+
+ self dependsOn: #('Cloudfork-AWS' 'HTTPClient' 'YAXO').
+
+ !
Item was changed:
----- Method: PackagesDevU>>PierEditorEnh (in category 'Web Development') -----
PierEditorEnh
self name: 'Pier-EditorEnh'.
+ self version: '1.1.1.48'.
- self version: '1.1.1.17'.
info category: 'Web Development'.
info description:
'Pier editor enhancement plugin.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.piercms.com/'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-EditorEnh-lr.48.mcz'.
- info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-EditorEnh-damiencassou.17.mcz'.
self provides: #().
self dependsOn: #('Pier-Seaside').
!
Item was changed:
----- Method: PackagesDevU>>PierLinks (in category 'Web Development') -----
PierLinks
self name: 'Pier-Links'.
+ self version: '1.1.1.4'.
- self version: '1.1.1.2'.
info category: 'Web Development'.
info description:
'Pier links for YouTube, Vimeo and SlideShare'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.piercms.com/'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-Links-lr.4.mcz'.
- info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-Links-damiencassou.2.mcz'.
self provides: #().
self dependsOn: #('Pier-Seaside').
!
Item was changed:
----- Method: PackagesDevU>>Comet (in category 'Web Development') -----
Comet
self name: 'Comet'.
+ self version: '2.8.4.29'.
- self version: '2.8.3.28'.
info category: 'Web Development'.
info description:
'High-level Comet bindings for the Seaside web application framework.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: ''.
info squeakMapID: ''.
+ info url: 'http://www.squeaksource.com/Seaside/Comet-lr.29.mcz'.
- info url: 'http://www.squeaksource.com/Seaside/Comet-lr.28.mcz'.
self provides: #().
self dependsOn: #('Scriptaculous').
!
Item was changed:
----- Method: PackagesDevU>>PierBlog (in category 'Web Development') -----
PierBlog
self name: 'Pier-Blog'.
+ self version: '1.1.1.117'.
- self version: '1.1.1.108'.
info category: 'Web Development'.
info description:
'Pier blog plugin.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.piercms.com/'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/pier/Pier-Blog-damiencassou.117.mcz'.
- info url: 'http://source.lukas-renggli.ch/pier/Pier-Blog-lr.108.mcz'.
self provides: #().
self dependsOn: #('Pier-Seaside' 'RSRSS2').
!
Item was changed:
----- Method: PackagesDevU>>FileBase (in category 'Model Extension') -----
FileBase
self name: 'File-Base'.
self version: '10'.
info category: 'Model Extension'.
info description:
'A file IO interface inspired by http://rio.rubyforge.org , potentially replaces FileDirectory/FileMan.
Transparently supports archives and ftp filesystems'.
info maintainer: 'keith_hodges(a)yahoo.co.uk'.
info homepage: 'http://wiki.squeak.org/squeak/5929'.
info squeakMapID: ''.
info url: 'http://www.squeaksource.com/Rio/File-Base-test.10.mcz'.
self provides: #().
+ self dependsOn: #('File-Kernel' 'StreamsReadability').
- self dependsOn: #('File-Kernel').
!
Item was changed:
----- Method: PackagesDevU>>PierSqueakPersistency (in category 'Development') -----
PierSqueakPersistency
self name: 'Pier-Squeak-Persistency'.
+ self version: '1.1.1.23'.
- self version: '1.1.1.18'.
info category: 'Development'.
info description:
'Pier persistency mechanisms for Squeak.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.piercms.com/'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/pier/Pier-Squeak-Persistency-lr.23.mcz'.
- info url: 'http://source.lukas-renggli.ch/pier/Pier-Squeak-Persistency-lr.18.mcz'.
self provides: #().
self dependsOn: #('Pier-Model' 'Pier-Tests').
!
Item was changed:
----- Method: PackagesDevU>>OBEnhancements (in category 'Code Browsing') -----
OBEnhancements
self name: 'OB-Enhancements'.
+ self version: '0.328'.
- self version: '0.317'.
info category: 'Code Browsing'.
info description:
'OB-Enhancements extend the OmniBrowser framework with new features such as multiple selection of elements in columns, a package-based view on the image instead of using just class categories, or smart groups to categorize source artifacts.
This package requires the latest version of the OmniBrowser framework.'.
info maintainer: 'David Röthlisberger'.
info homepage: 'http://source.wiresong.ca/ob/'.
info squeakMapID: ''.
+ info url: 'http://source.wiresong.ca/ob/OB-Enhancements-dr.327.mcz'.
- info url: 'http://source.wiresong.ca/ob/OB-Enhancements-dr.316.mcz'.
self provides: #().
+ self dependsOn: #('OmniBrowser' 'OmniBrowser-Morphic' 'OmniBrowser-Refactory' 'OmniBrowser-Standard').
- self dependsOn: #('OmniBrowser' 'OmniBrowser-Morphic' 'OmniBrowser-Standard').
!
Item was changed:
----- Method: PackagesDevU>>PierModel (in category 'Development') -----
PierModel
self name: 'Pier-Model'.
+ self version: '1.1.1.328'.
- self version: '1.1.1.271'.
info category: 'Development'.
info description:
'Pier is a powerful and extensible implementation of a meta-described content management and Wiki system, written with objects from top to bottom: (1) Object-Oriented Design: Pier features a fully object oriented and meta-described domain model. As an example, the content of the pages is parsed and stored as a tree of different entities representing text, links, tables, lists, etc. (2) Extensibility: Everything in Pier can be extended: page types, storage mechanism, actions, security mechanism, web-server, etc. Plug-ins can be shared within the community and loaded independently of each other into the system. (3) Open Source: Pier is released under the MIT license which grants unrestricted rights to copy, modify, and redistribute as long as the original copyright and license terms are retained. (4) Test Suites: Pier is heavily tested. There are more than 1200 unit tests included with the core of Pier. This makes it easy to change and verify the code and comes in extremely useful when porting Pier to other Smalltalk dialects or when writing extensions.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.piercms.com/'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/pier/Pier-Model-lr.328.mcz'.
- info url: 'http://source.lukas-renggli.ch/pier/Pier-Model-lr.271.mcz'.
self provides: #().
self dependsOn: #('Magritte-Model').
!
Item was changed:
----- Method: PackagesDevU>>PierTitles (in category 'Web Development') -----
PierTitles
self name: 'Pier-Titles'.
+ self version: '1.1.1.2'.
- self version: '1.1.1.1'.
info category: 'Web Development'.
info description:
'A set of widgets to control the title of a page.'.
info maintainer: 'Tudor Girba <tudor.girba(a)gmail.com>'.
info homepage: 'http://www.piercms.com/'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-Titles-lr.2.mcz'.
- info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-Titles-tg.1.mcz'.
self provides: #().
self dependsOn: #('Pier-Seaside').
!
Item was changed:
----- Method: PackagesDevU>>PierSitemap (in category 'Web Development') -----
PierSitemap
self name: 'Pier-Sitemap'.
+ self version: '1.1.1.21'.
- self version: '1.1.1.20'.
info category: 'Web Development'.
info description:
'Creates a Google and Yahoo Sitemap definitions.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.piercms.com/'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/pieraddons/Sitemap-lr.21.mcz'.
- info url: 'http://source.lukas-renggli.ch/pieraddons/Sitemap-pmm.20.mcz'.
self provides: #().
self dependsOn: #('Pier-Seaside' 'YAXO').
!
Item was changed:
----- Method: PackagesDevU>>PierGoogle (in category 'Web Development') -----
PierGoogle
self name: 'Pier-Google'.
+ self version: '1.1.1.15'.
- self version: '1.1.1.6'.
info category: 'Web Development'.
info description:
'Integration of Google services into Pier.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.piercms.com/'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-Google-lr.15.mcz'.
- info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-Google-lr.6.mcz'.
self provides: #().
self dependsOn: #('Pier-Seaside').
!
Item was changed:
----- Method: PackagesDevU>>PierSetup (in category 'Web Development') -----
PierSetup
self name: 'Pier-Setup'.
+ self version: '1.1.1.52'.
- self version: '1.1.1.39'.
info category: 'Web Development'.
info description:
'Metapackage that loads a common collection of Pier plugins, and a helper class to instantiate the one-click experience.'.
info maintainer: 'Tudor Girba <tudor.girba(a)gmail.com>'.
info homepage: 'http://www.piercms.com/'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-Setup-lr.52.mcz'.
- info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-Setup-tg.39.mcz'.
self provides: #().
self dependsOn: #('Pier-Blog' 'Pier-Design' 'Pier-Documents' 'Pier-EditorEnh' 'Pier-Google' 'Pier-Links' 'Pier-Randomizer' 'Pier-Security' 'Pier-Shout' 'Pier-Sitemap' 'Pier-TagCloud' 'Pier-Titles').
!
Item was changed:
----- Method: PackagesDevU>>PierRandomizer (in category 'Web Development') -----
PierRandomizer
self name: 'Pier-Randomizer'.
+ self version: '1.1.1.6'.
- self version: '1.1.1.4'.
info category: 'Web Development'.
info description:
'Pier randomizer plugin.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.piercms.com/'.
info squeakMapID: ''.
+ info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-Randomizer-lr.6.mcz'.
- info url: 'http://source.lukas-renggli.ch/pieraddons/Pier-Randomizer-lr.4.mcz'.
self provides: #().
self dependsOn: #('Pier-Seaside').
!
Item was changed:
----- Method: PackagesDevU>>Seaside (in category 'Web Development') -----
Seaside
self name: 'Seaside'.
+ self version: '2.8.4.591'.
- self version: '2.8.3.572'.
info category: 'Web Development'.
info description:
'A framework for building sophisticated web applications in Squeak. Develop for the web using reusable, embeddable components and unique call/return semantics for moving between pages.'.
info maintainer: 'Lukas Renggli <renggli(a)gmail.com>'.
info homepage: 'http://www.seaside.st/'.
info squeakMapID: ''.
+ info url: 'http://www.squeaksource.com/Seaside/Seaside2.8a1-lr.591.mcz'.
- info url: 'http://www.squeaksource.com/Seaside/Seaside2.8a1-lr.572.mcz'.
self provides: #().
self dependsOn: #('KomHttpServer').
!
Item was added:
+ ----- Method: PackagesDevU>>OCompletion (in category 'Uncategorized') -----
+ OCompletion
+
+ self name: 'OCompletion'.
+ self version: '1.0'.
+ info category: 'Uncategorized'.
+ info description:
+ 'OCompletion builds on ECompletion and improves its accuracy. We have shown in an article (http://www.inf.unisi.ch/phd/robbes/papers/ASE2008-completion.pdf) that the algorithm OCompletion uses (based on recent activity) considerably improves the accuracy of code completion. That is, the actual selector you want to insert is usually in the top 3 matches OCompletion proposes. In addition, OCompletion proposes matches as you type, instead of requiring you to press tab to see the matches'.
+ info maintainer: 'Romain Robbes <romain.robbes(a)gmail.com>'.
+ info homepage: 'http://www.squeaksource.com/OCompletion/'.
+ info squeakMapID: ''.
+ info url: 'http://www.squeaksource.com/OCompletion/OCLoader-rr.14.mcz'.
+ self provides: #().
+
+ self dependsOn: #().
+
+ !
Item was changed:
----- Method: PackagesDevU>>Monticello16 (in category 'Group Development') -----
Monticello16
self name: 'Monticello16'.
self version: '1.6+'.
info category: 'Group Development'.
info description:
'Monticello - evolution - Improvements over 1.5
Monticello on speed!!
'.
info maintainer: 'kph <keith_hodges(a)yahoo.co.uk>'.
info homepage: ''.
info squeakMapID: ''.
+ info url: 'http://ftp.squeak.org/3.11/bob/enableAtomicLoading.st'.
- info url: 'http://installer.pbwiki.com/f/enableAtomicLoading.st'.
self provides: #().
self dependsOn: #('Monticello15' 'SystemEditor').
!
Item was changed:
----- Method: PackagesDevU>>Squeakdevimage (in category 'Squeak Distributions') -----
Squeakdevimage
self name: 'Squeak-dev image'.
+ self version: '0.170'.
- self version: '0.169'.
info category: 'Squeak Distributions'.
info description:
'This package creates a squeak image made for developers. If you update a squeak-dev image, you can execute ''DEVImageCreator default install''.'.
info maintainer: 'Damien Cassou <damien.cassou(a)gmail.com>'.
info homepage: 'http://damien.cassou.free.fr/'.
info squeakMapID: ''.
+ info url: 'http://www.squeaksource.com/ImageForDevelopers/ImageForDevelopers-damiencas…'.
- info url: 'http://www.squeaksource.com/ImageForDevelopers/ImageForDevelopers-damiencas…'.
self provides: #().
self dependsOn: #('Squeak dev packages').
!
A new version of DeltaStreams-Model was added to project DeltaStreams:
http://www.squeaksource.com/DeltaStreams/DeltaStreams-Model-gk.13.mcz
==================== Summary ====================
Name: DeltaStreams-Model-gk.13
Author: gk
Time: 30 June 2009, 1:19:51 am
UUID: aafd211b-46b1-48fb-805b-90ed40547660
Ancestors: DeltaStreams-Model-gk.12
Some fixes related to DSDelta>>changes and changeSequence.
=============== Diff against DeltaStreams-Model-gk.12 ===============
Item was added:
+ ----- Method: DSChangeSequence>>select: (in category 'enumerating') -----
+ select: aBlock
+ ^ self changes select: aBlock!
Item was changed:
----- Method: DSDelta>>changes (in category 'accessing') -----
changes
+ ^ changeSequence changes!
- ^ changes!
Item was changed:
----- Method: DSVisitor>>applyDelta: (in category 'composite changes') -----
applyDelta: aDelta
"Treat like a composite change by default."
+ ^ self applyCompositeChange: aDelta changeSequence!
- ^ self applyCompositeChange: aDelta changes!
Item was changed:
----- Method: DSDelta>>normalize (in category 'applying') -----
normalize
"Modify changes so that they are compacted into the minimal form
still producing the equivalent end result. In other words - remove redundancy."
+ changeSequence ifNotNil: [
+ changeSequence moveClassNameChanges; removeShadows; mergeChanges]!
- changes ifNotNil: [
- changes moveClassNameChanges; removeShadows; mergeChanges]!
Item was changed:
----- Method: DSDelta>>initialize (in category 'initialize-release') -----
initialize
super initialize.
+ changeSequence := DSChangeSequence new.
- changes := DSChangeSequence new.
changeCounter := 0.
uuid := UUID new!
Item was added:
+ ----- Method: DSDelta>>changeSequence (in category 'accessing') -----
+ changeSequence
+ ^ changeSequence!
Item was changed:
DSAnnotatedObject subclass: #DSDelta
+ instanceVariableNames: 'changes uuid changeCounter changeSequence'
- instanceVariableNames: 'changes uuid changeCounter'
classVariableNames: ''
poolDictionaries: ''
category: 'DeltaStreams-Model-Base'!
+ !DSDelta commentStamp: 'gk 6/30/2009 00:12' prior: 0!
- !DSDelta commentStamp: 'gk 6/29/2009 21:54' prior: 0!
A Delta is much like a ChangeSet but improved and simplified. It can capture changes like a ChangeSet does (see #event:), but unlike ChangeSets multiple Deltas can be logging changes at the same time. A Delta maintains a chronologically ordered collection of change objects that is a true log unlike a ChangeSet which tries to normalize changes on the fly and does not maintain an order.
Also - each change object carries more information than a record in a ChangeSet does - and they know how to produce their anti change which in turn gives a Delta the ability to produce its own anti Delta. Such an anti Delta can be used to revert a Delta.
Instance variables:
+ changeSequence - an instance of DSChangeSequence.
- changes - an instance of DSChangeSequence.
uuid - created when I am first instantiated, never changed.
changeCounter - a counter to ensure strict sorting of changes, timestamps are not sufficient.
Standard properties:
#revertable - if missing we presume true. Can be used to explicitly flag a Delta as revertable/not revertable.
!
Item was changed:
----- Method: DSDelta>>= (in category 'comparing') -----
= aDelta
"Two deltas are considered equal if they contain the same change sequence."
+ ^changeSequence = aDelta changeSequence !
- ^changes = aDelta changes !
A new version of DeltaStreams-Model was added to project DeltaStreams:
http://www.squeaksource.com/DeltaStreams/DeltaStreams-Model-gk.12.mcz
==================== Summary ====================
Name: DeltaStreams-Model-gk.12
Author: gk
Time: 29 June 2009, 11:42:40 pm
UUID: 39c23e4a-6fe4-4798-89ec-faeff00f75da
Ancestors: DeltaStreams-Model-gk.11
- DSAnnotation renamed to DSAnnotatedObject.
- Refactorings moving ICS code out.
- Properties and timeStamp moved to DSAnnotatedObject
- Name turned into a property.
- Removed some not implemented ivars in DSDelta.
- Simpler initialize in DSDelta
=============== Diff against DeltaStreams-Model-gk.11 ===============
Item was added:
+ ----- Method: DSAnnotatedObject>>name: (in category 'accessing') -----
+ name: aString
+
+ ^self propertyAt: #name put: aString!
Item was added:
+ ----- Method: DSAnnotatedObject>>timeStamp (in category 'accessing') -----
+ timeStamp
+ ^timeStamp!
Item was added:
+ ----- Method: DSAnnotatedObject>>name (in category 'accessing') -----
+ name
+
+ ^self propertyAt: #name ifAbsent: ['<no name>']!
Item was added:
+ ----- Method: DSAnnotatedObject>>propertiesDo: (in category 'properties') -----
+ propertiesDo: aBlock
+ properties ifNil: [^ self].
+ properties keysAndValuesDo: aBlock!
Item was changed:
DSCompositeChange subclass: #DSChangeSequence
instanceVariableNames: 'changes'
classVariableNames: ''
poolDictionaries: ''
category: 'DeltaStreams-Model-Composite'!
+ !DSChangeSequence commentStamp: 'gk 4/21/2009 23:44' prior: 0!
+ I am a base class for a sequence of changes. A DSDelta holds its changes in a DSChangeSequence.
+
+ The prime other example is the antiChange for DSClassRemovedChange - since the anti change should revert the effects it needs in this case both recreate the class, set its comment and add methods on both instance and class side. Thus the class DSClassAddedChange is a composite change that does all these changes in sequence.!
- !DSChangeSequence commentStamp: 'mtf 9/6/2007 21:22' prior: 0!
- I am a base class for a sequence of changes that logically belong together. The prime example is the antiChange for DSClassRemovedChange - since the anti change should revert the effects it needs in this case both recreate the class, set its comment and add methods on both instance and class side. Thus the class DSClassAddedChange is a composite change that does all these changes in sequence.!
Item was changed:
----- Method: DSDelta>>addChange: (in category 'change logging') -----
addChange: aChange
"Within a Delta we give a change a monotonically increasing number
in order to be able to sort changes chronologically. The TimeStamp does
not work if changes are created very fast, they end up the same and sorting
becomes undefined. The change is copied if it already has a number,
in that case it is already in a different delta and we do not want to share."
| change |
change := aChange number ifNil: [aChange] ifNotNil: [aChange copy].
change number: self incrementChangeCounter.
+ self changes add: change.
- self compositeChange add: change.
self grouper ifNotNil: [self grouper add: change].
self changed: #changeList.
^ change!
Item was added:
+ ----- Method: DSChange>>isSequence (in category 'testing') -----
+ isSequence
+ ^false!
Item was added:
+ Object subclass: #DSAnnotatedObject
+ instanceVariableNames: 'timeStamp properties'
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'DeltaStreams-Model-Base'!
+
+ !DSAnnotatedObject commentStamp: 'gk 3/18/2009 16:06' prior: 0!
+ An abstract superclass for anything that can have named properties and a creation timeStamp.
+ The properties Dictionary is lazily initialized.!
Item was added:
+ ----- Method: DSChangeSequence>>isSequence (in category 'testing') -----
+ isSequence
+ ^true!
Item was changed:
----- Method: DSDelta>>changes (in category 'accessing') -----
changes
+ ^ changes!
- ^ self compositeChange changes!
Item was changed:
+ ----- Method: DSDelta>>uuid: (in category 'private') -----
- ----- Method: DSDelta>>uuid: (in category 'initialize-release') -----
uuid: aUUID
+ uuid := aUUID!
- super initialize.
- uuid := aUUID.
- changeCounter := 0.
- notRevertable := false
- !
Item was changed:
DSChange subclass: #DSCompositeChange
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'DeltaStreams-Model-Composite'!
+ !DSCompositeChange commentStamp: 'gk 4/21/2009 23:43' prior: 0!
+ A composite change is an abstract base class for changes that consists of other changes. It is not necessarily ordered. My primary subclass is DSChangeSequence, which stores a sequence of changes.!
- !DSCompositeChange commentStamp: 'mtf 9/6/2007 17:43' prior: 0!
- A composite change is an abstract base class for changes that logically belong together. It is not necessarily ordered. My primary subclass is DSChangeSequence, which stores a sequence of changes!
Item was changed:
+ DSAnnotatedObject subclass: #DSChange
+ instanceVariableNames: 'number'
- DSAnnotation subclass: #DSChange
- instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'DeltaStreams-Model-Base'!
+ !DSChange commentStamp: 'gk 4/21/2009 23:41' prior: 0!
+ An abstract super class for all changes that a DSDelta holds. A DSChange object should only hold "simple data" and not refer to the classes themselves. This makes them easy to construct, manipulate and serialize without affecting (or need) the real classes.
+
+ A DSChange has a number to be able to maintain ordering - timestamping is not enough when things are going fast. A DSChange should ONLY exist in one given Delta at time, we verify this by checking that number is indeed nil when the change is added to the DSDelta.!
- !DSChange commentStamp: '<historical>' prior: 0!
- An abstract super class for all fine granular changes that a DSDelta holds. A DSChange object should only hold "simple data" and not refer to the classes themselves. This makes them easy to construct, manipulate and serialize without affecting (or need) the real classes.!
Item was changed:
----- Method: DSVisitor>>applyDelta: (in category 'composite changes') -----
applyDelta: aDelta
"Treat like a composite change by default."
+ ^ self applyCompositeChange: aDelta changes!
- ^ self applyCompositeChange: aDelta compositeChange!
Item was added:
+ ----- Method: DSAnnotatedObject>>propertyAt:put: (in category 'properties') -----
+ propertyAt: aSymbol put: value
+
+ properties ifNil: [properties := Dictionary new].
+ ^ properties at: aSymbol put: value!
Item was changed:
----- Method: DSChange>>number (in category 'accessing') -----
number
^number!
Item was changed:
----- Method: DSChange>><= (in category 'comparing') -----
+ <= other
+ "Sort by number per default, this represents order of addition."
- <= aChange
- "Sort by number per default."
+ ^number <= other number!
- ^number <= aChange number!
Item was added:
+ ----- Method: DSAnnotatedObject>>properties (in category 'accessing') -----
+ properties
+ ^properties!
Item was added:
+ ----- Method: DSAnnotatedObject>>initialize (in category 'initialize-release') -----
+ initialize
+
+ timeStamp := TimeStamp now!
Item was added:
+ ----- Method: DSChange>>= (in category 'comparing') -----
+ = aChange
+ self subclassResponsibility!
Item was added:
+ ----- Method: DSAnnotatedObject>>propertyAt:ifAbsent: (in category 'properties') -----
+ propertyAt: key ifAbsent: aBlock
+
+ ^ properties
+ ifNil: aBlock
+ ifNotNil: [properties at: key ifAbsent: aBlock]!
Item was added:
+ ----- Method: DSAnnotatedObject>>properties: (in category 'accessing') -----
+ properties: aDictionary
+ properties := aDictionary!
Item was added:
+ ----- Method: DSChangeSequence>>= (in category 'comparing') -----
+ = aChange
+ "We are equal if we have the same changes in the same order."
+
+ ^aChange isSequence and: [
+ self changes = aChange changes]
+ !
Item was added:
+ ----- Method: DSAnnotatedObject>>propertyAt: (in category 'properties') -----
+ propertyAt: key
+
+ ^self propertyAt: key ifAbsent: [nil]!
Item was changed:
----- Method: DSDelta>>isRevertable (in category 'testing') -----
isRevertable
"It is revertable if all changes are per definition revertable
+ and this Delta is flagged as revertable."
- and this Delta is not flagged as notRevertable."
+ ^(self propertyAt: #revertable ifAbsent: [true]) and: [self changesRevertable]!
- ^notRevertable not and: [self changesRevertable]!
Item was added:
+ ----- Method: DSAnnotatedObject>>propertyAt:ifAbsentPut: (in category 'properties') -----
+ propertyAt: key ifAbsentPut: aBlock
+
+ ^ self propertyAt: key ifAbsent: [
+ self propertyAt: key put: aBlock value]!
Item was changed:
----- Method: DSDelta>>normalize (in category 'applying') -----
normalize
"Modify changes so that they are compacted into the minimal form
still producing the equivalent end result. In other words - remove redundancy."
+ changes ifNotNil: [
+ changes moveClassNameChanges; removeShadows; mergeChanges]!
- compositeChange ifNotNil: [
- compositeChange moveClassNameChanges; removeShadows; mergeChanges]!
Item was changed:
----- Method: DSChange>>number: (in category 'accessing') -----
number: aNumber
number := aNumber!
Item was changed:
----- Method: DSDelta>>initialize (in category 'initialize-release') -----
initialize
+ super initialize.
+ changes := DSChangeSequence new.
+ changeCounter := 0.
+ uuid := UUID new!
- self uuid: UUID new!
Item was added:
+ ----- Method: DSAnnotatedObject>>timeStamp: (in category 'accessing') -----
+ timeStamp: aTimeStamp
+ timeStamp := aTimeStamp!
Item was changed:
+ DSAnnotatedObject subclass: #DSDelta
+ instanceVariableNames: 'changes uuid changeCounter'
- DSChange subclass: #DSDelta
- instanceVariableNames: 'compositeChange uuid test notRevertable changeCounter'
classVariableNames: ''
poolDictionaries: ''
category: 'DeltaStreams-Model-Base'!
+ !DSDelta commentStamp: 'gk 6/29/2009 21:54' prior: 0!
+ A Delta is much like a ChangeSet but improved and simplified. It can capture changes like a ChangeSet does (see #event:), but unlike ChangeSets multiple Deltas can be logging changes at the same time. A Delta maintains a chronologically ordered collection of change objects that is a true log unlike a ChangeSet which tries to normalize changes on the fly and does not maintain an order.
+
+ Also - each change object carries more information than a record in a ChangeSet does - and they know how to produce their anti change which in turn gives a Delta the ability to produce its own anti Delta. Such an anti Delta can be used to revert a Delta.
- !DSDelta commentStamp: '<historical>' prior: 0!
- A Delta is much like a ChangeSet but improved and simplified. It captures changes much like a ChangeSet does (see #event:), but unlike ChangeSet multiple Deltas can be logging changes at the same time. A DeltaSet also maintains a chronologically ordered collection of change objects that is a true log unlike a ChangeSet which tries to normalize on the fly and does not maintain an order.
+ Instance variables:
+
+ changes - an instance of DSChangeSequence.
+ uuid - created when I am first instantiated, never changed.
+ changeCounter - a counter to ensure strict sorting of changes, timestamps are not sufficient.
+
+ Standard properties:
+
+ #revertable - if missing we presume true. Can be used to explicitly flag a Delta as revertable/not revertable.
+ !
- Each change object carries more information than a record in a ChangeSet does - and they know how to produce their anti change which in turn gives a DSDelta the ability to produce its own anti Delta. Such an anti Delta can be used to revert a Delta.!
Item was added:
+ ----- Method: DSDelta>>= (in category 'comparing') -----
+ = aDelta
+ "Two deltas are considered equal if they contain the same change sequence."
+
+ ^changes = aDelta changes !
Item was removed:
- ----- Method: DSMethodChange>>entryWriters (in category 'objects from disk') -----
- entryWriters
- ^ Array with: (ICSMethodEntryWriter new
- writeMethodEntryFor: self class
- className: className
- meta: meta
- selector: selector
- source: source
- stamp: stamp
- protocol: protocol
- properties: self propertiesToPersist
- ; yourself)!
Item was removed:
- ----- Method: DSChange>>persistantPropertyNames (in category 'objects from disk') -----
- persistantPropertyNames
- ^ #(name)!
Item was removed:
- ----- Method: DSChange>>name (in category 'accessing') -----
- name
-
- ^self propertyAt: #name ifAbsent: ['<no name>']!
Item was removed:
- ----- Method: DSClassTypeChange>>propertiesToPersist (in category 'objects from disk') -----
- propertiesToPersist
- ^ super propertiesToPersist
- at: #oldType put: self oldType;
- yourself!
Item was removed:
- ----- Method: DSDelta>>compositeChange (in category 'accessing') -----
- compositeChange
- ^ compositeChange ifNil: [compositeChange := DSChangeSequence new]!
Item was removed:
- ----- Method: DSClassCategoryChange>>propertiesToPersist (in category 'objects from disk') -----
- propertiesToPersist
- ^ super propertiesToPersist
- at: #oldCategory put: self oldCategory;
- yourself!
Item was removed:
- Object subclass: #DSAnnotation
- instanceVariableNames: 'timeStamp number properties'
- classVariableNames: ''
- poolDictionaries: ''
- category: 'DeltaStreams-Model-Base'!
-
- !DSAnnotation commentStamp: '<historical>' prior: 0!
- An abstract superclass for anything that can be stored in a delta stream!
Item was removed:
- ----- Method: DSDelta>>isMaybeRevertable (in category 'testing') -----
- isMaybeRevertable
- "It is maybe revertable if all changes are per definition revertable
- or marked by the developer as being revertable and this Delta
- is not flagged as notRevertable."
-
- ^notRevertable not and: [self changesMaybeRevertable]!
Item was removed:
- ----- Method: DSChange>>propertyAt:ifAbsent: (in category 'accessing properties') -----
- propertyAt: key ifAbsent: aBlock
-
- ^ properties
- ifNil: aBlock
- ifNotNil: [properties at: key ifAbsent: aBlock]!
Item was removed:
- ----- Method: DSClassNameChange>>propertiesToPersist (in category 'objects from disk') -----
- propertiesToPersist
- ^ super propertiesToPersist
- at: #oldName put: self oldName;
- yourself!
Item was removed:
- ----- Method: DSChange>>entryWriters (in category 'objects from disk') -----
- entryWriters
- ^ #()!
Item was removed:
- ----- Method: DSChange>>timeStamp (in category 'accessing') -----
- timeStamp
- ^timeStamp!
Item was removed:
- ----- Method: DSChange>>propertiesDo: (in category 'accessing properties') -----
- propertiesDo: aBlock
- properties ifNil: [^ self].
- properties keysAndValuesDo: aBlock!
Item was removed:
- ----- Method: DSChange>>propertyAt:ifAbsentPut: (in category 'accessing properties') -----
- propertyAt: key ifAbsentPut: aBlock
-
- ^ self propertyAt: key ifAbsent: [
- self propertyAt: key put: aBlock value]!
Item was removed:
- ----- Method: DSDelta>>changesMaybeRevertable (in category 'testing') -----
- changesMaybeRevertable
- "Are all changes per definition revertable
- or marked by the developer as being revertable?"
-
- ^self changes allSatisfy: [:change | change isMaybeRevertable]!
Item was removed:
- ----- Method: DSClassChange>>entryWriters (in category 'objects from disk') -----
- entryWriters
- ^ Array with: (ICSClassEntryWriter new
- writeClassEntryFor: self class
- className: className
- type: type
- superclass: superclassName
- instanceVariables: instVarNames
- classVariables: classVarNames
- sharedPools: self poolDictionaryNames
- category: category
- classInstanceVariables: classInstVarNames
- comment: comment
- stamp: stamp
- properties: self propertiesToPersist
- ; yourself)!
Item was removed:
- ----- Method: DSChange>>name: (in category 'accessing') -----
- name: aString
-
- ^self propertyAt: #name put: aString!
Item was removed:
- ----- Method: DSMethodSourceChange>>propertiesToPersist (in category 'objects from disk') -----
- propertiesToPersist
- ^ super propertiesToPersist
- at: #oldSource put: self oldSource;
- yourself!
Item was removed:
- ----- Method: DSChange>>propertiesToPersist (in category 'objects from disk') -----
- propertiesToPersist
- "Answer a dictionary of properties that should be saved to disk, in string form"
-
- | answer |
- answer := Dictionary new.
- self persistantPropertyNames do: [:key |
- (self propertyAt: key) ifNotNilDo: [:value |
- answer at: key put: value asString]].
- timeStamp ifNotNil: [answer at: #timeStamp put: timeStamp asString].
- ^ answer!
Item was removed:
- ----- Method: DSClassSuperclassChange>>propertiesToPersist (in category 'objects from disk') -----
- propertiesToPersist
- ^ super propertiesToPersist
- at: #oldSuperclassName put: self oldSuperclassName;
- yourself!
Item was removed:
- ----- Method: DSChange>>initialize (in category 'initialize-release') -----
- initialize
-
- timeStamp := TimeStamp now!
Item was removed:
- ----- Method: DSMethodProtocolChange>>propertiesToPersist (in category 'objects from disk') -----
- propertiesToPersist
- ^ super propertiesToPersist
- at: #oldProtocol put: self oldProtocol;
- yourself!
Item was removed:
- ----- Method: DSCompositeChange>>entryWriters (in category 'objects from disk') -----
- entryWriters
-
- | all |
- self error: 'This is not so easy, we need an entryWriter for myself too!!'.
- all := OrderedCollection new.
- self do: [:ch | all addAll: ch entryWriters].
- ^all!
Item was removed:
- ----- Method: DSChange>>propertyAt:put: (in category 'accessing properties') -----
- propertyAt: aSymbol put: value
-
- properties ifNil: [properties := Dictionary new].
- ^ properties at: aSymbol put: value!
Item was removed:
- ----- Method: DSClassCommentChange>>propertiesToPersist (in category 'objects from disk') -----
- propertiesToPersist
- ^ super propertiesToPersist
- at: #oldComment put: self oldComment;
- at: #oldStamp put: self oldStamp;
- yourself!
Item was removed:
- ----- Method: DSChange>>propertyAt: (in category 'accessing properties') -----
- propertyAt: key
-
- ^self propertyAt: key ifAbsent: [nil]!
Item was removed:
- ----- Method: DSDelta class>>uuid: (in category 'utilities') -----
- uuid: aUUID
- ^ self basicNew uuid: aUUID; yourself!
Item was removed:
- ----- Method: DSVarsChange>>propertiesToPersist (in category 'objects from disk') -----
- propertiesToPersist
- ^ super propertiesToPersist
- at: #oldVars put: self oldVars asSpaceString;
- yourself!