Consolidate the dependabot bumps that hold the test baseline - #936
Merged
koral-- merged 1 commit intoSep 10, 2026
Merged
Conversation
koral--
reviewed
Sep 10, 2026
| matrix: ${{ steps.plan.outputs.matrix }} | ||
| steps: | ||
| - uses: actions/checkout@v5 | ||
| - uses: actions/checkout@v7 |
Member
There was a problem hiding this comment.
actions versions in other workflows can be also updated
Author
There was a problem hiding this comment.
Done, all five workflows now use the same versions and every actions/* and docker/* reference is at its latest major, including upload-artifact 6 to 7, setup-buildx-action 3 to 4 and build-push-action 6 to 7 which had no dependabot PR.
Applies 11 dependabot bumps: the five GitHub Actions bumps (checkout 5 to 7, setup-node 5 to 7, cache 5 to 6, download-artifact 7 to 8, github-script 8 to 9) and six npm bumps (uuid 3 to 8, ws 5 to 8, async 2 to 3, karma 2 to 6, karma-jasmine 2 to 4, protractor 5 to 7). The action bumps go into all five workflows rather than ci.yml alone, and cover every action the workflows use rather than only the five with a dependabot PR. That adds upload-artifact 6 to 7, setup-buildx-action 3 to 4 and build-push-action 6 to 7. Each of those three majors is the same change, Node 24 as the default runtime, which needs Actions Runner 2.327.1 or later. checkout 7 and setup-node 7 already carry that requirement and pass on ubuntu-24.04, so the runner is new enough. Every actions/* and docker/* reference under .github/workflows is now at its latest major. The only unpinned-to-major reference left is reactivecircus/android-emulator-runner, which is pinned by commit sha on purpose. Each bump was applied on its own and kept only if lint, test:unit and test:component all held their baseline of 0 warnings, 104 passing and 117 of 117. No call site needed changing. uuid 8 still accepts the three argument buffer form used in lib/wire/util.js, and the ws 8 switch from string frames to Buffer frames is absorbed by RegExp.exec in lib/units/device/plugins/screen/stream.js, which coerces its argument. Left out: protobufjs 5 to 8 and eslint 4 to 10 both need a source migration rather than a version change, so each gets its own PR. pug and @julusian/jpeg-turbo are already ahead of what those bumps propose, so applying them would be a downgrade. passport-saml was replaced by @node-saml/passport-saml, so that bump would re-add a dependency nothing imports. Signed-off-by: Matan Baruch <36934912+matanbaruch@users.noreply.github.com>
matanbaruch
force-pushed
the
chore/consolidate-dependabot-bumps
branch
from
September 10, 2026 00:47
4c439da to
328d7ec
Compare
koral--
approved these changes
Sep 10, 2026
This was referenced Sep 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Folds the open dependabot bumps into one commit, keeping only the ones that hold the test baseline.
Each bump was applied on its own, then
lint,test:unitandtest:componentwere run and compared against master. A bump stayed only if all three held. Baseline on master (59e8504f): 0 errors / 0 warnings, 104 passing, 117 of 117. Final state of this branch: identical on all three.Supersedes #248, #286, #290, #899, #900, #901, #902, #903, #905, #906 and #908.
Included, 11 bumps
uses:lines,v7tag existscache:input, onlynode-version-fileornode-version, so v6's auto-caching change does not applyname/pathandpattern/merge-multipleare all still validci.yml:688uses only the injectedgithub/context/coreplusrequire('fs'), neverrequire('@actions/github'), which is the v9 breakNo call site needed changing. Two looked like they would and did not:
lib/wire/util.js:19callsuuid.v4(null, Buffer.alloc(16)). uuid 8 still supports thev4(options, buf, offset)form, andmakePrivateChannel()returns a valid 16 byte base64 value.Bufferrather thanstring, which is a real break. The only consumer islib/units/device/plugins/screen/stream.js:577, which passes the frame toRegExp.exec, and that coerces its argument. Checked over a live ws 8 socket with all four control messages:on,off,size 600x800(w=600, h=800) and a garbage value, which stayed correctly unmatched.Left out, and why
test:unitexits 1 with 0 tests run:TypeError: ProtoBuf.loadProtoFile is not a function at lib/wire/index.js:5:21. Needs a source migration, which is #935. #904 is already closednpm run lintexits 1 withTypeError: EslintCLIEngine is not a constructor at gulpfile.js:56, because eslint 10 no longer exportsCLIEngine. Andnpx eslintreportsESLint couldn't find an eslint.config.* file, so the 161 line.eslintrcis dead. That is a flat config migration plus a gulpfile rewrite, and it gets its own PR^3.0.3, so this lowers the floor. Closed^2.2.0. This is a major downgrade of a production native dep used atlib/units/device/plugins/vnc/index.js:12. Closedpassport-samlis not a dependency any more. It was replaced by@node-saml/passport-saml: ^5.0.1, andlib/units/auth/saml2.js:10already requires the scoped package, so this bump would re-add a dependency nothing imports. ClosedAll six of the older PRs (#248, #267, #273, #286, #290, #603) also patch a
yarn.lockthat no longer exists, deleted in872b0bcb.Where a green suite is not evidence
Stating this plainly, because four of the included bumps are not actually exercised:
res/test/e2e/**and run only throughgulp protractor, which needs a live STF atSTF_URLplus webdriver. The positive evidence is only that it loads,res/test/protractor.conf.jsparses with its 5 suites, the.binlayout thatres/test/e2e/helpers/gulp-protractor-adv.jsresolves is intact, and all 22 gulp tasks still register. Protractor is also EOL and npm prints the deprecation.require('async')hits, so green carries no information.jasmine-core3.99.1 that 2.0.1 already did, so the effective jasmine version is unchanged.Two things worth knowing
download-artifact v8 turns a digest mismatch into an error rather than a warning, and checks
Content-Typebefore unzipping. No input change is needed, but a corrupted artifact will now fail the run instead of warning.Every action in every workflow is bumped, per review. The dependabot PRs only patch
ci.yml. That would have leftdocker.yml,docker-build.yml,release.ymlandprepare-release.ymloncheckout@v5,setup-node@v5anddownload-artifact@v7, and would have left three actions with no dependabot PR at all sitting a major behind. Both gaps are closed here:Nothing under
.github/workflowsis behind its latest major now.reactivecircus/android-emulator-runnerstays pinned by commit sha on purpose.upload-artifactv7,setup-buildx-actionv4 andbuild-push-actionv7 are all the same breaking change: Node 24 as the default runtime, requiring Actions Runner 2.327.1 or later.checkout@v7andsetup-node@v7already carry that requirement and pass onubuntu-24.04, so the runners are new enough.The edits are provably nothing but version numbers. Stripping
@vNfrom the diff makes the removed and added lines identical, and all five workflows still parse.docker.ymlruns onpull_requestand callsdocker-build.yml, so this PR's ownStandard image (amd64)/(arm64)checks exercisesetup-buildx-action@v4,build-push-action@v7,upload-artifact@v7anddownload-artifact@v8for real.release.ymlandprepare-release.ymldo not run on a PR, so their 6 lines stay unvalidated. Both callsetup-nodewith onlynode-version-fileornode-version, andcheckoutwith onlyfetch-depthorref, all unchanged inputs in the new majors.Separately, karma 6 removes the Node 24 problem. On master,
test:componentcannot run on Node 24 at all: log4js calls the removedutil.isError. On this branch it passes 117 of 117 on Node 24.19.0..nvmrcstill pins 22.11.0 and CI readsnode-version-file, so CI behaviour does not change, but local development stops needing Node 22. Karma 6 also drops 277 transitive packages and reports the browser correctly asChrome Headless 152.0.0.0instead ofHeadlessChrome 0.0.0.Every install used
--ignore-scriptsto skip thepreparescript, so no native compile step was exercised.bufferutil,utf-8-validate,zeromqand@julusian/jpeg-turbocame from prebuilds.