Hi Guille - thanks for replying and giving me some insight into all of this.
I have managed to get something working but there are definitely some issues that may need a bug report?
This minimal image supports Metacello, and the ST command line handler - however it us unable to process a script like the following (which is attempting to load a local filetree git package)
It fails because Metacello wants to use STON class>>readFromStream (in its #repositoryProperties method)- this minimal image does not contain STON (which is an error? Too much has been removed).
If I try to workaround this by loading STON as follows using the CONFIG command line handler:
this then highlights several other issues:
1) ConfigurationOfSton doesn���t have a group load will load it without Tests, and so loading it provides a series of errors due to TestCase not being in the min image (and there doesn���t appear to be a Configuration for loading SUnit by itelsf?) - I think this should be solved by either keeping STON in the image and/or having a config of Ston that loads without tests
2) Having loaded STON into that min image (albeit with broken Test cases), the minimal image doesn���t seem to use the Undeclared mechanism you describe and so the following classes (which have references to STON) - all need to be force recompiled like this:
{ MCFileTreeRepository. MCFileTreeStCypressReader. MCFileTreeAbstractReader } do: [:c | c compileAll ].
Otherwise I get an Undefined talkback when I try my metacello load, which I do using the ST command handler.
Having dealt with 1 & 2, I am then able to run my Metacello load (as shown at the top). So it appears that there are a few related problems here.
I have a running example of this in Gitlab that demonstrates this - and can be used to replicate this problem if that helps (although the description is pretty clear I think).
Tim
Two different things:
1) yes, the minimal image is indeed minimal. Actually, the minimal image is around 20% of the full image. Two working directions that are looking for active contributions are:
- reduce that 20% so bootstrap times are smaller
- modularise the other 80% so that we can easily load new stuff.
About this last point, there are already there in the repository a couple of metacello configurations made by Pavel that allow us to reload the 80% into the 20% image. But we should modularise them because so far they are too big.
2) About the second point. You should not need to recompile everything. In the image there is the Undeclared mechanism that should rebind new classes as soon as they are loaded. Can you provide more insight on the bug? Why do you need to recompile?
Tx,
Guille