-
Notifications
You must be signed in to change notification settings - Fork 2k
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
CI: test on Node 16, switch to newer cimg images #5137
Conversation
@abernix Curious about your thought on the approach here. Note that the hapi tests fail. I think that is because only the very latest hapi release supports Node 16. Not clear on whether a hapi upgrade can actually work in the AS2 context (see eg #3273); I see you have made it up to |
@glasser I have already evaluated things like I wasn't thinking we'd introduce Node.js 16 to the 2.x range; I'd be pretty comfortable with us only introducing Node.js 16 testing (exclusively) on the |
Not trying on 2 sounds fair. I'm glad to see the only problem is in one package due to its main dep though. Thoughts on how the cimg change is executed? |
@glasser The (Though also, if that PR gets approved, I'm happy to apply the changes here myself.) |
Node 16.0.0 is now released; we should run CI against it. The older circleci/node Docker images we use in the Apollo OSS orb do not yet have 16.0.0. It seems reasonable to switch over to the "non legacy" cimg/node Docker images anyway. Those images don't have "major version" tags like 16, just tags like 16.0.0 and 16.0. So let's switch over to specifying images directly in config.yml rather than via our orb, and let Renovate update it. See https://github.com/renovatebot/renovate/blob/92aab2b30f5c0d811056a1574354e97057c42732/lib/manager/circleci/extract.ts#L49 for what Renovate is looking for. This PR does not convert to using npm v7 (and its new package-lock.json format); we should do that soon.
7ee1b92
to
aa855ab
Compare
@abernix I've rebased this onto release-3.0 (which has the Hapi upgrade) and it passes! Note that baseBranches on (We could add |
@@ -38,7 +38,8 @@ jobs: | |||
# at https://hub.docker.com/r/circleci/node/. | |||
|
|||
NodeJS 12: | |||
executor: { name: oss/node, tag: '12' } | |||
docker: | |||
- image: cimg/node:12.22.1 | |||
steps: | |||
- common_test_steps | |||
# We will save the results of this one particular invocation to use in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thoughts on if we should bump this to the 14 or 16 job?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had written out a longer comment but somehow lost it. Let's wait and ticket this for follow-up in a few weeks? (Feel free to assign to me). Basically, this persist_to_workspace
thing propagates things to the Tarballs and Publishing steps: https://github.com/apollographql/CircleCI-Orbs/blob/main/src/oss-ci-cd-tooling/orb.yml#L319-L346
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
still curious about this fwiw, but merging @abernix
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. I think you said you expected a PR to renovate this, but also maybe experimented or understood better than I currently do that it would be constrained by something. We have had Renovate target multiple base Branches in the past. Happy to look at that.
@abernix My understanding is
My theory is that we do not have to wait for 3.0.0 to be released to either (a) merge release-3.0 into main and make a different branch for 2 or (b) make release-3.0 be the "default branch", perhaps. (Or that we'll get to 3.0.0 soon enough anyway.) |
Inspired by apollographql/federation#708 This also fixes engines declarations in the individual packages which should have been done in #5137.
Inspired by apollographql/federation#708 as well as the Netlify change in apollographql/federation#713 This also fixes engines declarations in the individual packages which should have been done in #5137.
Inspired by apollographql/federation#708 as well as the Netlify change in apollographql/federation#713 This also fixes engines declarations in the individual packages which should have been done in #5137.
Inspired by apollographql/federation#708 as well as the Netlify change in apollographql/federation#713 This also fixes engines declarations in the individual packages which should have been done in #5137. Also fix a weird problem related to `@apollo/protobufjs`. For some reason, Node 12 and 14 with npm 7 (but not Node 16!) was running into an issue where the fact that `@apollo/protobufjs` doesn't actually depend on a bunch of packages like `espree` that its CLI needs caused the `apollo-pbjs` calls to fail. I think when we forked, protobuf.js was midway through a refactor to make the CLI into a separate package, but we haven't set that up to work in our fork. Adding all those big packages as dependencies of `@apollo/protobufjs` didn't seem great because that would make them non-dev dependencies of apollo-server themselves. Splitting the packages (and making the CLI package a devDep of apollo-reporting-protobuf) is the best long-term solution but for now adding the CLI deps as devDependencies of apollo-reporting-protobuf appears to work?
Node 16.0.0 is now released; we should run CI against it.
The older circleci/node Docker images we use in the Apollo OSS orb do not yet
have 16.0.0. It seems reasonable to switch over to the "non legacy" cimg/node
Docker images anyway. Those images don't have "major version" tags like 16, just
tags like 16.0.0 and 16.0. So let's switch over to specifying images directly
in config.yml rather than via our orb, and let Renovate update it. See
https://github.com/renovatebot/renovate/blob/92aab2b30f5c0d811056a1574354e97057c42732/lib/manager/circleci/extract.ts#L49
for what Renovate is looking for.
This PR does not convert to using npm v7 (and its new package-lock.json format);
we should do that soon, perhaps on release-3.x.