From 10a50b2e2d942c668e19d84e84a4b15fe83b884c Mon Sep 17 00:00:00 2001 From: Nigel Megitt Date: Mon, 3 Aug 2026 16:35:09 +0100 Subject: [PATCH 1/3] Up node to v24 or v26 and semver to 10.0.2 --- .github/workflows/build.yml | 2 +- README.md | 8 ++++---- build-pr.sh | 4 ++-- build.sh | 4 ++-- dist/bin/js/bundle.js | 10 +++++----- package-lock.json | 37 +------------------------------------ package.json | 4 ++-- 7 files changed, 17 insertions(+), 52 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7e3cef7..dc48ed9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ jobs: name: Run the tests strategy: matrix: - node-version: ['18.x', '20.x'] + node-version: ['24.x', '26.x'] runs-on: ubuntu-latest diff --git a/README.md b/README.md index 8b7a4ec..703ccf8 100644 --- a/README.md +++ b/README.md @@ -23,12 +23,12 @@ A web page showcasing adhere-lib is available at https://bbc.github.io/Adhere/ ## Setup ```Shell -nvm install 20.11.0 -nvm use 20.11.0 +nvm install 24 +nvm use 24 nvm install-latest-npm ``` -(latest npm is currently 10.8.1) +(latest npm is currently 12.0.2) `cd` to project dir @@ -186,4 +186,4 @@ This is licensed under the Apache 2.0 License. ## Copyright -Copyright (c) 2021 BBC +Copyright (c) 2026 BBC diff --git a/build-pr.sh b/build-pr.sh index dbd9960..36101f6 100755 --- a/build-pr.sh +++ b/build-pr.sh @@ -3,8 +3,8 @@ set -e source /usr/local/nvm/nvm.sh -nvm install 20.11.0 -nvm use 20.11.0 +nvm install 24 +nvm use 24 nvm install-latest-npm # Install & Build diff --git a/build.sh b/build.sh index 62e86cc..cd192c9 100755 --- a/build.sh +++ b/build.sh @@ -3,8 +3,8 @@ set -e source /usr/local/nvm/nvm.sh -nvm install 20.11.0 -nvm use 20.11.0 +nvm install 24 +nvm use 24 nvm install-latest-npm # Install & Build diff --git a/dist/bin/js/bundle.js b/dist/bin/js/bundle.js index cb7e82b..36473c4 100644 --- a/dist/bin/js/bundle.js +++ b/dist/bin/js/bundle.js @@ -231,17 +231,17 @@ eval("{\n\nvar EventEmitter = __webpack_require__(/*! eventemitter3 */ \"./node_ /******/ }); /************************************************************************/ /******/ // The module cache -/******/ var __webpack_module_cache__ = {}; +/******/ const __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ const cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ const module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} @@ -250,7 +250,7 @@ eval("{\n\nvar EventEmitter = __webpack_require__(/*! eventemitter3 */ \"./node_ /******/ // Execute the module function /******/ if (!(moduleId in __webpack_modules__)) { /******/ delete __webpack_module_cache__[moduleId]; -/******/ var e = new Error("Cannot find module '" + moduleId + "'"); +/******/ const e = new Error("Cannot find module '" + moduleId + "'"); /******/ e.code = 'MODULE_NOT_FOUND'; /******/ throw e; /******/ } @@ -265,7 +265,7 @@ eval("{\n\nvar EventEmitter = __webpack_require__(/*! eventemitter3 */ \"./node_ /******/ // startup /******/ // Load entry module and return exports /******/ // This entry module can't be inlined because the eval devtool is used. -/******/ var __webpack_exports__ = __webpack_require__("./src/index.es6"); +/******/ let __webpack_exports__ = __webpack_require__("./src/index.es6"); /******/ const __webpack_exports__Logger = __webpack_exports__.Logger; /******/ const __webpack_exports__TextPresenter = __webpack_exports__.TextPresenter; /******/ const __webpack_exports__VideoAudioHook = __webpack_exports__.VideoAudioHook; diff --git a/package-lock.json b/package-lock.json index 9159461..f435209 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,7 +38,7 @@ "webpack-dev-server": "6.0.0" }, "engines": { - "node": ">=18.0" + "node": ">=24.0" } }, "node_modules/@ava/babel-preset-stage-4": { @@ -8958,30 +8958,6 @@ "dev": true, "license": "MIT" }, - "node_modules/js-yaml": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.2.1.tgz", - "integrity": "sha512-zfLtNfQqxVqq3uaTqSkh4x4hZw3KHobGUA0fJUj4wawW8bsQLTVqpHdXSIzidh7o+4lEW36tANuAGdaFx6Zgnw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/puzrin" - }, - { - "type": "github", - "url": "https://github.com/sponsors/nodeca" - } - ], - "optional": true, - "peer": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.mjs" - } - }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -19780,17 +19756,6 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "js-yaml": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.2.1.tgz", - "integrity": "sha512-zfLtNfQqxVqq3uaTqSkh4x4hZw3KHobGUA0fJUj4wawW8bsQLTVqpHdXSIzidh7o+4lEW36tANuAGdaFx6Zgnw==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "argparse": "^2.0.1" - } - }, "jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", diff --git a/package.json b/package.json index 03e30a1..d5585d7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "adhere-lib", - "version": "0.10.1", + "version": "0.10.2", "repository": { "type": "git", "url": "https://github.com/bbc/adhere-lib" @@ -10,7 +10,7 @@ "main": "./dist/bin/js/bundle.js", "type": "module", "engines": { - "node": ">=18.0" + "node": ">=24.0" }, "resolve": { "extensions": [ From 7d6e8d5e2a1c80800044303df5126ba925a6a456 Mon Sep 17 00:00:00 2001 From: Nigel Megitt Date: Mon, 3 Aug 2026 16:44:05 +0100 Subject: [PATCH 2/3] Specify permissions explicitly --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dc48ed9..fc11c12 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,7 @@ name: Build 🛠️ +permissions: + contents: read + pull-requests: write on: workflow_dispatch: # can call manually From 2d0a02babe8e4fc1629fef1c0d8d81456ea09ecc Mon Sep 17 00:00:00 2001 From: Nigel Megitt Date: Mon, 3 Aug 2026 16:47:04 +0100 Subject: [PATCH 3/3] Comment success or failure on PR --- .github/workflows/build.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fc11c12..dadb7c7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,3 +30,31 @@ jobs: - run: npm run lint - run: npm run build - run: npm run test + + comment-success-on-pr: + if: success() + needs: test + runs-on: ubuntu-latest + steps: + - name: Add Success Comment to PR + uses: marocchino/sticky-pull-request-comment@v2 + with: + header: build + hide_and_recreate: true + hide_classify: "OUTDATED" + message: | + Lint, build and test passing for commit ${{ github.event.pull_request.head.sha }} 🚀 + + comment-failure-on-pr: + if: failure() + needs: test + runs-on: ubuntu-latest + steps: + - name: Add Failure Comment to PR + uses: marocchino/sticky-pull-request-comment@v2 + with: + header: build + hide_and_recreate: true + hide_classify: "OUTDATED" + message: | + Lint, build and test FAILING for commit ${{ github.event.pull_request.head.sha }} 💥