Convenience Image Node Variants will be updated to v12.x on November 4th

On October 22nd (two days ago) the current LTS release of Node.js was promoted from v10 to v12. Node.js v12.13.0 to be specific. The release blog post can be found here.

This change may affect your projects’ builds if they use our Convenience Image Node variants. These are the images with tags ending in -node or -node-browsers. We’ve temporarily frozen publishing of our Node variants to give a bit of time for users to check out the information below. The Node variants will unfreeze on November 4th, with images then being published with the new LTS release, Node.js v12.

More information on Node.js itself can be found below.

Changes

You can get a quick overview of what will be different by reading through the release notes for both Node v11.x and Node v12.x. In terms of compatibility, you will want to pay attention to whether any features/APIs that you use have been deprecated. That will affect your transition to the new version.

Background

Node.js actively maintains two versions of Node at any one time. The “Current” release, which is the latest stable version out there, and the “LTS” release, which gets maintained for two and a half years.

A large number of CircleCI users are using our Docker Convenience Images. A large percentage of those users use a variant image such as circleci/golang:1.13-node. Our Node variant images are based on upstream Docker Library images, with the current Node LTS installed. The image circleci/golang:1.13-node is our normal circleci/golang-1.13 image with Node.js pre-installed. In this example, you can swap out golang for ruby, python, or whatever language image you are using.

If you are using these images, please be prepared for Node.js to jump from v10.x to v12.x on November 4th. You can find out more information on how Node.js manages their current/LTS releases here.

1 Like

Bump - this is happening on Monday assuming all goes well.

For golang 1.13.4, the node variants still seem to be missing. Is this known/intentional? (And are they going to return and when?)

Thanks!

  • Trung

Hey,

Which specific image are you trying to use?

Hi,

I’m trying to use circleci/golang:1.13.4-stretch-node specifically (but the buster and unlabeled variants are also missing).

See:

https://github.com/CircleCI-Public/circleci-dockerfiles/tree/master/golang/images/1.13.4-stretch

https://hub.docker.com/r/circleci/golang/tags

Thanks.

1 Like

Thanks for that. It was available for 1.13.3 but not 1.13.4. This has been fixed. You should be able to find your image now.

Great, thanks for the help and the quick work!

1 Like

AWS Node Lambda supports v8 and v10. Our builds were using ruby convenience images with node-browsers and assuming that tag wouldn’t move to v12. Now that it has we are required to split our build jobs and have a dedicated job for our AWS Node Lambda that targets Dubnium.

That’s one option. Another would be to install a version of Node.js that you need on the fly and just use the -browsers variant.

AFAICT this is still an issue with circleci/node:12.13-stretch (listed as supported at https://circleci.com/docs/2.0/docker-image-tags.json). Is this correct? Is there an accurate list of CircleCI supported images?

Exactly what is it are you referring to as an issue?

Also, what’s considered “supported” for our legacy images (these images) is whatever Docker tags which are being built by the upstream Docker Library images. The tags listed in the JSON and in CircleCI Docs show which Docker tags are available.

Fail. My fault. I was caught in the edit->deploy->debug->flail cycle…

1 Like

so we’re using circleci/ruby:2.6.2-node, which appears to still be using node v10. Can we expect these images to be updated as well or is there a different version I should be using?

Hi there, we have the exact same issue as @stayman.

We’re using circleci/ruby:2.6.2-node (-node-browsers actually) , which appears to still be using node v10.

Is there some reason why this has not been updated? Can we expect it to?

The same issue with circleci/ruby:2.6.3-node-browsers.
This is problematic, because webpacker (part of Rails 6) requires Node.js “>=10.17.0”

Hi @biril and @TheRusskiy, welcome to the forum!

To answer your and @stayman’s question, Ruby v2.6.2 and v2.6.3 are old patch releases of Ruby and are no longer supported by the upstream Docker image. That means CircleCI’s legacy Convenience Image system doesn’t build them so they never got the Node.js v12 update.

Our legacy Ruby image, starting with v2.6.5, did receive the Node.js v12 update. If you can’t use Ruby v2.7.x, my suggestion would be to use circleci/ruby:2.6.6-node.