Open LinqLover opened 4 years ago
Would be a good idea, yes. Can you write the script that will create the archive, please?
So gave this a try, but I had to find out that all this Metacello-/preamble-related stuff is much more complex than I would have assumed.
I wrote a small class SARGenerator
(I'd like to propose it for the trunk as well), which you can use like this to create the SAR:
SARGenerator storeArchiveNamed: 'Squot' do: [:gen |
(SquitPackageChooser new packagesIn: SquitBrowser selfUpdateFindWorkingCopy "accessor for UpdateWorkingCopy") do: [:package |
gen addPackage: package]]
However, this ignores all the dependencies defined in the BaselineOfSquot
. It seems to require much more time than I have at the moment to study the Metacello source in detail to find out how all depended packages can be identified as well and be sorted in a topological order.
Of course, the package names could be hard-coded, but this would probably be an instabile solution. As a workaround, we could also list all packages in the CI job and reject those packages that belong to the trunk repository, but this would be a hack again.
Am I missing any super easy way? What do you think?
PS: Turns out there is already an existing SARBuilder package on SqueakMap. We probably don't need to reinvent the wheel ...
Right now, Metacello has broken again which makes it impossible to install Squot into a fresh image even if you can use a SAR file to install Metacello. Thus I wonder whether it would be a good idea to include a SAR file into every release on this repository? They could be created automatically via CI.