Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/build-tarball.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ concurrency:
env:
PYTHON_VERSION: '3.14'
FLAKY_TESTS: keep_retrying
CLANG_VERSION: '19'
CLANG_VERSION: '21'
NODE_VERSION: lts/*

permissions:
Expand Down Expand Up @@ -102,10 +102,10 @@ jobs:
archive: false
test-tarball-linux:
needs: build-tarball
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-26.04-arm
env:
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang-19
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++-19
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang-21
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++-21
SCCACHE_GHA_ENABLED: ${{ github.base_ref == 'main' || github.ref_name == 'main' }}
SCCACHE_IDLE_TIMEOUT: '0'
steps:
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/coverage-linux-without-intl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ concurrency:
env:
PYTHON_VERSION: '3.14'
FLAKY_TESTS: keep_retrying
CLANG_VERSION: '19'
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang-19
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++-19
CLANG_VERSION: '21'
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang-21
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++-21
SCCACHE_GHA_ENABLED: ${{ github.base_ref == 'main' || github.ref_name == 'main' }}
SCCACHE_IDLE_TIMEOUT: '0'

Expand All @@ -48,7 +48,7 @@ permissions:
jobs:
coverage-linux-without-intl:
if: github.event.pull_request.draft == false
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
Expand Down Expand Up @@ -80,7 +80,7 @@ jobs:
env:
NODE_OPTIONS: --max-old-space-size=8192
- name: Report C++
run: gcovr --object-directory=out -v --filter src --xml -o ./coverage/coverage-cxx.xml --root=./ --gcov-executable="llvm-cov-18 gcov"
run: gcovr --object-directory=out -v --filter src --xml -o ./coverage/coverage-cxx.xml --root=./ --gcov-executable="llvm-cov-$CLANG_VERSION gcov"
# Clean temporary output from gcov and c8, so that it's not uploaded:
- name: Clean tmp
run: rm -rf coverage/tmp && rm -rf out
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/coverage-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ concurrency:
env:
PYTHON_VERSION: '3.14'
FLAKY_TESTS: keep_retrying
CLANG_VERSION: '19'
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang-19
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++-19
CLANG_VERSION: '21'
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang-21
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++-21
SCCACHE_GHA_ENABLED: ${{ github.base_ref == 'main' || github.ref_name == 'main' }}
SCCACHE_IDLE_TIMEOUT: '0'

Expand All @@ -48,7 +48,7 @@ permissions:
jobs:
coverage-linux:
if: github.event.pull_request.draft == false
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-26.04-arm
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
Expand Down Expand Up @@ -80,7 +80,7 @@ jobs:
env:
NODE_OPTIONS: --max-old-space-size=8192
- name: Report C++
run: gcovr --object-directory=out -v --filter src --xml -o ./coverage/coverage-cxx.xml --root=./ --gcov-executable="llvm-cov-18 gcov"
run: gcovr --object-directory=out -v --filter src --xml -o ./coverage/coverage-cxx.xml --root=./ --gcov-executable="llvm-cov-$CLANG_VERSION gcov"
# Clean temporary output from gcov and c8, so that it's not uploaded:
- name: Clean tmp
run: rm -rf coverage/tmp && rm -rf out
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/daily-wpt-fyi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
matrix:
node-version: ${{ fromJSON(needs.collect-versions.outputs.matrix) }}
fail-fast: false
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-26.04-arm
steps:
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/daily.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ permissions:
jobs:
build-lto:
if: github.repository == 'nodejs/node' || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-26.04-arm
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/stress-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ on:
type: choice
options:
- macos-15
- ubuntu-24.04
- ubuntu-24.04-arm
- ubuntu-26.04
- ubuntu-26.04-arm
repeat:
description: Number of times to repeat each test (--repeat)
required: true
Expand All @@ -35,7 +35,7 @@ on:
env:
PYTHON_VERSION: '3.14'
XCODE_VERSION: '16.4'
CLANG_VERSION: '19'
CLANG_VERSION: '21'
RUSTC_VERSION: '1.88'

permissions:
Expand All @@ -46,8 +46,8 @@ jobs:
runs-on: ${{ inputs.os }}
env:
# Linux builds with clang (matching test-linux.yml), macOS with gcc/g++.
CC: ${{ startsWith(inputs.os, 'ubuntu') && 'sccache clang-19' || 'sccache gcc' }}
CXX: ${{ startsWith(inputs.os, 'ubuntu') && 'sccache clang++-19' || 'sccache g++' }}
CC: ${{ startsWith(inputs.os, 'ubuntu') && 'sccache clang-21' || 'sccache gcc' }}
CXX: ${{ startsWith(inputs.os, 'ubuntu') && 'sccache clang++-21' || 'sccache g++' }}
# Enable sccache - this is okay for a manually-dispatched workflow that is typically used to
# test lib-only or test-only deflaking changes. This should be able to pick up cache from
# test-linux.yml and test-macos.yml running on the main branch.
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/test-internet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ concurrency:
env:
PYTHON_VERSION: '3.14'
FLAKY_TESTS: keep_retrying
CLANG_VERSION: '19'
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang-19
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++-19
CLANG_VERSION: '21'
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang-21
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++-21
SCCACHE_GHA_ENABLED: ${{ github.base_ref == 'main' || github.ref_name == 'main' }}
SCCACHE_IDLE_TIMEOUT: '0'

Expand All @@ -53,7 +53,7 @@ permissions:
jobs:
test-internet:
if: (github.event_name == 'schedule' && github.repository == 'nodejs/node') || (github.event.pull_request && github.event.pull_request.draft == false)
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-26.04-arm
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/test-linux-perfetto.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ concurrency:
env:
PYTHON_VERSION: '3.14'
FLAKY_TESTS: keep_retrying
CLANG_VERSION: '19'
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang-19
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++-19
CLANG_VERSION: '21'
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang-21
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++-21
SCCACHE_GHA_ENABLED: ${{ github.base_ref == 'main' || github.ref_name == 'main' }}
SCCACHE_IDLE_TIMEOUT: '0'
RUSTC_VERSION: '1.88'
Expand All @@ -35,7 +35,7 @@ permissions:
jobs:
test-perfetto:
if: github.event.pull_request.draft == false
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-26.04-arm
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/test-linux-quic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ concurrency:
env:
PYTHON_VERSION: '3.14'
FLAKY_TESTS: keep_retrying
CLANG_VERSION: '19'
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang-19
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++-19
CLANG_VERSION: '21'
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang-21
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++-21
SCCACHE_GHA_ENABLED: ${{ github.base_ref == 'main' || github.ref_name == 'main' }}
SCCACHE_IDLE_TIMEOUT: '0'
RUSTC_VERSION: '1.88'
Expand All @@ -45,7 +45,7 @@ permissions:
jobs:
test-quic:
if: github.event.pull_request.draft == false
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-26.04-arm
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/test-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ concurrency:
env:
PYTHON_VERSION: '3.14'
FLAKY_TESTS: keep_retrying
CLANG_VERSION: '19'
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang-19
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++-19
CLANG_VERSION: '21'
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang-21
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++-21
SCCACHE_GHA_ENABLED: ${{ github.base_ref == 'main' || github.ref_name == 'main' }}
SCCACHE_IDLE_TIMEOUT: '0'
RUSTC_VERSION: '1.88'
Expand All @@ -58,7 +58,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, ubuntu-24.04-arm]
os: [ubuntu-26.04, ubuntu-26.04-arm]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ concurrency:

env:
PYTHON_VERSION: '3.14'
XCODE_VERSION: '16.4'
XCODE_VERSION: '26.4'
FLAKY_TESTS: keep_retrying
RUSTC_VERSION: '1.88'

Expand All @@ -78,7 +78,7 @@ jobs:
if: github.event.pull_request.draft == false
strategy:
fail-fast: false
runs-on: macos-15
runs-on: macos-26
env:
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} gcc
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} g++
Expand Down
12 changes: 6 additions & 6 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ platforms. This is true regardless of entries in the table below.
[^4]: Our macOS Binaries are compiled with 13.5 as a target. Xcode 16 is
required to compile.

[^5]: Native riscv64 builds need GCC >= 14 or Clang >= 19 because V8
[^5]: Native riscv64 builds need GCC >= 14 or Clang >= 21 because V8
includes `<riscv_vector.h>` and uses `target("arch=+v")` in
`deps/v8/src/base/cpu.cc`. GCC 13's `riscv_vector.h` errors out without
`-march=rv64gcv` and doesn't support the `target` attribute at all.
Expand All @@ -162,9 +162,9 @@ Depending on the host platform, the selection of toolchains may vary.

| Operating System | Compiler Versions |
| ---------------- | ------------------------------------------------------------------- |
| Linux | GCC >= 13.2 or Clang >= 19.1 |
| Linux | GCC >= 13.2 or Clang >= 21 |
| Windows | Visual Studio 2022 or 2026 with the Windows 11 SDK on a 64-bit host |
| macOS | Xcode >= 16.4 (Apple LLVM >= 19) |
| macOS | Xcode >= 26.4 (Apple LLVM >= 21) |

### Official binary platforms and toolchains

Expand Down Expand Up @@ -241,7 +241,7 @@ tarball and/or browse the git repository checked out at the relevant tag.

#### Unix prerequisites

* `gcc` and `g++` >= 13.2 or `clang` and `clang++` >= 19.1
* `gcc` and `g++` >= 13.2 or `clang` and `clang++` >= 21
* GNU Make 3.81 or newer
* [A supported version of Python][Python versions]
* For test coverage, your Python installation must include pip.
Expand All @@ -259,7 +259,7 @@ FreeBSD and OpenBSD users may also need to install `libexecinfo`.

#### macOS prerequisites

* Xcode Command Line Tools >= 16.4 for macOS
* Xcode Command Line Tools >= 26.4 for macOS
* [A supported version of Python][Python versions]
* For test coverage, your Python installation must include pip.

Expand Down Expand Up @@ -1036,7 +1036,7 @@ Node.js supports the [Temporal](https://github.com/tc39/proposal-temporal) APIs,
linking statically or dynamically with a version of [temporal\_rs](https://github.com/boa-dev/temporal).
Building it requires a Rust toolchain:

* rustc >= 1.88 (with LLVM >= 19)
* rustc >= 1.88 (with LLVM >= 21)
* cargo >= 1.86

Refer to [Install Rust](https://rust-lang.org/tools/install/) for instructions.
Expand Down
Loading