T395926: Upgrade all CI jobs for WMF-deployed projects from Node 22 to Node 24 | …
- MediaWiki things
- …
- Libraries and tools
- …
Node services to be done in T437512: Migrate node-based services in production to node26, not blocking this work.
T395926: Upgrade all CI jobs for WMF-deployed projects from Node 22 to Node 24 | …
Node services to be done in T437512: Migrate node-based services in production to node26, not blocking this work.
| Status | Subtype | Assigned | Task | ||
|---|---|---|---|---|---|
| Open | None | T438085 Upgrade all CI jobs for WMF-deployed projects from Node 24 to Node 26 | |||
| Resolved | vaughnwalters | T438510 PageTriage browser tests broken on Node 26(?) | |||
| Resolved | vaughnwalters | T438784 Update wdio-mediawiki in extensions from 6.5.1-> 6.5.2 |
Change #1342057 had a related patch set uploaded (by Jforrester; author: Jforrester):
[integration/config@master] Docker: [quibble-bookworm] Update Node from 24.18.0 to 26.8.2
Change #1342058 had a related patch set uploaded (by Jforrester; author: Jforrester):
[integration/config@master] jjb: Update Node from 24.18.0 to 26.8.2 for Quibble jobs
Change #1342059 had a related patch set uploaded (by Jforrester; author: Jforrester):
[integration/config@master] Zuul: Migrate MediaWiki-land independent CI Node from 24 to 26
Change #1342057 merged by jenkins-bot:
[integration/config@master] Docker: [quibble-bookworm] Update Node from 24.18.0 to 26.8.2
I have built the images this morning (from https://gerrit.wikimedia.org/r/c/integration/config/+/1342057/):
docker-registry.wikimedia.org/releng/quibble-bookworm:1.21.0-s3
docker-registry.wikimedia.org/releng/quibble-bookworm-php85:1.21.0-s3
docker-registry.wikimedia.org/releng/quibble-bookworm-php84:1.21.0-s3
docker-registry.wikimedia.org/releng/quibble-bookworm-php83:1.21.0-s3
docker-registry.wikimedia.org/releng/quibble-coverage:1.21.0-s3
docker-registry.wikimedia.org/releng/quibble-bookworm-php82:1.21.0-s3
docker-registry.wikimedia.org/releng/quibble-fresnel:1.21.0-s3
docker-registry.wikimedia.org/releng/quibble-bookworm-php81:1.21.0-s3
The big question is what is going to break as we upgrade NodeJS from 24.x to 26.x, notably the browser tests/webdriver.io which might require to be upgraded across supported branches :-/
In general, we have two sources of breakage when we do this:
The last time we had issues with the former was the Node 16 upgrade (due to wdio). It's possible that we'll be bitten by this again, but I'd be surprised.
The other one hits us every time for the handful of repos that keep doing this pinning, almost all of them owned by Readers group, and I have to fix them manually for them (both main and older branches).
Change #1342058 merged by jenkins-bot:
[integration/config@master] jjb: Update Node from 24.18.0 to 26.8.2 for Quibble jobs
Change #1342059 merged by jenkins-bot:
[integration/config@master] Zuul: Migrate MediaWiki-land independent CI Node from 24 to 26
Mentioned in SAL (#wikimedia-releng) [2026-09-18T13:48:53Z] <James_F> Zuul: Migrate MediaWiki-land independent CI Node from 24 to 26, for T438085
Change #1343068 had a related patch set uploaded (by Jforrester; author: Jforrester):
[integration/config@master] jjb: Provide Node 26 Codex jobs
Change #1343069 had a related patch set uploaded (by Jforrester; author: Jforrester):
[integration/config@master] Zuul: Remaining Node 24 -> 26 migrations
Change #1343070 had a related patch set uploaded (by Jforrester; author: Jforrester):
[integration/config@master] jjb: Migrate incidental Node use to Node 26
Change #1343071 had a related patch set uploaded (by Jforrester; author: Jforrester):
[integration/config@master] jjb: Drop Node 24 jobs, now unused
Change #1343068 merged by jenkins-bot:
[integration/config@master] jjb: Provide Node 26 Codex jobs
Change #1343069 merged by jenkins-bot:
[integration/config@master] Zuul: Remaining Node 24 -> 26 migrations
Change #1343075 had a related patch set uploaded (by Jforrester; author: Jforrester):
[integration/config@master] Docker: [ajv, sonar-scanner] Update Node from 24.18.0 to 26.8.2
Change #1343076 had a related patch set uploaded (by Jforrester; author: Jforrester):
[integration/config@master] jjb: Migrate sonar-scanner to images with Node 26
Change #1343077 had a related patch set uploaded (by Jforrester; author: Jforrester):
[integration/config@master] Docker: Drop Node 24 images, no longer used
Change #1343086 had a related patch set uploaded (by Jforrester; author: Jforrester):
[mediawiki/core@wmf/1.47.0-wmf.20] Re-generate package-lock.json for wmf.20
Change #1343110 had a related patch set uploaded (by Jforrester; author: Jforrester):
[integration/config@master] Revert "Zuul: Remaining Node 24 -> 26 migrations"
Change #1343111 had a related patch set uploaded (by Jforrester; author: Jforrester):
[integration/config@master] Revert "Zuul: Migrate MediaWiki-land independent CI Node from 24 to 26"
Change #1343110 merged by jenkins-bot:
[integration/config@master] Revert "Zuul: Remaining Node 24 -> 26 migrations"
Change #1343111 merged by jenkins-bot:
[integration/config@master] Revert "Zuul: Migrate MediaWiki-land independent CI Node from 24 to 26"
Change #1343120 had a related patch set uploaded (by Jforrester; author: Jforrester):
[integration/config@master] Revert "jjb: Update Node from 24.18.0 to 26.8.2 for Quibble jobs"
Change #1343120 merged by jenkins-bot:
[integration/config@master] Revert "jjb: Update Node from 24.18.0 to 26.8.2 for Quibble jobs"
Change #1343086 merged by jenkins-bot:
[mediawiki/core@wmf/1.47.0-wmf.20] Re-generate package-lock.json for wmf.20
Is this the root cause of T437133: Selenium test "Special:NewPagesFeed.new article appears in feed" in newpagesfeed.js for extension PageTriage is flaky and T438510: PageTriage browser tests broken on Node 26(?)? Both of those were tagged Unbreak Now, so mentioning here for visibility.
It's possible? But if they're still broken, no, all of this work was reverted for different issues.
The tests now pass since this was reverted. I was just a bit slow creating T438510 while being distracted and not noticing this.
Still, if that upgrade would be rolled out again, those tests would likely break again like this. I'll leave it to you to decide whether these tests should be skipped for the upgrade (change doing that is attached to T438510 and ready for review), or whether these tests failing should be treated as a blocker for this task.
Change #1343501 had a related patch set uploaded (by Hashar; author: Hashar):
[integration/config@master] Docker: [ajv] Update Node from 24.18.0 to 26.8.2
Change #1343501 merged by jenkins-bot:
[integration/config@master] Docker: [ajv] Update Node from 24.18.0 to 26.8.2
Mentioned in SAL (#wikimedia-releng) [2026-09-21T11:37:19Z] <hashar> Build docker-registry.wikimedia.org/releng/ajv:0.4.1-s5 (upgrade Node from 24.18.0 to 26.8.2) Used by PipelineLib # T438085
Indeed webdriver.io used a fibers which relied feature from v8 that vanished at some point. And I guess they do have some breakage here and there. Probably we haven't had much fallout as part of upgrading to Node 20 and then 22. Thank you that is reassuring.
The other one hits us every time for the handful of repos that keep doing this pinning, almost all of them owned by Readers group, and I have to fix them manually for them (both main and older branches).
Isn't .nvmrc solely for nvm? What breaks when we update NodeJS on CI while the .nvmrc is stall in the past?
Regardless those repositories have a build step due to esbuild/webpack whatever (instead of resourceloader?) which I guess needs assets to be regenerated with the same version of Node that is used in CI to build/webpack etc. And I guess that breaks regardless of .nvmrc?
Webdriver browser tests have all been upgraded and should be fine with node26 now T438784: Update wdio-mediawiki in extensions from 6.5.1-> 6.5.2
Change #1346056 had a related patch set uploaded (by Jforrester; author: Jforrester):
[integration/config@master] jjb: Upgrade Quibble-based jobs to ones with Node 26
I propose to try this again, with https://gerrit.wikimedia.org/r/c/integration/config/+/1346056, this Friday.
Change #1351193 had a related patch set uploaded (by Hashar; author: Hashar):
[integration/config@master] Revert "Docker: [quibble-bookworm] Update Node from 24.18.0 to 26.8.2"
Change #1351193 merged by jenkins-bot:
[integration/config@master] Revert "Docker: [quibble-bookworm] Update Node from 24.18.0 to 26.8.2"