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

x/build/dashboard: add js-wasm-node18 builder with Node.js 18 LTS #57017

Closed
johanbrandhorst opened this issue Dec 1, 2022 · 7 comments
Closed
Assignees
Labels
arch-wasm WebAssembly issues Builders x/build issues (builders, bots, dashboards) NeedsFix The path to resolution is known, but the work has not been done. new-builder OS-JS
Milestone

Comments

@johanbrandhorst
Copy link
Member

Our current wasm NodeJS support policy is to support the latest LTS only 12. The latest long term support release of NodeJS is 18. The current js-wasm builders are using version 14. We should update our builders to use the latest LTS so that we can evolve our use of NodeJS primitives and ensure we support users using the latest version of NodeJS.

Footnotes

  1. https://github.com/golang/go/issues/28360#issuecomment-474621552

  2. https://github.com/golang/go/issues/56860#issuecomment-1321273696

@gopherbot gopherbot added the Builders x/build issues (builders, bots, dashboards) label Dec 1, 2022
@gopherbot gopherbot added this to the Unreleased milestone Dec 1, 2022
@johanbrandhorst
Copy link
Member Author

CC @neelance

@johanbrandhorst
Copy link
Member Author

I started looking into this and ran into some issues doing a simple upgrade to 18. I'm documenting it here for myself and others attempting this upgrade. Doing a simple replace of setup_14.x with setup_18.x results in an error upgrading gnupg:

## Installing the NodeSource Node.js 18.x repo...


## Populating apt-get cache...

+ apt-get update
Get:1 http://deb.debian.org/debian sid InRelease [161 kB]
Get:2 http://deb.debian.org/debian sid/main amd64 Packages [9398 kB]
Fetched 9559 kB in 3s (3332 kB/s)   
Reading package lists... Done

## Installing packages required for setup: lsb-release gnupg...

+ apt-get install -y lsb-release gnupg
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libc6-dev : Breaks: libgcc-9-dev (< 9.3.0-5~) but 9.2.1-19 is to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
Error executing command, exiting

It seems to have something to do with a debian upgrade, which leads me to believe that we may need to update the base image debian version, but this is all the debugging I've done so far.

@bcmills bcmills added OS-JS NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. labels Dec 1, 2022
@johanbrandhorst
Copy link
Member Author

Changing from sid to bullseye fixes the error. I've submitted a CL with a fix for this: https://go-review.googlesource.com/c/build/+/455375.

@dmitshur
Copy link
Contributor

I ended up not seeing this issue and mailed https://go.dev/cl/460036 while I was picking up some builder maintenance work this week (CC @golang/release). That CL takes a more gradual approach to upgrade the version by adding a new builder (with a different name), get it working, then drop the old one, instead of attempting to do an in-place upgrade. I think that should work better.

@johanbrandhorst I ran into the problem you described in #57017 (comment) too. I think we can keep sid, the problem is just that the "latest" tag is 3 years old because our newer Cloud Build configuration targets the "cloudbuild" tag instead. In CL 460036 I switched to using the "cloudbuild", though I see now we should likely update "latest" instead.

@dmitshur dmitshur changed the title x/build: Update js-wasm builders to Node 18 LTS x/build/dashboard: add js-wasm-node18 builder with Node.js 18 LTS Dec 29, 2022
@dmitshur dmitshur added new-builder NeedsFix The path to resolution is known, but the work has not been done. arch-wasm WebAssembly issues and removed NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. labels Dec 29, 2022
@gopherbot
Copy link

Change https://go.dev/cl/460036 mentions this issue: dashboard, env: add js-wasm-node18 builder

gopherbot pushed a commit to golang/build that referenced this issue Dec 29, 2022
Build and use a new container image with Node.js v18.12.1:

$ docker run gcr.io/symbolic-datum-552/js-wasm-node18:latest /usr/bin/node --version
v18.12.1

Use this as an opportunity to tweak/simplify the builder configuration
a bit. For example, drop the dist test skips for "nolibgcc:crypto/x509"
and "vendor/golang.org/x/arch" since they're no-ops, and try 3 helpers
at first since I feel that might work well, and in the worst case will
give us useful timing data.

Add it as a non-trybot with a known issue first. Once it works, I'll
switch it to be the default trybot, and drop the old builder when it
stops being useful.

For golang/go#57017.

Change-Id: I89188fedbc6c636579754402a1ad81c588f92d71
Reviewed-on: https://go-review.googlesource.com/c/build/+/460036
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
@dmitshur dmitshur self-assigned this Jan 3, 2023
@dmitshur
Copy link
Contributor

dmitshur commented Jan 4, 2023

The builder seems to be working okay, but we can't switch fully to it yet.

Filed an umbrella tracking issue for updating js/wasm to support Node.js 18,
and will close this issue since the builder part of this is done.

@gopherbot
Copy link

Change https://go.dev/cl/460575 mentions this issue: dashboard: update js-wasm-node18 known issue and limit it to Go 1.21+

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arch-wasm WebAssembly issues Builders x/build issues (builders, bots, dashboards) NeedsFix The path to resolution is known, but the work has not been done. new-builder OS-JS
Projects
Archived in project
Development

No branches or pull requests

4 participants