build icon indicating copy to clipboard operation
build copied to clipboard

Official Windows arm64 binaries

Open gengjiawen opened this issue 3 years ago • 86 comments

@nodejs/releasers It's tier2 build now. Maybe make it in the official release process ?

Originally posted by @gengjiawen in https://github.com/nodejs/node/issues/36658#issuecomment-767246793

gengjiawen avatar Jan 27 '21 03:01 gengjiawen

cc @nodejs/build (should this be moved to nodejs/build repository)

BethGriggs avatar Feb 05 '21 17:02 BethGriggs

We dont have the machines to make it an official release - its currently built from one laptop on a desk that isnt always online/connected.

AshCripps avatar Feb 05 '21 17:02 AshCripps

cc @nodejs/build (should this be moved to nodejs/build repository)

🤷. AFAIK we still don't have reliable (i.e not someone's laptop) hardware to test on. cc @joaocgreis

richardlau avatar Feb 05 '21 17:02 richardlau

it does say "Tier 2 (compiling) / Experimental (running)", it's got two different tiers for good reason

rvagg avatar Feb 06 '21 09:02 rvagg

it does say "Tier 2 (compiling) / Experimental (running)", it's got two different tiers for good reason

Make it more available will get it more tested. Some of our user just want to use it. Building it from source will be a heavy task for most Node.js users. I think this will bring more value to the community in the long term.

gengjiawen avatar Feb 08 '21 01:02 gengjiawen

Ref https://github.com/nodejs/build/issues/2450 and https://github.com/nodejs/node/issues/25998

There are some releases in https://unofficial-builds.nodejs.org/ . Since it's Windows and can't be built from the docker system that builds for other platforms, I have to manually trigger and publish the builds, so not all versions are available.

To be able to bring Windows ARM64 fully into tier 2, we'll need a better solution for testing. We're essentially waiting for Windows ARM64 machines to become available in Azure.

joaocgreis avatar Feb 09 '21 09:02 joaocgreis

Ref #2450 and nodejs/node#25998

There are some releases in https://unofficial-builds.nodejs.org/ . Since it's Windows and can't be built from the docker system that builds for other platforms, I have to manually trigger and publish the builds, so not all versions are available.

To be able to bring Windows ARM64 fully into tier 2, we'll need a better solution for testing. We're essentially waiting for Windows ARM64 machines to become available in Azure.

@joaocgreis @gengjiawen you guys should reach out to Microsoft engineers ive seen where people have on occasion and the engineers actually chiming in randomly on git hub, and the outcome 80% was very favorable and seemed like it was a good idea they did.

from my understanding and what ive ran across they want users to reach out to them especially when it comes to the ARM64 they are all about making the system more appealing

pb5050 avatar Feb 27 '21 11:02 pb5050

@joaocgreis Is it possible to get node 16 unofficial binaries on Windows ARM64. It seems Azure arm64 is still further away.

atishay avatar May 05 '21 17:05 atishay

While we are waiting on Azure to provide Windows arm64 images, if the project/foundation is willing to provide the Windows Arm64 hardware, we (Nearform) would be willing to host them alongside the mac minis we currently host so that we can at least have them always available. /cc @mcollina

jasnell avatar May 12 '21 22:05 jasnell

@jasnell do you have cost estimates/configs for the hardware.

@joaocgreis I assume if these were added you'd an eye on them, reconnecting jenkins agents, compiler upgrades etc. like you do for other windows systems ?

mhdawson avatar May 13 '21 13:05 mhdawson

@atishay working on the releases, they should be done shortly. Will post on https://github.com/nodejs/build/issues/2450 when done.

@mhdawson yes I can keep them functional.

We cross-compile for ARM64 from our current workers, so for compilation we have good capacity. It's for running the tests that we need actual ARM64 hardware. For this to be added to node-test-commit unconditionally, running on every PR, we need: 1) enough machines to handle all the work, I'd say at least 4 workers; 2) reliability, to avoid blocking the CI job. Azure would be the perfect solution for this, but Nearform might also work.

joaocgreis avatar May 19 '21 16:05 joaocgreis

Quick update on this... I am talking to a representative from Arm who may be providing us with a loaner Surface Pro X device to host at the nearform HQ alongside the mac minis we currently have. We're getting a follow up call set up for next week to discuss details. Once I settle on this I'll be looking to see if we can get at least one additional machine so we have two there to work with. I know we ultimately will need a few more than that.

jasnell avatar May 19 '21 18:05 jasnell

@mhdawson ... to answer your question on cost estimate/configs ... a Surface Pro X is likely the best choice. There are other arm64 options out there but the pro x is pretty much rock solid.

image

jasnell avatar May 19 '21 18:05 jasnell

they have a cheaper one but yes it is rock solid i love my SPX :D

pb5050 avatar May 19 '21 19:05 pb5050

btw is nodejs 15.8 the last unofficial build? you guys have out rn?

working flawlessly but i was jw if (un official builds of the newer ones are out )

pb5050 avatar May 19 '21 19:05 pb5050

@jasnell from email sounds like you are lining up donations so we don't need to ask Foundation to buy machines at this point right ?

mhdawson avatar May 19 '21 19:05 mhdawson

@mhdawson ... It looks like we can get at least one machine from donation (thanks to Arm) but I don't know if we'll be able to get more than that.

jasnell avatar May 19 '21 19:05 jasnell

@jasnell let me know when that is settled and then we can go from there. @nodejs/build any comments/concerns about asking the Foundation to fund 1 machine at $2000 US if that is necessary?

mhdawson avatar May 19 '21 20:05 mhdawson

@jasnell let me know when that is settled and then we can go from there.

Will do for sure!

jasnell avatar May 19 '21 20:05 jasnell

Status update... great conversation with the folks at Arm. What it looks like right now is that we (nearform) should be able to get a surface pro x device on loan from Arm for a period of about one year. Hopefully by then the developer kits and/or Azure support will be available. A single Pro X SQ1 isn't going to be super powerful -- we definitely won't want to build every PR on it -- but it should suffice for running tests. The Node.js test suite takes about 45 minutes to run on my personal Surface Pro X device. We have some legal paperwork to go through before we get the device so it may take at least a few weeks before we can get things set up. I will post updates here as we go.

Ideally we would have more than one device available. If the foundation can provide a second device, we are also willing to host that alongside the loaned one from Arm.

jasnell avatar May 25 '21 17:05 jasnell

@jasnell so just to confirm you'd like us to ask if the Foundation can fund a second machine ?

mhdawson avatar May 26 '21 13:05 mhdawson

Yes, but we might want to wait. A new low cost arm64 developer kit was announced yesterday during msft build that is supposed to be available later this summer.

jasnell avatar May 26 '21 13:05 jasnell

@jasnell ok, just let me know if/when you want to make a request.

mhdawson avatar May 26 '21 21:05 mhdawson

Just a question couldnt you install a WOA on a raspberry pie and use that for test?

pb5050 avatar May 31 '21 07:05 pb5050

hmm.. I need a win-arm64 build of: https://nodejs.org/dist/latest-v16.x/ and im running windows on raspberry :)

mbodomi avatar Jun 08 '21 23:06 mbodomi

@mbodomi an unofficial build of 16.2.0 is available for Windows arm64: https://unofficial-builds.nodejs.org/download/release/v16.2.0/ - have been using it for a while and works perfectly

dennisameling avatar Jun 09 '21 08:06 dennisameling

I'm not familiar with the requirements of build machines for this project, but might it be an option to run the builds inside a VM on an M1 Mac Mini? Macstadium has this hardware available now and I see you're already working with them.

james-emerton avatar Aug 11 '21 23:08 james-emerton

That's not as whacky a suggestion as it might seem since Parallels just announced version 17 that'll run Windows ARM on an M1 https://arstechnica.com/gadgets/2021/08/parallels-desktop-17-is-here-and-ready-to-run-windows-11-on-m1-macs/ But we'd need to do that on our own hardware, probably not something we could stretch MacStadium to do via Orka, and it would take some experimentation.

However, it's probably going to end up being easier to get proper arm64 hardware for Windows as per discussions above, even if that just means parking laptops somewhere and only shipping binaries to unofficial-builds for now but with regularity.

rvagg avatar Aug 12 '21 01:08 rvagg

Btw, just as an update... NearForm should be receiving a loaner surface pro x device from Arm that will be set up for the node.js CI. @mcollina will be taking over the oversight of that now that I'm not there anymore. That will at least get us started. We should try to get ahold of a few of the developer kits soon.

jasnell avatar Aug 12 '21 02:08 jasnell

Looks like the Snapdragon development kit is finally available in the Microsoft store for $219: https://www.microsoft.com/en-US/d/ecs-liva-mini-box-qc710-desktop/8z247h1h3skp

Would be great to have official Windows on ARM builds soon as this is also blocking things like a native GitHub Actions runner for arm64: https://github.com/actions/runner/pull/785

@mcollina let me know if there's anything I can help with :)

dennisameling avatar Nov 13 '21 16:11 dennisameling