[squeak-dev] Metacello, Baselines, and Git

Thiede, Christoph Christoph.Thiede at student.hpi.uni-potsdam.de
Mon Sep 6 22:59:52 UTC 2021

Hi Eric,

usually, git repositories are loaded from Metacello using a snippet like this:

Metacello new
baseline: 'SqueakInboxTalk';
repository: 'github://hpi-swa-lab/squeak-inbox-talk:main';

Note that the repository does not contain a URL in the HTTP scheme but a special protocol that must be supported by Metacello. The part after the last colon indicates the branch name to use. These protocols are maintained in MetacelloPlatform >> #extractTypeFromDescription:, and apparently, GitLab is not yet supported. I think that you would either need clone/download your repository manually (e.g. via OSProcess) and then use the filetree:// resp. tonel:// protocol to locate the cloned folder on your disk, or you could add support for GitLab to Metacello yourself. In theory, this should not be too complicated; for example, Bitbucket support comes with no more than a dozen of selectors that need to be overridden. I'm sure Dale Henrich would be glad about your pull request!

Apart from that, if your repository is not publicly accessible, you will need to authenticate yourself which can be done by passing #username: and #password: (the latter usually being a token) to the Metacello instance.

At a first glance, your baseline looks fine to me.

Hope this helps,


Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im Auftrag von Eric Gade <eric.gade at gmail.com>
Gesendet: Montag, 6. September 2021 22:48:16
An: The general-purpose Squeak developers list
Betreff: [squeak-dev] Metacello, Baselines, and Git

Hi All,

I'm trying to load a Git project I have that is hosted on a private GitLab host and am running into some trouble.

When I try the following in a Workspace:

Metacello new
     repository: 'https://source.mnt.re/darth-cheney/squeak-reform-tools.git/';
     baseline: 'Reform';
I am getting inscrutable Metacello errors. I have tried to step through and debug what's going on but this part of things is inscrutable to me (I can't even find where the remote request is being made).

Unless I have really messed this up, I think that my Baseline is configured correctly: https://source.mnt.re/darth-cheney/squeak-reform-tools/-/blob/main/BaselineOfReform.package/BaselineOfReform.class/instance/baseline..st

One issue that might be tripping this up is that this particular GitLab server uses `main` instead of `master`. I don't have any other branches in the repository, however. Should I have to manually specify the main branch when loading, and, if so, how do I go about doing that?

Thanks for any hints,

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20210906/253fcf67/attachment.html>

More information about the Squeak-dev mailing list