WebThingsIO / gateway

WebThings Gateway - a self-hosted web application for monitoring and controlling a building over the web
http://webthings.io/gateway
Mozilla Public License 2.0
2.62k stars 339 forks source link

Upgrade from Node 10 to Node 20 #3176

Closed benfrancis closed 14 hours ago

benfrancis commented 1 week ago

This PR upgrades the version of Node.js used by WebThings Gateway from version 10 to version 20.

This requires upgrading various npm packages and applying a bunch of TypeScript fixes, and updating the GitHub Action to run using Node.js 20.

TODO:

benfrancis commented 6 days ago

@tim-hellhake I think this is nearly ready, I just can't figure out why jest is exiting with an error in CI even though all the tests are passing. Any ideas?

benfrancis commented 1 day ago

Finally got the tests to pass!

I'm going to split bb0a1ad592175ca63ea72ab27c8d09958ffadd64 out into a separate PR because I don't think it's strictly necessary and I'd like to better understand what we're losing, but otherwise I think this is ready to land.

I intend to keep the full commit history rather than squash them so that we can bisect later if any of these upgrades cause regressions.

benfrancis commented 15 hours ago

Ah, it turns out that the deprecated coverage command was also preventing the integration test action from completing successfully after all, so I've added the commit back to remove it.