Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Include SAR into releases #290

Open
LinqLover opened this issue Sep 30, 2020 · 3 comments
Open

Feature Request: Include SAR into releases #290

LinqLover opened this issue Sep 30, 2020 · 3 comments
Labels
enhancement help wanted Want pull requests because it is unlikely this will be worked on by the maintainers soon.

Comments

@LinqLover
Copy link
Contributor

LinqLover commented Sep 30, 2020

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.

@j4yk
Copy link
Collaborator

j4yk commented Oct 1, 2020

Would be a good idea, yes. Can you write the script that will create the archive, please?

@j4yk j4yk added enhancement help wanted Want pull requests because it is unlikely this will be worked on by the maintainers soon. labels Oct 1, 2020
@LinqLover
Copy link
Contributor Author

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?

@LinqLover
Copy link
Contributor Author

PS: Turns out there is already an existing SARBuilder package on SqueakMap. We probably don't need to reinvent the wheel ...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement help wanted Want pull requests because it is unlikely this will be worked on by the maintainers soon.
Projects
None yet
Development

No branches or pull requests

2 participants