diff --git a/.circleci/config.yml b/.circleci/config.yml index 1988b23ae..c34d1ba9f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -55,7 +55,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 @@ -69,13 +70,21 @@ jobs: - ./** NodeJS 14: - executor: { name: oss/node, tag: '14' } + docker: + - image: cimg/node:14.16.1 + steps: + - common_test_steps + + NodeJS 16: + docker: + - image: cimg/node:16.0.0 steps: - common_test_steps GraphQL Types: description: "Assert generated GraphQL types are up to date" - executor: { name: oss/node, tag: '14' } + docker: + - image: cimg/node:14.16.1 steps: - oss/install_specific_npm_version: version: '7' @@ -89,6 +98,9 @@ jobs: type: executor executor: << parameters.platform >> environment: + # Note: This is a no-op at the second, but bear with me on this. If this + # comment is not removed by 2021-06-30 remove it along with the next line. + # renovate: datasource=github-tags depName=nodejs/node versioning=node NODE_VERSION: 14.16.1 NPM_VERSION: 7.10.0 steps: @@ -225,7 +237,10 @@ jobs: name: Assert npm version command: | if ((npm --version) -Ne "${Env:NPM_VERSION}") { exit 1 } - - run: npm clean-install + - run: + name: npm clean-install + command: | + npm clean-install - rust/test: # This is prefixed in the orb with 'cargo-' cache_version: v2-windows @@ -270,6 +285,9 @@ workflows: - NodeJS 14: name: "JS: Node 14" <<: *common_non_publish_filters + - NodeJS 16: + name: "JS: Node 16" + <<: *common_non_publish_filters - GraphQL Types: name: "GraphQL Types (up to date)" <<: *common_non_publish_filters @@ -287,6 +305,7 @@ workflows: requires: - "JS: Node 12" - "JS: Node 14" + - "JS: Node 16" - "GraphQL Types (up to date)" - oss/dry_run: name: "JS: Dry-run" @@ -294,6 +313,7 @@ workflows: requires: - "JS: Node 12" - "JS: Node 14" + - "JS: Node 16" - Rust - "GraphQL Types (up to date)" - oss/confirmation: diff --git a/docs/.nvmrc b/docs/.nvmrc deleted file mode 100644 index 8351c1939..000000000 --- a/docs/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -14 diff --git a/docs/package-lock.json b/docs/package-lock.json index 50dbcb652..2561002c1 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -11,7 +11,7 @@ "react-dom": "17.0.2" }, "engines": { - "node": ">=14 <15", + "node": ">=14 <17", "npm": "7.x" } }, diff --git a/docs/package.json b/docs/package.json index aabc3d887..9b343d0c9 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "engines": { - "node": ">=14 <15", + "node": ">=14 <17", "npm": "7.x" }, "scripts": { diff --git a/federation-integration-testsuite-js/package.json b/federation-integration-testsuite-js/package.json index 8eeb1a601..a50943718 100644 --- a/federation-integration-testsuite-js/package.json +++ b/federation-integration-testsuite-js/package.json @@ -17,9 +17,6 @@ "url": "https://github.com/apollographql/federation/issues" }, "homepage": "https://github.com/apollographql/federation#readme", - "engines": { - "node": ">=12" - }, "dependencies": { "apollo-graphql": "^0.9.2", "graphql-tag": "^2.10.4" diff --git a/federation-js/CHANGELOG.md b/federation-js/CHANGELOG.md index 2e70b19cc..020afe324 100644 --- a/federation-js/CHANGELOG.md +++ b/federation-js/CHANGELOG.md @@ -6,6 +6,8 @@ - _Nothing yet! Stay tuned!_ +- Expand the range of supported `node` versions in the package's `engines` specifier to include the now-tested Node.js `16`. [PR #713](https://github.com/apollographql/federation/pull/713) + ## v0.23.2 - Remove lingering `core-js` polyfill imports, they're no longer needed (since `@apollo/gateway@0.15.0` dropped support for <= Node.js v10) and their presence is problematic since `core-js` isn't defined as a dependency within the package. Update `apollo-graphql` dependency which resolves a missing dependency (`sha.js`) within that package. [PR #699](https://github.com/apollographql/federation/pull/699) diff --git a/federation-js/package.json b/federation-js/package.json index 5a1f20d57..bd722d66d 100644 --- a/federation-js/package.json +++ b/federation-js/package.json @@ -17,7 +17,7 @@ "author": "Apollo ", "license": "MIT", "engines": { - "node": ">=12.13.0 <15.0" + "node": ">=12.13.0 <17.0" }, "publishConfig": { "access": "public" diff --git a/gateway-js/CHANGELOG.md b/gateway-js/CHANGELOG.md index 8807b9ca2..8e36147b5 100644 --- a/gateway-js/CHANGELOG.md +++ b/gateway-js/CHANGELOG.md @@ -4,7 +4,7 @@ > The changes noted within this `vNEXT` section have not been released yet. New PRs and commits which introduce changes should include an entry in this `vNEXT` section as part of their development. When a release is being prepared, a new header will be (manually) created below and the appropriate changes within that release will be moved into the new section. -- _Nothing yet! Stay tuned!_ +- Expand the range of supported `node` versions in the package's `engines` specifier to include the now-tested Node.js `16`. [PR #713](https://github.com/apollographql/federation/pull/713) ## v0.27.1 diff --git a/gateway-js/package.json b/gateway-js/package.json index 49ca0d5a8..7ec385022 100644 --- a/gateway-js/package.json +++ b/gateway-js/package.json @@ -18,7 +18,7 @@ "apollo" ], "engines": { - "node": ">=12.13.0 <15.0" + "node": ">=12.13.0 <17.0" }, "license": "MIT", "publishConfig": { diff --git a/harmonizer/package.json b/harmonizer/package.json index 44dc3d0fe..435ef7807 100644 --- a/harmonizer/package.json +++ b/harmonizer/package.json @@ -16,7 +16,7 @@ "author": "Apollo ", "license": "MIT", "engines": { - "node": ">=12.13.0 <15.0" + "node": ">=12.13.0 <17.0" }, "dependencies": { "@apollo/federation": "file:../federation-js" diff --git a/netlify.toml b/netlify.toml index 00a846e9f..d7f0a9c8e 100644 --- a/netlify.toml +++ b/netlify.toml @@ -6,4 +6,6 @@ # presently wrong. I would encourage removing this eventually, but for now, # we'll check to see if `/bin/false` returns true (it won't) as a gauge. ignore = "/bin/false" - +[build.environment] + NODE_VERSION = "14" + NPM_VERSION = "7" diff --git a/package-lock.json b/package-lock.json index 74204f643..0c0f139ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -56,7 +56,7 @@ "winston-transport": "4.4.0" }, "engines": { - "node": ">=6 <15", + "node": ">=12.13.0 <17.0", "npm": "7.x" } }, @@ -67,9 +67,6 @@ "dependencies": { "apollo-graphql": "^0.9.2", "graphql-tag": "^2.10.4" - }, - "engines": { - "node": ">=12" } }, "federation-integration-testsuite-js/node_modules/apollo-graphql": { @@ -94,7 +91,7 @@ "lodash.xorby": "^4.7.0" }, "engines": { - "node": ">=12.13.0 <15.0" + "node": ">=12.13.0 <17.0" }, "peerDependencies": { "graphql": "^14.5.0 || ^15.0.0" @@ -133,7 +130,7 @@ "pretty-format": "^26.0.0" }, "engines": { - "node": ">=12.13.0 <15.0" + "node": ">=12.13.0 <17.0" }, "peerDependencies": { "graphql": "^14.5.0 || ^15.0.0" @@ -216,7 +213,7 @@ "@apollo/federation": "file:../federation-js" }, "engines": { - "node": ">=12.13.0 <15.0" + "node": ">=12.13.0 <17.0" }, "peerDependencies": { "graphql": "^14.5.0 || ^15.0.0" @@ -21859,7 +21856,7 @@ "pretty-format": "^26.0.0" }, "engines": { - "node": ">=12.13.0 <15.0" + "node": ">=12.13.0 <17.0" }, "peerDependencies": { "graphql": "^14.5.0 || ^15.0.0" diff --git a/package.json b/package.json index 71468b76a..9eb10377a 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "codegen:check": "npm run codegen && git diff --exit-code" }, "engines": { - "node": ">=6 <15", + "node": ">=12.13.0 <17.0", "npm": "7.x" }, "dependencies": { diff --git a/query-planner-js/CHANGELOG.md b/query-planner-js/CHANGELOG.md index 7d1e98e0d..841aacde5 100644 --- a/query-planner-js/CHANGELOG.md +++ b/query-planner-js/CHANGELOG.md @@ -4,7 +4,7 @@ > The changes noted within this `vNEXT` section have not been released yet. New PRs and commits which introduce changes should include an entry in this `vNEXT` section as part of their development. When a release is being prepared, a new header will be (manually) created below and the appropriate changes within that release will be moved into the new section. -- _Nothing yet! Stay tuned!_ +- Expand the range of supported `node` versions in the package's `engines` specifier to include the now-tested Node.js `16`. [PR #713](https://github.com/apollographql/federation/pull/713) # v0.1.4 diff --git a/query-planner-js/package.json b/query-planner-js/package.json index ed84feb06..cb3ac32af 100644 --- a/query-planner-js/package.json +++ b/query-planner-js/package.json @@ -18,7 +18,7 @@ "apollo" ], "engines": { - "node": ">=12.13.0 <15.0" + "node": ">=12.13.0 <17.0" }, "license": "MIT", "publishConfig": { diff --git a/renovate.json5 b/renovate.json5 index cf1dc11c8..e114de848 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -3,6 +3,21 @@ "apollo-open-source" ], "dependencyDashboard": true, + // The "circleci" manager is intentionally disabled right now (e.g., not + // included in this list). While we do benefit from its updating of "Orb" + // versions, the CircleCI manager also attempts to update Docker images using + // its "Docker" datasource. This is really handy, in theory, but we have + // intentionally varying major Node.js docker image identifiers in our + // CircleCI configuration to test on each major Node.js platform. Enabling + // the "circleci" manager would cause all of these to update to the latest + // version (e.g., 16) when we want them to be intentionally different! + // I'm going to try to craft an fix for this, but I might do it upstream + // on Renovate itself using its Regex manager. It's also worth noting that + // there is other configuration that could be used to _only_ renovate "orbs" + // on this file, but I'm taking the short-cut route and not juggling with + // that right now. I can test the repository locally with my own copy of + // Renovate and come up with another solution given some free time. -Jesse + "enabledManagers": ["npm", "cargo"], "packageRules": [ // We set this to the lowest supported Node.js version to ensure we don't // use newer Node.js APIs unknowingly during development which are going to