tinygo-org / tinygo

Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
https://tinygo.org
Other
15.34k stars 906 forks source link

releases for Darwin and Windows arm64 so that is can be used with aqua and security SBOM dev ops patterns #4094

Open gedw99 opened 9 months ago

gedw99 commented 9 months ago

https://github.com/tinygo-org/tinygo/releases/tag/v0.30.0 is the latest and does not have Darwin or Windows arm64 binaries for download.

I use Windows and Mac on Arm and need to distribute them too.

so I can't use brew or other third party installers

gedw99 commented 8 months ago

am back on working with tinygo and was wondering if my need for a release is likely ?

Here is my use case:

I know brew, etc work, but having the binary in releases makes it work with other CI tooling. For example aqua ( https://github.com/aquaproj/aqua ), which watches GitHub repo releases to allow using tinygo across many machines and updating them quickly.

https://github.com/aquaproj/aqua-registry/blob/main/pkgs/tinygo-org/tinygo/registry.yaml has the tinygo yaml

https://github.com/aquaproj/aqua-registry/blob/main/pkgs/tinygo-org/tinygo/registry.yaml#L8 declares that arm64 is not provided, and so won't work on MACS with Arm chips.

aykevl commented 8 months ago

We will have darwin/arm64 release binaries in the coming release (see https://github.com/tinygo-org/tinygo/pull/4113).

Because GitHub Actions doesn't have Windows ARM64 runners, it would be difficult for us to provide windows/arm64 release binaries. You can however build them yourself: I've used TinyGo on Windows ARM64 and it seems to work fine.

If there's enough demand, I could provide a binary that I build in a VM on my laptop but I'd rather not because it's much more complicated and less transparent than a binary built in CI.

aykevl commented 8 months ago

It seems there is progress on ARM hosted runners, so perhaps we'll eventually have Windows on ARM hosted runners: https://github.com/github/roadmap/issues/836

gedw99 commented 8 months ago

thanks for the follow up @aykevl

Darwin arm64 binaries are my first priority. Github CI has a runner for it.

gedw99 commented 1 month ago

hey @aykevl

so darwin arm64 all great for me.

Following up on windows arm64 is possible ?

Github CI Arm runners is apparently hidden behind an "enterprise trial" unfortunately. But I guess will eventually for use mortals. SO might be now possible to try this in your CI Actions...

https://github.com/github/roadmap/issues/836#issuecomment-1972151930

If we get that far, testing is easy from a MAC using UTM. UTM is open source and on GitHub, and reaches into the Nested Virt on a Mac to run any OS.

aykevl commented 1 month ago

Following up on windows arm64 is possible ?

Once GitHub Actions support it, yes. The announcements on the ARM based hosted runners say nothing about the OS. I expect them to make Linux available, I don't know whether they'll make Windows ARM available at the same time. But we'll see.

I don't plan on running a whole VM on the MacOS ARM runners (if that's even possible), but I guess if someone puts in the effort it might be worth merging. It just seems like a lot of work for something that will hopefully soon not be needed anymore (and with x86 emulation it should already be possible to run TinyGo on Windows ARM, even if it's a bit slower).

gedw99 commented 1 month ago

Following up on windows arm64 is possible ?

Once GitHub Actions support it, yes. The announcements on the ARM based hosted runners say nothing about the OS. I expect them to make Linux available, I don't know whether they'll make Windows ARM available at the same time. But we'll see.

I don't plan on running a whole VM on the MacOS ARM runners (if that's even possible), but I guess if someone puts in the effort it might be worth merging. It just seems like a lot of work for something that will hopefully soon not be needed anymore (and with x86 emulation it should already be possible to run TinyGo on Windows ARM, even if it's a bit slower).

Yes it is a lot of work.

I guess we wait ..

Thanks again for responding @aykevl