From e44adbee1c5fb3f8b180d5881313630254d0f824 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 5 Nov 2026 14:08:21 +0000 Subject: [PATCH 1/3] build(workflows): pin gcc-9 runners to `ubuntu-24.04` Scheduled runs of `linux_test` and `linux_test_install` failed on develop at the toolchain install step with `E: Unable to locate package gcc-9`. Root cause: `ubuntu-latest` now resolves to Ubuntu 26.04, which no longer provides gcc-9, g++-9, or gfortran-9. This commit pins the Linux jobs that install gcc-9 (`linux_test`, `linux_test_install`, `linux_test_cov`, `linux_examples`, `linux_benchmark`, `codeql`) to `ubuntu-24.04`, where the packages are available. Ref: https://github.com/stdlib-js/stdlib/actions/runs/42000096343 Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_017wWD77KjnKtfokLoXjLFGi --- .github/workflows/codeql.yml | 2 +- .github/workflows/linux_benchmark.yml | 4 ++-- .github/workflows/linux_examples.yml | 4 ++-- .github/workflows/linux_test.yml | 4 ++-- .github/workflows/linux_test_cov.yml | 4 ++-- .github/workflows/linux_test_install.yml | 4 ++-- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index ec0e4eef8780..5c552a706850 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -58,7 +58,7 @@ jobs: # - https://gh.io/using-larger-runners # # - For analysis time improvements, consider using larger runners. - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 # Limit how long the job can run: timeout-minutes: 360 diff --git a/.github/workflows/linux_benchmark.yml b/.github/workflows/linux_benchmark.yml index 069fcdbfe404..dfee9de1d2b2 100644 --- a/.github/workflows/linux_benchmark.yml +++ b/.github/workflows/linux_benchmark.yml @@ -91,11 +91,11 @@ jobs: NODE_VERSION: ['16', '14', '12'] # Define the list of operating systems on which to run this job: - OS: ['ubuntu-latest'] + OS: ['ubuntu-24.04'] # Define configuration options for each Node.js version: include: - - OS: 'ubuntu-latest' + - OS: 'ubuntu-24.04' PLATFORM: 'linux' - NODE_VERSION: '16' diff --git a/.github/workflows/linux_examples.yml b/.github/workflows/linux_examples.yml index 49284de3ce00..e4d72dc2062f 100644 --- a/.github/workflows/linux_examples.yml +++ b/.github/workflows/linux_examples.yml @@ -91,11 +91,11 @@ jobs: NODE_VERSION: ['16', '14', '12'] # Define the list of operating systems: - OS: ['ubuntu-latest'] + OS: ['ubuntu-24.04'] # Define configuration options for each Node.js version: include: - - OS: 'ubuntu-latest' + - OS: 'ubuntu-24.04' PLATFORM: 'linux' - NODE_VERSION: '16' diff --git a/.github/workflows/linux_test.yml b/.github/workflows/linux_test.yml index b7d5ae893eb4..bd394c40f13b 100644 --- a/.github/workflows/linux_test.yml +++ b/.github/workflows/linux_test.yml @@ -90,11 +90,11 @@ jobs: NODE_VERSION: ['16', '14', '12'] # Define the list of operating systems on which to run this job: - OS: ['ubuntu-latest'] + OS: ['ubuntu-24.04'] # Define configuration options for each Node.js version: include: - - OS: 'ubuntu-latest' + - OS: 'ubuntu-24.04' PLATFORM: 'linux' - NODE_VERSION: '16' diff --git a/.github/workflows/linux_test_cov.yml b/.github/workflows/linux_test_cov.yml index e0cfba503326..55a4d2d86536 100644 --- a/.github/workflows/linux_test_cov.yml +++ b/.github/workflows/linux_test_cov.yml @@ -91,11 +91,11 @@ jobs: NODE_VERSION: ['16', '14', '12'] # Define the list of operating systems on which to run this job: - OS: ['ubuntu-latest'] + OS: ['ubuntu-24.04'] # Define configuration options for each Node.js version: include: - - OS: 'ubuntu-latest' + - OS: 'ubuntu-24.04' PLATFORM: 'linux' - NODE_VERSION: '16' diff --git a/.github/workflows/linux_test_install.yml b/.github/workflows/linux_test_install.yml index 0992374d900c..7fa6f740b91a 100644 --- a/.github/workflows/linux_test_install.yml +++ b/.github/workflows/linux_test_install.yml @@ -92,11 +92,11 @@ jobs: PACKAGE_MANAGER: ['npm'] # Define the list of operating systems on which to run this job: - OS: ['ubuntu-latest'] + OS: ['ubuntu-24.04'] # Define configuration options for each Node.js version: include: - - OS: 'ubuntu-latest' + - OS: 'ubuntu-24.04' PLATFORM: 'linux' - NODE_VERSION: '20' From 90fccbe9a0890c5a72a260a445dc7c9696217916 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 5 Nov 2026 23:32:04 +0000 Subject: [PATCH 2/3] build(workflows): upgrade Linux CI compiler from `gcc-9` to `gcc-14` Replace the `ubuntu-24.04` pin with an upgrade of the compiler toolchain. `ubuntu-latest` resolves to Ubuntu 26.04, which no longer provides `gcc-9`, `g++-9`, or `gfortran-9`, causing the compiler install step to fail. Install and link the `-14` packages instead and return the runners to `ubuntu-latest`. Not validated in CI: availability of the `-14` packages (incl. multilib and gfortran) on 26.04 is based on package listings, not a workflow run. Ref: https://github.com/stdlib-js/stdlib/actions/runs/42000096343 Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_017wWD77KjnKtfokLoXjLFGi --- .github/workflows/codeql.yml | 10 +++++----- .github/workflows/linux_benchmark.yml | 12 ++++++------ .github/workflows/linux_examples.yml | 12 ++++++------ .github/workflows/linux_test.yml | 12 ++++++------ .github/workflows/linux_test_cov.yml | 12 ++++++------ .github/workflows/linux_test_install.yml | 12 ++++++------ 6 files changed, 35 insertions(+), 35 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 5c552a706850..24f36a45848c 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -58,7 +58,7 @@ jobs: # - https://gh.io/using-larger-runners # # - For analysis time improvements, consider using larger runners. - runs-on: ubuntu-24.04 + runs-on: ubuntu-latest # Limit how long the job can run: timeout-minutes: 360 @@ -110,12 +110,12 @@ jobs: run: | sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test" sudo -E apt-get update -q - sudo -E apt-get -yq --no-install-suggests --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages install binutils gcc-9 gcc-9-multilib g++-9 g++-9-multilib gfortran-9 gfortran-9-multilib + sudo -E apt-get -yq --no-install-suggests --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages install binutils gcc-14 gcc-14-multilib g++-14 g++-14-multilib gfortran-14 gfortran-14-multilib mkdir -p $HOME/bin echo "$HOME/bin" >> $GITHUB_PATH - ln -s /usr/bin/gcc-9 $HOME/bin/gcc - ln -s /usr/bin/g++-9 $HOME/bin/g++ - ln -s /usr/bin/gfortran-9 $HOME/bin/gfortran + ln -s /usr/bin/gcc-14 $HOME/bin/gcc + ln -s /usr/bin/g++-14 $HOME/bin/g++ + ln -s /usr/bin/gfortran-14 $HOME/bin/gfortran timeout-minutes: 10 # Install Node.js: diff --git a/.github/workflows/linux_benchmark.yml b/.github/workflows/linux_benchmark.yml index dfee9de1d2b2..1611dfffac1d 100644 --- a/.github/workflows/linux_benchmark.yml +++ b/.github/workflows/linux_benchmark.yml @@ -91,11 +91,11 @@ jobs: NODE_VERSION: ['16', '14', '12'] # Define the list of operating systems on which to run this job: - OS: ['ubuntu-24.04'] + OS: ['ubuntu-latest'] # Define configuration options for each Node.js version: include: - - OS: 'ubuntu-24.04' + - OS: 'ubuntu-latest' PLATFORM: 'linux' - NODE_VERSION: '16' @@ -162,12 +162,12 @@ jobs: run: | sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test" sudo -E apt-get update -q - sudo -E apt-get -yq --no-install-suggests --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages install binutils gcc-9 gcc-9-multilib g++-9 g++-9-multilib gfortran-9 gfortran-9-multilib + sudo -E apt-get -yq --no-install-suggests --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages install binutils gcc-14 gcc-14-multilib g++-14 g++-14-multilib gfortran-14 gfortran-14-multilib mkdir -p $HOME/bin echo "$HOME/bin" >> $GITHUB_PATH - ln -s /usr/bin/gcc-9 $HOME/bin/gcc - ln -s /usr/bin/g++-9 $HOME/bin/g++ - ln -s /usr/bin/gfortran-9 $HOME/bin/gfortran + ln -s /usr/bin/gcc-14 $HOME/bin/gcc + ln -s /usr/bin/g++-14 $HOME/bin/g++ + ln -s /usr/bin/gfortran-14 $HOME/bin/gfortran timeout-minutes: 10 # Configure a virtual display server (needed for electron): diff --git a/.github/workflows/linux_examples.yml b/.github/workflows/linux_examples.yml index e4d72dc2062f..f7988711fe38 100644 --- a/.github/workflows/linux_examples.yml +++ b/.github/workflows/linux_examples.yml @@ -91,11 +91,11 @@ jobs: NODE_VERSION: ['16', '14', '12'] # Define the list of operating systems: - OS: ['ubuntu-24.04'] + OS: ['ubuntu-latest'] # Define configuration options for each Node.js version: include: - - OS: 'ubuntu-24.04' + - OS: 'ubuntu-latest' PLATFORM: 'linux' - NODE_VERSION: '16' @@ -162,12 +162,12 @@ jobs: run: | sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test" sudo -E apt-get update -q - sudo -E apt-get -yq --no-install-suggests --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages install binutils gcc-9 gcc-9-multilib g++-9 g++-9-multilib gfortran-9 gfortran-9-multilib + sudo -E apt-get -yq --no-install-suggests --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages install binutils gcc-14 gcc-14-multilib g++-14 g++-14-multilib gfortran-14 gfortran-14-multilib mkdir -p $HOME/bin echo "$HOME/bin" >> $GITHUB_PATH - ln -s /usr/bin/gcc-9 $HOME/bin/gcc - ln -s /usr/bin/g++-9 $HOME/bin/g++ - ln -s /usr/bin/gfortran-9 $HOME/bin/gfortran + ln -s /usr/bin/gcc-14 $HOME/bin/gcc + ln -s /usr/bin/g++-14 $HOME/bin/g++ + ln -s /usr/bin/gfortran-14 $HOME/bin/gfortran timeout-minutes: 10 # Configure a virtual display server (needed for electron): diff --git a/.github/workflows/linux_test.yml b/.github/workflows/linux_test.yml index bd394c40f13b..8030b299802e 100644 --- a/.github/workflows/linux_test.yml +++ b/.github/workflows/linux_test.yml @@ -90,11 +90,11 @@ jobs: NODE_VERSION: ['16', '14', '12'] # Define the list of operating systems on which to run this job: - OS: ['ubuntu-24.04'] + OS: ['ubuntu-latest'] # Define configuration options for each Node.js version: include: - - OS: 'ubuntu-24.04' + - OS: 'ubuntu-latest' PLATFORM: 'linux' - NODE_VERSION: '16' @@ -161,12 +161,12 @@ jobs: run: | sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test" sudo -E apt-get update -q - sudo -E apt-get -yq --no-install-suggests --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages install binutils gcc-9 gcc-9-multilib g++-9 g++-9-multilib gfortran-9 gfortran-9-multilib + sudo -E apt-get -yq --no-install-suggests --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages install binutils gcc-14 gcc-14-multilib g++-14 g++-14-multilib gfortran-14 gfortran-14-multilib mkdir -p $HOME/bin echo "$HOME/bin" >> $GITHUB_PATH - ln -s /usr/bin/gcc-9 $HOME/bin/gcc - ln -s /usr/bin/g++-9 $HOME/bin/g++ - ln -s /usr/bin/gfortran-9 $HOME/bin/gfortran + ln -s /usr/bin/gcc-14 $HOME/bin/gcc + ln -s /usr/bin/g++-14 $HOME/bin/g++ + ln -s /usr/bin/gfortran-14 $HOME/bin/gfortran timeout-minutes: 10 # Configure a virtual display server (needed for electron): diff --git a/.github/workflows/linux_test_cov.yml b/.github/workflows/linux_test_cov.yml index 55a4d2d86536..2aa88ff46002 100644 --- a/.github/workflows/linux_test_cov.yml +++ b/.github/workflows/linux_test_cov.yml @@ -91,11 +91,11 @@ jobs: NODE_VERSION: ['16', '14', '12'] # Define the list of operating systems on which to run this job: - OS: ['ubuntu-24.04'] + OS: ['ubuntu-latest'] # Define configuration options for each Node.js version: include: - - OS: 'ubuntu-24.04' + - OS: 'ubuntu-latest' PLATFORM: 'linux' - NODE_VERSION: '16' @@ -162,12 +162,12 @@ jobs: run: | sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test" sudo -E apt-get update -q - sudo -E apt-get -yq --no-install-suggests --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages install binutils gcc-9 gcc-9-multilib g++-9 g++-9-multilib gfortran-9 gfortran-9-multilib + sudo -E apt-get -yq --no-install-suggests --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages install binutils gcc-14 gcc-14-multilib g++-14 g++-14-multilib gfortran-14 gfortran-14-multilib mkdir -p $HOME/bin echo "$HOME/bin" >> $GITHUB_PATH - ln -s /usr/bin/gcc-9 $HOME/bin/gcc - ln -s /usr/bin/g++-9 $HOME/bin/g++ - ln -s /usr/bin/gfortran-9 $HOME/bin/gfortran + ln -s /usr/bin/gcc-14 $HOME/bin/gcc + ln -s /usr/bin/g++-14 $HOME/bin/g++ + ln -s /usr/bin/gfortran-14 $HOME/bin/gfortran timeout-minutes: 10 # Configure a virtual display server (needed for electron): diff --git a/.github/workflows/linux_test_install.yml b/.github/workflows/linux_test_install.yml index 7fa6f740b91a..3fdfe1c45411 100644 --- a/.github/workflows/linux_test_install.yml +++ b/.github/workflows/linux_test_install.yml @@ -92,11 +92,11 @@ jobs: PACKAGE_MANAGER: ['npm'] # Define the list of operating systems on which to run this job: - OS: ['ubuntu-24.04'] + OS: ['ubuntu-latest'] # Define configuration options for each Node.js version: include: - - OS: 'ubuntu-24.04' + - OS: 'ubuntu-latest' PLATFORM: 'linux' - NODE_VERSION: '20' @@ -191,12 +191,12 @@ jobs: run: | sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test" sudo -E apt-get update -q - sudo -E apt-get -yq --no-install-suggests --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages install binutils gcc-9 gcc-9-multilib g++-9 g++-9-multilib gfortran-9 gfortran-9-multilib + sudo -E apt-get -yq --no-install-suggests --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages install binutils gcc-14 gcc-14-multilib g++-14 g++-14-multilib gfortran-14 gfortran-14-multilib mkdir -p $HOME/bin echo "$HOME/bin" >> $GITHUB_PATH - ln -s /usr/bin/gcc-9 $HOME/bin/gcc - ln -s /usr/bin/g++-9 $HOME/bin/g++ - ln -s /usr/bin/gfortran-9 $HOME/bin/gfortran + ln -s /usr/bin/gcc-14 $HOME/bin/gcc + ln -s /usr/bin/g++-14 $HOME/bin/g++ + ln -s /usr/bin/gfortran-14 $HOME/bin/gfortran timeout-minutes: 10 # Configure a virtual display server (needed for electron): From ede1e0f1e65c6b686bc43f9184f459768e48176d Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 5 Nov 2026 23:40:04 +0000 Subject: [PATCH 3/3] build: update `gcc` toolchain in `.travis.yml` to `gcc-14` Align the Travis CI configuration with the GitHub Actions workflows by installing and linking `gcc-14`, `g++-14`, and `gfortran-14` (and multilib variants). Update `dist` from `xenial` to `noble`, as newer compiler packages are not provided for `xenial`. Not validated on Travis CI. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_017wWD77KjnKtfokLoXjLFGi --- .travis.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index bac61723e462..2a7712248b12 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,7 +27,7 @@ language: node_js os: linux # Specify the Linux distribution: -dist: xenial +dist: noble # Specify the list of Node.js versions on which we want to build: node_js: @@ -51,12 +51,12 @@ addons: - ubuntu-toolchain-r-test packages: - binutils - - gcc-9 - - gcc-9-multilib - - g++-9 - - g++-9-multilib - - gfortran-9 - - gfortran-9-multilib + - gcc-14 + - gcc-14-multilib + - g++-14 + - g++-14-multilib + - gfortran-14 + - gfortran-14-multilib - xvfb - unzip @@ -86,9 +86,9 @@ jobs: before_install: # Perform platform-specific initialization: - mkdir -p $HOME/bin; - ln -s /usr/bin/gcc-9 $HOME/bin/gcc; - ln -s /usr/bin/g++-9 $HOME/bin/g++; - ln -s /usr/bin/gfortran-9 $HOME/bin/gfortran; + ln -s /usr/bin/gcc-14 $HOME/bin/gcc; + ln -s /usr/bin/g++-14 $HOME/bin/g++; + ln -s /usr/bin/gfortran-14 $HOME/bin/gfortran; # Configure the virtual display server (needed for electron): - export DISPLAY=':99.0'