Administrator
|
Is there a way to use git in Squeak? If so, does anyone have real experience
doing so? Pharo and its libraries seem to be moving to git "for real" and I wonder about the implications for cross-platform compatibility… ----- Cheers, Sean -- Sent from: http://forum.world.st/Squeak-Dev-f45488.html
Cheers,
Sean |
On 17 Aug 2018, at 2:44, Sean P. DeNigris wrote:
Hello Sean, did you see my prior messages to you? Writing from my memory details are a bit sketchy, the code for this was written 8 years ago. I had a fair amount of experience trying to get a squeak images setup for particular projects. On several projects we had used Installer DSL scripts with some success. We had initially thought that Installer was a way forward for cross-fork development; at least you could load stuff. The drawback being that Installer was too hacky a solution for Pharo purists, who went in their own 10 different directions, and developed another 10 different tools. This was probably nice for pharo users, but not helpful for cross-fork development enthusiasts. As a developer of modules that I desired to load into all forks (squeak/cuis/pharo/cobalt etc), I could not see how pharo-only tools at this basic level was helpful to the cause. Eventually I decided to start afresh with a plan for converging the forks, making my initial experiments with cuis. The new strategy aimed to get as much bang, for as little effort as possible. The result was something like this: Strategy A - Image Preparation from Packages
Strategy B - Image State Export
Other Policies
So… The result… Strategy AImplemented a single simple class, InstallSeries InstallSeries loads .st files in a defined order. You provide a list of directories for InstallSeries to load from. Each directory is likely a repository clone. Hence the link to your git-hub question. Given the list of desired projects to load, InstallSeries loads all of projects in a series of steps. If I recall: level 1 was for bug-fixes and patches to the base image. A project like Grease would be loaded in level 2 In other words, a very-poor-mans dependency mechanism. But also, if the usage of a package (e.g. Seaside) requires specific bug-fixes to be applied in a specific destination image. This bug-fix can be packaged into the Seaside repository in the appropriate position in the hierarchy, and the knowledge of what is needed for what to work where can be captured. Strategy BA simple Exporter class knows how to export ChangeSets. A Package is defined by a packaging-method, that makes calls on the chosen Exporter to create the exported file. The result is slightly less dumb that an existing ChangeSet. It can specify a dependency on the existence of a specific Superclass, or instance variable and add it if it is not present. Such cleverness can make dependencies far less of an issue and handle all of the monticello use cases without PackageInfo or Monticello. Pragma definitions within the packaging-method determine the default filename/level for the export. A category of packaging methods, can be loaded to provide specific package exports In conclusion, most of this was working in an alpha state. The code is available on launchpad under the smalltalkers group. I am aiming to dust it off and get it all up and running at some point. best regards Keith |
In reply to this post by Sean P. DeNigris
Hi Sean,
> On 17.08.2018, at 03:44, Sean P. DeNigris <[hidden email]> wrote: > > Is there a way to use git in Squeak? If so, does anyone have real experience > doing so? Pharo and its libraries seem to be moving to git "for real" and I > wonder about the implications for cross-platform compatibility… We're experimenting here with a Squeak Git client. Stay tuned. best -t. PS: I'm gonna be unavailable for a few weeks (or not, we'll see) > > > > ----- > Cheers, > Sean > -- > Sent from: http://forum.world.st/Squeak-Dev-f45488.html > |
Free forum by Nabble | Edit this page |