Contributing to Node.js

Danielle Adams | @adamzdanielle
TS Open | September 28, 2023

What is Node.js?

  • A JavaScript runtime for backends and scripting (including frontend builds)
     
  • Requires a single JavaScript entry point to execute


     

  • Code can be modularized using either CommonJS or ECMAScript Modules (ESM)
     
  • Uses a manifest file to reference dependencies and import them into code
~ node my_app.js

How is Node.js built?

  • Built on top of V8, Google's open source project that powers Chrome's JavaScript runtime
     
  • The binary is written with both JavaScript and C++
     

  • Node is built with additional libraries, such as OpenSSL and libuv, that are supplemental to core functionality

Dependency Versions

~ node
Welcome to Node.js v20.7.0.
> process.versions
{
  node: '20.7.0',
  openssl: '3.0.10+quic',
  tz: '2023c',
  undici: '5.23.0',
  unicode: '15.0',
  uv: '1.46.0',
  v8: '11.3.244.8-node.15'
}

How is Node.js released?

  • Releasers select commits that are intended to be landed on specified Node.js release lines
     
  • Test suites are run across multiple architectures and platforms; additionally, tests are run to check compatibility with popular packages
     

  • Releasers then will execute release builds that will be signed and pushed to the Node.js project's public distribution

# of Commits by Release

How did I get involved with Node.js?

How can you get involved?

Questions?

Feel free to reach out!

Thank you!

Enjoy your Open Source day!

Contributing to Node.js

By Danielle Adams

Contributing to Node.js

Slides for presenting at TS Open 2023

  • 240