[squeak-dev] Squeak 6 git integration and updating

Dale Henrichs dale.henrichs at gemtalksystems.com
Wed Jul 27 17:10:35 UTC 2022

Just some history ...

The original Metacello (ConfigurationOf) was aimed at Monticello packages
and repositories (2009).. In 2012, support for FileTree repositories was
added (BaselineOf) and was targetted at git repositories (disk based SCM).
At that time git did not come pre-installed on many os distributions, so
the github-cache was created to allow maintainers of github, gitlab, etc.
repositories would use local git clones (managed manually) to maintain
their projects, while consumers of those projects would use github-caches
to "seamlessly" access those projects ... github-caches are definitely a
sub-optimal way of interacting with git repositories, but even today, it
makes it possible for non-git users to leverage projects that are
maintained on github, etc.

The fundamental challenge for Metacello was that it was intended to be a
cross platform tool and it was not practical for me to build a custom set
of gui-based tools for each platform and then maintain those tools over the
years ... so I made the  decision early on for Metacello to use the
standard browsers as the "tool" and use classes to encode the package
metadata ... much like Monticello uses class category and method category
naming conventions ... by doing so it was also possible to publish the
metadata in Monticello packages ...

The support of git repositories and git projects is really the
responsibility of each platform ...

Frankly, I'm surprised that no one else has decided to create a project
console like the one I've had in tODE for eons:
[image: image.png]

I apologize if Sqot is similar, I haven't used Squeak (or Pharo) a whole
lot in the last few years :)


On Tue, Jul 26, 2022 at 11:30 PM Tobias Pape <Das.Linux at gmx.de> wrote:

> > On 27. Jul 2022, at 05:16, Eliot Miranda <eliot.miranda at gmail.com>
> wrote:
> >
> > Hi,
> >
> >     I'm being told that the only way to keep an in-image version of a
> github package is to rebuild from scratch (a cruel joke).  How does one
> update?  The github-cache directory doesn't appear ot be a proper git clone
> so one can't try and pull into it.  Opening the "repository" from the
> Montivello browser shows only one version of the package (and indeed in the
> Monticello browser everything is versioned as tonel.1).  Am I seriously
> expected to rebuild an image every time I want to pull in a new commit?
> >
> > This is sad.
> Its rather a deployment mode.
> I figure that the github cache files come from the Metacello installation
> path.
> That's expected.
> If you want to "update", re-issue the installation snippet.
> If you want to modify or commit, chose a different mode of accessing the
> repo.
> What you experience is the Metacello-Equivalent of
>         curl ..
>         tar xzf ...
>         ./configure
>         make
> where there is equally no way to "go forward"
> If the package you are dealing with comes from Squeak world, there's a
> good chance
> Sqot will deal with it.
> If it comes from the Pharo world, it probably has been using Iceberg or so.
> If it is compatible enough, the following will work:
>         - git clone the repo to a location of your liking
>         - add a "filetree" repository at that location
>         - use git tools to add/modify/commit/push/pull, in lockstep with
> in-image tools:
>                 - when committing, FIRST commit in-image, THEN git add,
> git commit, git push
>                 - when pulling, FIRST git pull, THEN load in-image
> There has been some extensions that automated these steps, but they have
> been abandoned in favor
> of Squot (Squeak) or Iceberg (Pharo) or Rowan (GemStone).
> I hope this clears things up a bit.
> Best regards
>         -Tobias
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220727/dcc8ce71/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 137328 bytes
Desc: not available
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220727/dcc8ce71/attachment-0001.png>

More information about the Squeak-dev mailing list