Skip to content

impr(VLTCLT-69): Run CI on Node 24 and raise the Node floor - #472

Open
francoisferrand wants to merge 6 commits into
development/8.5from
improvement/VLTCLT-69
Open

francoisferrand wants to merge 6 commits into
development/8.5from
improvement/VLTCLT-69

Conversation

@francoisferrand

Copy link
Copy Markdown
Contributor

vaultclient still advertised Node 20 support even though that runtime is end-of-life and no longer tested. This moves CI to a Node 22/24 matrix and raises the library floor to Node 22, keeping compatibility with consumers that have not moved to Node 24 yet.

The dependency pass also updates the Node 24-aligned httpagent and werelogs releases, moves Guidelines to 8.3.3, refreshes compatible tooling, and aligns the lockfile with what consumers install. The release version is bumped to 8.5.9.

The audit result goes from 57 dev findings (37 high, 14 moderate, 5 low, plus one namesquat false positive) to only that known false positive. Production dependencies remain at zero findings.

Verified on Node 22 and Node 24:

  • lint and Markdown lint pass
  • 128 tests pass
  • generated types remain in sync
  • bin/vaultclient --version works with the refreshed dependency tree

Issue: VLTCLT-69

Node 22 enters maintenance next month and is EOL in April 2027, so we
need to know vaultclient is fine on 24 before consumers move. CI now runs
the whole suite on both 22 and 24, since consumers straddle the two for
now.

The engines floor still advertised >=20, which has been EOL since April
2026. It goes to >=22 and not >=24 on purpose: cloudserver, backbeat and
scuba are still on 22, and raising a library floor ahead of its consumers
just breaks their installs. It drops to >=24 once they have all moved.

Issue: VLTCLT-69
yarn audit was reporting 57 advisories, all dev-only and all coming from
stale transitives (cross-spawn, minimatch, js-yaml, brace-expansion,
flatted). None of them needed a range change, the lockfile was simply
old: picking up eslint 9.39.5, sinon 21.1.2 and typescript 5.9.3 takes us
down to 26.

The declaration map comes along because 5.9 emits slightly different
mappings. The declarations themselves are untouched, so nothing changes
for consumers.

Issue: VLTCLT-69
The advisories left in our own tree were all mocha holding
serialize-javascript on 6.x. The fix only exists in 7.x and mocha picks
it up in 12, so the range has to move. Nothing else was needed: no config
or test changes, and mocha 12 asks for ^20.19 || >=22.12, which both legs
of the matrix satisfy.

That leaves the markdown-it/linkify-it chain under eslint-config-scality,
which can only be fixed in Guidelines.

Issue: VLTCLT-69
Our lockfile held @smithy/signature-v4 at 4.1.0 while the declared ^4.1.0
resolves to 4.2.4 today. A library's lockfile never reaches its
dependents, so cloudserver, backbeat and scuba have been installing 4.2.4
all along while CI exercised the request signing path against a version
nobody runs.

No advisory here and nothing an audit would flag. What makes it worth
closing is that the v4 auth tests are the thing meant to catch a
regression in signing, and they were covering the wrong tree, on the one
runtime dependency doing crypto.

The @smithy siblings it pulls along (protocol-http, types,
util-middleware) and tslib move with it, all inside their existing
ranges.

Issue: VLTCLT-69
…mocha

eslint-config-scality#8.3.3 clears the markdown-it/linkify-it advisory
chain (markdownlint 0.38.0) that reached us as a dev dependency, plus
picks up the node24 engines floor and MD059 rule tweak on the vendored
markdown lint config.

httpagent#1.1.1 and werelogs#8.2.5 are their own node24 engines bumps
(>=20 -> >=22), landing on the same schedule as this repo. mocha bumps
a patch version that was already in range.

Issue: VLTCLT-69
@bert-e

bert-e commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Hello francoisferrand,

My role is to assist you with the merge of this
pull request. Please type @bert-e help to get information
on this process, or consult the user documentation.

Available options
name description privileged authored
/after_pull_request Wait for the given pull request id to be merged before continuing with the current one.
/bypass_author_approval Bypass the pull request author's approval
/bypass_build_status Bypass the build and test status
/bypass_commit_size Bypass the check on the size of the changeset TBA
/bypass_incompatible_branch Bypass the check on the source branch prefix
/bypass_jira_check Bypass the Jira issue check
/bypass_peer_approval Bypass the pull request peers' approval
/bypass_leader_approval Bypass the pull request leaders' approval
/bypass_source_branch_lineage Bypass the cross-branch contamination check
/approve Instruct Bert-E that the author has approved the pull request. ✍️
/create_pull_requests Allow the creation of integration pull requests.
/create_integration_branches Allow the creation of integration branches.
/no_octopus Prevent Wall-E from doing any octopus merge and use multiple consecutive merge instead
/unanimity Change review acceptance criteria from one reviewer at least to all reviewers
/wait Instruct Bert-E not to run until further notice.
Available commands
name description privileged
/help Print Bert-E's manual in the pull request.
/status Print Bert-E's current status in the pull request.
/clear Remove all comments from Bert-E from the history TBA
/retry Re-start a fresh build TBA
/build Re-start a fresh build TBA
/force_reset Delete integration branches & pull requests, and restart merge process from the beginning.
/reset Try to remove integration branches unless there are commits on them which do not appear on the source branch.

Status report is not available.

@bert-e

bert-e commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Incorrect fix version

The Fix Version/s in issue VLTCLT-69 contains:

  • None

Considering where you are trying to merge, I ignored possible hotfix versions and I expected to find:

  • 8.5.9

Please check the Fix Version/s of VLTCLT-69, or the target
branch of this pull request.

@francoisferrand
francoisferrand requested review from a team, benzekrimaha and delthas September 18, 2026 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants