Meta: 4.0 Release Ideas
Author: tgriesserCreated Mar 25, 2026Updated Jul 6, 2026
Starting to get back into the issues a bit here. Opening this as a meta issue tracking the potential breaking changes we might want to include in a 4.0 release. Will add to this as I see new things
Breaking
- Drop official support for EOL Node versions - definitely drop 16.x, 18.x, 20 is in maintenance mode, depending on when we release 4.0 we may be good to drop it. Also include newer versions of Node in the testing matrix. Note: we won't officially set an
engines, we just won't test on older versions and make no guarantees of support - Drop
esmmodule from the CLI client - this is unnecessary in newer versions of Node. We just need to add a good amount of test and docs for the "correct way" to interop with.mjs,.cjs,.mts, etc. - Potentially setting
min: 0for default connection pool config - A way to have flagged schema builder improvements applied in a way that they don't affect existing migrations. Will open an issue at some point to explain what I mean here
- Get rid of the confusing message "the pool is probably full" message in the
KnexTimeoutError - Explicit connection lifecycle context & management, reworking to allow custom lifecycle behavior in acquisition & disposal management
Features
Note: these could be 3.x releases, but should definitely be done before 4.0
- Stop mutating the db connection
- External Pooling Interop (probably requires the above issue to do cleanly)
- Maybe a dedicated TracingChannel?
- Retry-ability on query execution errors
Bugfixes
- MySQL Enum value escaping #4481
-
jsonSetinconsistencies #5165
Other
- Maybe some forms of modernization? Cleanup Lodash, etc. Don't want to try to promise too much just yet
Source: knex/knex