build
build copied to clipboard
Official Windows arm64 binaries
@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
cc @nodejs/build (should this be moved to nodejs/build repository)
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.
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
it does say "Tier 2 (compiling) / Experimental (running)", it's got two different tiers for good reason
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.
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.
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
@joaocgreis Is it possible to get node 16 unofficial binaries on Windows ARM64. It seems Azure arm64 is still further away.
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 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 ?
@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.
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.
@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.
they have a cheaper one but yes it is rock solid i love my SPX :D
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 )
@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 ... 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 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?
@jasnell let me know when that is settled and then we can go from there.
Will do for sure!
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 so just to confirm you'd like us to ask if the Foundation can fund a second machine ?
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 ok, just let me know if/when you want to make a request.
Just a question couldnt you install a WOA on a raspberry pie and use that for test?
hmm.. I need a win-arm64 build of: https://nodejs.org/dist/latest-v16.x/ and im running windows on raspberry :)
@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
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.
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.
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.
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 :)