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

GToolkit - Add as Platform #544

Open
seandenigris opened this issue Jan 3, 2022 · 9 comments
Open

GToolkit - Add as Platform #544

seandenigris opened this issue Jan 3, 2022 · 9 comments
Assignees

Comments

@seandenigris
Copy link
Contributor

GToolkit has emerged as a distribution in its own right. It would be great to add it as a platform, like we have for Moose. NB unlike Moose, it has its own VM (based on Pharo's). cc @girba

@fniephaus
Copy link
Member

If we can find someone who is willing to contribute and maintain it, I'm happy to provide help and merge PRs for GToolkit support.

@seandenigris
Copy link
Contributor Author

Great. Hopefully I will be able to have a look soon...

@seandenigris
Copy link
Contributor Author

I may give this a try. Any docs on adding a platform? Or pointers on where to dig into the code?

@fniephaus
Copy link
Member

There are no docs because platforms can be quite different. Since GToolkit has its roots in Pharo, maybe it can simply be added to the Pharo infra (similar to Moose). Here's what needed to be done to support Pharo 10: c06e6c5. Hope this helps!

@seandenigris
Copy link
Contributor Author

GT has its own CI and fileserver, so I think it's best if we can use that. The main difference to Pharo seems to be that there is no "image-only" (doesn't seem to exist) and "vm-only" (seemingly out-of-date) option, but only a zip with both image and VM included. This zip seems to have a Pharo-style get script. Would that be easily pluggable into SmalltalkCI?

Where is the interface that the glue scripts must match up to? I see run_script(), load_project(), test_project(), and run_build() at the end of both the Pharo and Squeak scripts. I assume those should be implemented. Is that right? Any others?

cc/ @girba

@fniephaus
Copy link
Member

Would that be easily pluggable into SmalltalkCI?

You can redefine the behavior for GT in here:

smalltalkCI/pharo/run.sh

Lines 366 to 389 in 9e3cda8

################################################################################
# Main entry point for Pharo builds.
################################################################################
run_build() {
if ! image_is_user_provided; then
case "${config_smalltalk}" in
Pharo*)
pharo::prepare_image "${config_smalltalk}"
;;
Moose*)
pharo::prepare_moose_image "${config_smalltalk}"
;;
esac
fi
if ! vm_is_user_provided; then
pharo::prepare_vm "${config_smalltalk}"
fi
if ston_includes_loading; then
pharo::load_project
check_and_consume_build_status_file
fi
pharo::test_project
}

So instead of downloading image and vm separately, you could just download the bundle using the get script.

I don't think you need to redefine pharo::load_project() or pharo::test_project().

@seandenigris
Copy link
Contributor Author

GT… seems to have a Pharo-style get script.

@girba, the above link now returns a 404. Is there still such a mechanism?

@seandenigris
Copy link
Contributor Author

This is ready for feedback and quite possibly ready to merge. I can't start the CI because I'm not part of the repo. I accepted the invitation but it had already expired. Can someone re-send?

@LinqLover
Copy link
Collaborator

This is ready for feedback and quite possibly ready to merge. I can't start the CI because I'm not part of the repo. I accepted the invitation but it had already expired. Can someone re-send?

I think you can enable GitHub Actions in your fork from the repository settings as a temporary solution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants