Skip to content

Update dev dependencies, replace Node 18 with Node 24 in CI#706

Open
ericyhwang wants to merge 8 commits intomasterfrom
dev-dep-upgrades-2026
Open

Update dev dependencies, replace Node 18 with Node 24 in CI#706
ericyhwang wants to merge 8 commits intomasterfrom
dev-dep-upgrades-2026

Conversation

@ericyhwang
Copy link
Copy Markdown
Contributor

  1. Update to latest dev dependencies (eslint, mocha, chai, nyc, sinon)
    • ESLint now requires the newer "flat config". I used the eslint migration tool to produce eslint.config.js based on the existing .eslintrc.js.
    • sinon@19 started stubbing nextTick by default, which causes some tests using fake timers to fail.
    • Removed a very ancient test/.jshintrc file, we missed it when migrating to ESLint
  2. In CI, remove Node 18 and add Node 24
    • Node 18's been end-of-life for almost a year, Node 24 is the latest LTS.
    • CI will now run with Node 20, 22, and 24.

Technically, we should major version for dropping Node 18, though the sharedb library itself should still run fine on Node 18 since it doesn't use anything in Node 20+. Note that Node 20's going EoL in less than a month, so we could just wait until then to major version.

Node 18 has been EoL for a year. Also, dev deps sinon 19+, chai 5+, and sinon-chai 4+ require at least Node 20, since require(esm) was only backported as far back as Node 20 - https://joyeecheung.github.io/blog/2025/12/30/require-esm-in-node-js-from-experiment-to-stability/\#Backporting-require-esm-to-v22-and-v20-LTS
…ead of clock.tickAsync()

Using setTickMode({mode: "nextAsync"}) together with clock.tickAsync() can trigger a fake-timers bug that causes Mocha to hang after test suite completion (sinonjs/fake-timers#564)
@coveralls
Copy link
Copy Markdown

Coverage Status

coverage: 97.465%. remained the same — dev-dep-upgrades-2026 into master

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.

2 participants