This works for me (to load BaselineOfTowergame from src/ relative to
image location):
| hereRef |
hereRef := Smalltalk imageDirectory asFileReference.
"Work around scp url hardwired 'git@'"
IceScpRemote class compile: 'canHandleUrl: aRepositoryUrl
"Very simplistic implementation that does not cover all cases"
^ aRepositoryUrl matchesRegex: ''([\w.-]+@|ssh\://).*'''.
IceScpRemote compile: ((IceScpRemote >> #parseUrl) sourceCode
copyReplaceAll: 'git@' with: '[\w.-]+@').
(IceRepositoryCreator new location: hereRef; subdirectory: 'src';
createRepository) register.
IceGithubRepositoryType class compile: 'type ^ ''github+rw'''. "Work
around github:// needing access"
Iceberg enableMetacelloIntegration: true.
Metacello new baseline: 'Towergame'; repository: 'gitlocal:///',
(hereRef / 'src') fullName; load: 'development'.
Towergame configure.
Smalltalk snapshot: true andQuit: true.
You may not need the workarounds (first is for non-"git@" remote, second
is for github:// not working without a github.com ssh access).
Tim Mackinnon wrote:
I’m wondering if I’m missing a trick somewhere - but I have a simple
project with 2 packages, one is a BaseLineOfMyPkg and the other is MyPkg
(technically I don’t need the BaseLineOf, but I was learning how to use
them and I simply added a postLoad hook to run some code in it).
Anyway, If I clone my repo with Iceberg, I get 2 unloaded packages in
the UI. If I right click on the BaseLine one, and click the “install
baseline (default)” option, I was expecting it to load both packages for
me - however I get the talkback error “#addTo: was sent to nil from the
MCRepositoryGroup>>addRepository: method”.
In trying to debug the code I can see its trying to find a handler for
gitlocal:///, doesn’t find one and then tries to create a repo and
bails… this seems like a bug? I did notice in tracing the code that
there is a reference to a Setting that I saw - “Enable Metacello
Integration” - should I set that to true (its false by default)?
I’m wondering how other people are loading their projects in Iceberg if
this doesn’t work?
Tim