DeltaStreams 0.1 is available on SqueakMap. Since it is meant to move changes between radically different squeak forks, DeltaStreams runs in a lot of squeak releases. It is distributed as a .sar file for each supported squeak. It is not available on universes at this time.
DeltaStreams is not yet available on 3.8. The core model works fine, but the UI does not. This will be fixed in 0.2
Installation
DeltaStreams 0.1 is available for Squeak 3.9, Squeak 3.10, and Croquet. It is available as a .sar installer for each platform. It is not available through universes at this time. To install:
Get the appropriate .sar file
drop it into the image, or load it with the file list
If you get a popup asking whether to automatically define the pool dictionary EditorSubjectPool, answer no. This only seems to happen on Croquet
When you get a popup asking which toolset you would prefer, answer #StandardToolSet, not #PlusToolSet
You can run the tests by selecting all tests in category DeltaStreams-Tests (in the new test runner), or all tests named DSDelta* (in the old test runner). 128 tests should run (you may need to type your initials and press proceed twice), and 87 should pass.
This is a release for Squeak 3.9, 3.10, and Croquet. It contains a quite complete kernel, capable of modeling every change (except one) a browser can make to the image. Deltas reliably log all changes made thanks to the SystemChangeNotifier.
Applying and reverting of deltas works quite well. We are not sure why, but sometimes a delta needs to be applied twice or reverted twice in order to take full effect. All apply and revert operations are done atomically, so, errors will cause your image not to be changed. However, there is no validation currently, so a delta that does not make sense will be applied in full, just like a change set.
This release also includes a user interface tool, which resembles a browser with two additional panes. So far, all it's features are only available via the right-click menu. The upper-left pane shows the deltas available in the system, and allows you to view, apply, revert, and toggle logging of individual deltas.
The lower-left pane of the tool shows each change in the selected delta. Selecting a change will jump to that class or method in the browser (sans bugs), and sets of changes can be individually applied or reverted.
The Class pane allows you to select all changes made to that class, so that you can easily apply or revert all changes made to a class as a group. This feature will be expanded to the other panes in the future.
Deltas can be filed-out and shared in a binary .dsz file. This is availible as a context menu item in the delta pane of the tool. The format is not flexible and is not guaranteed to work in future versions of DeltaStreams, but it will work for this release. dsz files can be loaded by dropping them into the image, or via the file list. This will make them appear in the UI, and from there, you can apply or revert them.
What is NOT in release 0.1
We meant to also release for 3.8, but that is not currently possible due to the UI being based on PlusTools, which does not install on 3.8. This will be resolved in the next release.
Delta streams are not implemented in any shape, form, or fashion. Only individual deltas are implemented.
Validation is not implemented, so groups of changes are applied or reverted blindly, just as with change sets.
There is no UI support for modifying deltas directly. Only logging, apply, and revert are available. If you need to copy changes from delta A to delta B, you can start logging B, apply changes from A, stop logging B, then revert the changes. It's ugly, but it works.