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

chore: added early node 18 support #529

Merged
merged 30 commits into from
May 24, 2022
Merged

chore: added early node 18 support #529

merged 30 commits into from
May 24, 2022

Conversation

kirrg001
Copy link
Contributor

@kirrg001 kirrg001 commented Apr 20, 2022

Problems:

  • some packages do not install with v18 (yet and maybe will never)
  • the usage of "optionalDependencies" does not work (right now) and might not long term, because these dependencies are marked as "prod" dependencies. That means npm audit is failing right now.
  • looks like npm 8.6 behaves a bit different
    • is more accurate about peer dependency errors (not a warning anymore)
      • that's why we had to tweak two dependencies (knex and proto loader), otherwise it won't install deps with Node 18
    • looks like npm 8.6 no longer compatible with lerna, because "chai" is installed on the root and "chai-spices" in otel packages needs the package. But NPM throws an error when running "npm ci" that packages are missing the lock file
  • some of our dependencies do not officially support Node 18 yet

Decisions:

  • we keep Node v18 as optional for now

Tasks

  • why is pino-v7 not available again? (looks like NPM 6.14.15 has a bug)
  • discuss: run 10 & 12 as side jobs and increase parallels: not part of this PR
  • document pre build binary process
  • fix tests
  • build native 108 abi

@kirrg001 kirrg001 added the WIP label Apr 20, 2022
.circleci/config.yml Outdated Show resolved Hide resolved
@kirrg001
Copy link
Contributor Author

cimg/node:18.0 now available 👍

@kirrg001
Copy link
Contributor Author

pm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@apollo/[email protected]',
npm WARN EBADENGINE   required: { node: '>=12.13.0 <17.0' },
npm WARN EBADENGINE   current: { node: 'v18.0.0', npm: '8.6.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@apollo/[email protected]',
npm WARN EBADENGINE   required: { node: '>=12.13.0 <17.0' },
npm WARN EBADENGINE   current: { node: 'v18.0.0', npm: '8.6.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@apollo/[email protected]',
npm WARN EBADENGINE   required: { node: '>=12.13.0 <17.0' },
npm WARN EBADENGINE   current: { node: 'v18.0.0', npm: '8.6.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@apollo/[email protected]',
npm WARN EBADENGINE   required: { node: '>=12.13.0 <17.0' },
npm WARN EBADENGINE   current: { node: 'v18.0.0', npm: '8.6.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@apollo/[email protected]',
npm WARN EBADENGINE   required: { node: '>=12.13.0 <17.0' },
npm WARN EBADENGINE   current: { node: 'v18.0.0', npm: '8.6.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@apollo/[email protected]',
npm WARN EBADENGINE   required: { node: '>=12.13.0 <17.0' },
npm WARN EBADENGINE   current: { node: 'v18.0.0', npm: '8.6.0' }
npm WARN EBADENGINE }

@kirrg001
Copy link
Contributor Author

kirrg001 commented Apr 21, 2022

There are a couple of dependencies, which do not install with Node 18:
grpc, node-rdkafka, pg-native, mali

We need to install them as optional and skip the tests on Node 18 for now and wait for releases.
I can imagine that some such as grpc will never support Node 18, because the module is deprecated.

We want to install them as optional dev dependency.
Otherwise e.g. older packages like grpc (and more) will throw audit errors

@kirrg001 kirrg001 force-pushed the ci/node18 branch 6 times, most recently from 127b356 to c840757 Compare April 22, 2022 11:54
package.json Show resolved Hide resolved
@kirrg001 kirrg001 force-pushed the ci/node18 branch 2 times, most recently from 89754ea to 78a311d Compare May 19, 2022 06:52
@kirrg001 kirrg001 changed the title test: added node 18 to ci chore: added early node 18 support May 19, 2022
Copy link
Contributor

@basti1302 basti1302 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great stuff!

.circleci/config.yml Outdated Show resolved Hide resolved
package.json Outdated Show resolved Hide resolved
bin/install-optional-dev-dependencies.sh Outdated Show resolved Hide resolved
native-dep-packs/Dockerfile.alpine Show resolved Hide resolved
package.json Show resolved Hide resolved
packages/autoprofile/precompile/build-single-addon.js Outdated Show resolved Hide resolved
@kirrg001 kirrg001 merged commit ef83df5 into main May 24, 2022
@kirrg001 kirrg001 deleted the ci/node18 branch May 24, 2022 07:58
kirrg001 added a commit that referenced this pull request May 24, 2022
refs 96909

- we keep Node v18 build in Github settings as optional for now
kirrg001 added a commit that referenced this pull request Nov 22, 2023
- not needed anymore
- was only added to install grpc
- see #529
kirrg001 added a commit that referenced this pull request Nov 27, 2023
- not needed anymore
- was only added to install grpc
- see #529
kirrg001 added a commit that referenced this pull request Nov 30, 2023
- not needed anymore
- was only added to install grpc
- see #529
kirrg001 added a commit that referenced this pull request Nov 30, 2023
- not needed anymore
- was only added to install grpc
- see #529
kirrg001 added a commit that referenced this pull request Dec 11, 2023
- not needed anymore
- was only added to install grpc
- see #529
kirrg001 added a commit that referenced this pull request Dec 11, 2023
- not needed anymore
- was only added to install grpc
- see #529
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants