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

Add installer for windows-arm64 #362

Open
pbo-linaro opened this issue Nov 30, 2023 · 14 comments · May be fixed by #399
Open

Add installer for windows-arm64 #362

pbo-linaro opened this issue Nov 30, 2023 · 14 comments · May be fixed by #399

Comments

@pbo-linaro
Copy link

Recently, this PR added Ruby support for windows-arm64: ruby/ruby#8995
It fixes build and runtime issues.

Just after this, windows-arm64 MSYS2 ruby package was re-enabled thanks to this: msys2/MINGW-packages#19179

Now, the missing piece for Ruby ecosystem is to create a windows-arm64 installer for RubyInstaller2.

What kind of work is expected to be done here?
Is it simply a packaging of various MSYS2 packages?

Thanks,
Pierrick

@pbo-linaro
Copy link
Author

@mohits Sorry to ping you directly, but I noticed you were triaging some issues. Is there someone specifically we could add to this discussion?

@mohits
Copy link
Collaborator

mohits commented Dec 22, 2023

Hi @pbo-linaro - I think most of the hard work is done by @larskanis and @MSP-Greg when it comes to handling the root causes of the problems.

I'm not fully plugged in to how the RubyInstaller2 is set up or built, but help out with some triage, and follow-up questions and answers since I do want to help the #RubyOnWindows community if I can. That way, I can keep reducing the open issues or get some help across so that the others can focus on the hard work :)

I'm not an official team member but I was given the rights to close issues a few months back.

@MSP-Greg
Copy link
Contributor

Similar to the problem of how to provide non-Intel macOS builds for CI, windows-arm64 systems are not available on GitHub Actions.

I haven't looked around to see if any CI providers have them.

@pbo-linaro
Copy link
Author

Thanks for your answers. Would you be open to use a self-hosted runner to fill this gap, or do you rely only on GitHub runners for now?

@johnnyshields
Copy link

johnnyshields commented May 18, 2024

@MSP-Greg @larskanis if the lack of a Github Actions runner is the limiting factor here, my team at TableCheck is happy to contribute a self-hosted Windows ARM runner until such time that Github officially supports it.

@MSP-Greg
Copy link
Contributor

Just want to clarify one issue. The setup-ruby action used with GitHub Actions has a system that provides build tools and/or packages when using Windows Rubies. That system currently won't function on arm64.

This was done for two main reasons.

First of all, many repos run CI on Windows, but the maintainers are not familiar with Windows at the level needed to set up the required build system. Currently, the code selects whether to install MINGW, UCRT, or mswin tools/packages, and also selects a proper OpenSSL package. Note that the build systems are preinstalled on the Ubuntu & macOS runners.

Secondly, because setup-ruby handles bundle install and also caching of the bundled gems, the build tools need to be installed before bundle install is run. Build tools are required for any extension gems that are not pre-compiled.

So, although adding arm64 builds to RubyInstaller2 is worthwhile, there will need to be changes to use those builds with GitHub Actions, regardless of whether the runners are self-hosted or not...

@johnnyshields
Copy link

@MSP-Greg in light of this comment, who should be adding support for Windows ARM first--Windows Installer (this repo) or setup-ruby?

@eregon
Copy link

eregon commented May 24, 2024

RubyInstaller. setup-ruby never built Ruby itself on Windows.
As @MSP-Greg mentioned indeed more work will be needed later in setup-ruby to get the toolchain working, but anyway RubyInstaller builds need to happen before.

@esimkowitz
Copy link

esimkowitz commented Sep 5, 2024

@MSP-Greg @larskanis now that Windows on ARM GitHub-hosted runners are available in public beta, is there anything else blocking setting this up? I have been using GitHub-hosted ARM runners for a few months now since the private beta, I am happy to help with setting this up if needed.

@johnnyshields
Copy link

@esimkowitz Windows ARM64 runners are now GA, however they are still a paid offering:
https://github.blog/changelog/2024-09-03-github-actions-arm64-linux-and-windows-runners-are-now-generally-available/

@esimkowitz
Copy link

esimkowitz commented Sep 5, 2024

@johnnyshields correct. Looking at the Actions usage for this repo (<=20mins/runner/day), it would be <=$48/mo. If funding is an issue, I would imagine the community/GitHub could pick up the bill (given they're blocked on adding Ruby to their own ARM runners until this is resolved...)

@pbo-linaro
Copy link
Author

Expect them to be freely available for public repositories by the end of the year, as mentioned in this blog article: https://github.blog/news-insights/product-news/arm64-on-github-actions-powering-faster-more-efficient-build-systems/#get-started-using-arm-hosted-runners-today.

It will definitely help the windows-arm64 ecosystem to grow up!

@larskanis
Copy link
Member

larskanis commented Nov 19, 2024

Thank you @pbo-linaro for great work in this area!

In the last year I started to port RubyInstaller to ARM and bought a Raspberry PI 4 to run Windows-11 on it. But it turned out to be way too slow and not stable enough to do proper development. I would like to continue this and future work, but I need a suitable hardware. That's why I started a fundraiser for a Windows ARM laptop. My promise is that I'll deliver a ARM64 native version in the next months.

If anyone is interested in supporting me then make a donation here: https://gofund.me/81b1f11f

@larskanis
Copy link
Member

The fundraiser above was successful, so that I've got a new Windows-11 device with ARM64 CPU. It's really fun to work with that notebook, so that I've got quite far with porting the RubyInstaller to ARM64: #399

@larskanis larskanis linked a pull request Dec 18, 2024 that will close this issue
6 tasks
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

Successfully merging a pull request may close this issue.

7 participants