<div dir="ltr"><div>Just some history ...</div><div><br></div><div>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.<br></div><div><br></div><div>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 ...</div><div><br></div><div>The support of git repositories and git projects is really the responsibility of each platform ... <br></div><div><br></div><div>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:</div><div><img src="cid:ii_l63v005d0" alt="image.png" width="578" height="230"><br><br></div><div>I apologize if Sqot is similar, I haven't used Squeak (or Pharo) a whole lot in the last few years :)</div><div><br></div><div>Dale<br></div><div><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jul 26, 2022 at 11:30 PM Tobias Pape <<a href="mailto:Das.Linux@gmx.de">Das.Linux@gmx.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
<br>
> On 27. Jul 2022, at 05:16, Eliot Miranda <<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>> wrote:<br>
> <br>
> Hi,<br>
> <br>
>     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?<br>
> <br>
> This is sad.<br>
<br>
Its rather a deployment mode.<br>
<br>
I figure that the github cache files come from the Metacello installation path.<br>
That's expected.<br>
If you want to "update", re-issue the installation snippet.<br>
If you want to modify or commit, chose a different mode of accessing the repo.<br>
<br>
<br>
What you experience is the Metacello-Equivalent of<br>
<br>
        curl ..<br>
        tar xzf ...<br>
        ./configure<br>
        make<br>
<br>
where there is equally no way to "go forward"<br>
<br>
If the package you are dealing with comes from Squeak world, there's a good chance <br>
Sqot will deal with it.<br>
If it comes from the Pharo world, it probably has been using Iceberg or so.<br>
If it is compatible enough, the following will work:<br>
<br>
        - git clone the repo to a location of your liking<br>
        - add a "filetree" repository at that location<br>
        - use git tools to add/modify/commit/push/pull, in lockstep with in-image tools:<br>
                - when committing, FIRST commit in-image, THEN git add, git commit, git push<br>
                - when pulling, FIRST git pull, THEN load in-image<br>
<br>
There has been some extensions that automated these steps, but they have been abandoned in favor <br>
of Squot (Squeak) or Iceberg (Pharo) or Rowan (GemStone).<br>
<br>
I hope this clears things up a bit.<br>
<br>
Best regards<br>
        -Tobias<br>
<br>
<br>
<br>
</blockquote></div>