hpi-swa / smalltalkCI

Framework for testing Smalltalk projects with GitHub Actions, GitLab CI, Travis CI, AppVeyor, and others.
MIT License
94 stars 68 forks source link

[Question] Is it sensible to rely on SmalltalkCI code for an asdf plugin? #628

Closed smarr closed 6 months ago

smarr commented 7 months ago

This might be a little unusual question for the SmalltalkCI maintainers:

Would it be totally unreasonable to rely on the SmalltalkCI project as a source of "machine-readable" version information and installation/download code for Squeak?

I would like to add Squeak to smarr/asdf-awfy, a plugin for asdf, a Runtime Version Manager, which I started setting up for the AreWeFastYet project.

I am currently thinking of parsing README.md for the supported Squeak image versions, and possibly just download the latest version of squeak/run.sh for having the code of extracting/installing the VM/image.

Would that be vaguely reasonable? Or might there be other options I am not aware of?

fniephaus commented 7 months ago

I am currently thinking of parsing README.md for the supported Squeak image versions, and possibly just download the latest version of squeak/run.sh for having the code of extracting/installing the VM/image.

This would mean that you essentially request those parts to be public API and it's relatively hard to make sure not to break things, especially the README.md. If you want less breakage, you could maybe directly link the images that smalltalkCI uses.

Would that be vaguely reasonable?

Keep in mind that smalltalkCI uses custom Squeak images, which come with Metacello pre-installed and are hosted on GitHub. They are slightly bigger and not the original images users would get from squeak.org.

Or might there be other options I am not aware of?

Why not base your plugin on one or more of the official bundles such as these ones? The structure of such bundles have been relatively stable for some time. I don't know how asdf works, but in theory, you could allow something like asdf install Squeak6.0-22148-64bit and your plugin could derive the target URL on files.squeak.org automatically.

Maybe @marceltaeumel has an idea how to best support asdf?

LinqLover commented 7 months ago

If your goal is to automate the download & preparation of the latest Squeak bundles, could create-image maybe help you?

smarr commented 7 months ago

@fniephaus yeah, parsing listings on files.squeak.org is another option. In the end, I am just looking for a "good enough" 80% solution, that's only needs a bit of maintaining every 5 years or so... :)

For Pharo, I indeed parse files.pharo.org: https://github.com/smarr/asdf-awfy/blob/main/lib/utils.bash#L48-L54

fniephaus commented 7 months ago

only needs a bit of maintaining every 5 years or so

There are not too many Squeak releases, and parsing listings on files.squeak.org is probably better than smalltalkCI's README.md.

smarr commented 6 months ago

Alright, it's not exactly pretty, but will work for now. Thanks.

https://github.com/smarr/asdf-awfy/blob/main/lib/utils.bash#L65-L92