-
Type: Task
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: CI
-
Not Needed
Use Case
As a... user of the Node driver
I want... the driver to be tested against the lowest supported version of each major
So that... I can be certain that the driver actually supports my version of the runtime and does not rely on behavior that is only available in later minor or patch versions of my major.
User Impact
- Users may need to pin to a specific runtime version for any number of reasons. By allowing the minor and patch of the runtime version in our CI to be pulled in automatically, we risk developing features that are relying on fixes or features that might not be available in our official lowest supported Node.js versions and that would consequently result in bugs for users who are not regularly updating their runtime version.
Dependencies
- N/A
Unknowns
- Will any of our tests fail when we pin our major versions to the lowest supported patch?
- Are we already relying on features that are not available in earlier versions of a given major that we support?
Acceptance Criteria
Implementation Requirements
- Our supported node major versions should be pinned in CI as follows:
- 16 => 16.20.1
- 18 => 18.0.0
- 20 => 20.0.0
- latest - do not update, allow actual latest to be pulled in
- The repos and branches where we want to update the evergreen config and/or github actions are as follows:
- node-mongodb-native (main, 5.x, 4.x)
- js-bson (main, 5.x, 4.x)
- libmongocrypt - node bindings (master)
- kerberos (main)
- zstd (main)
- nodejs-mongodb-legacy (main)
Testing Requirements
- All existing tests should pass
- If any tests fail, investigate the cause
- Test only fixes are in scope for this ticket
- Source code fixes are not in scope for this ticket - skip the test on the affected config and file a follow-up ticket
Documentation Requirements
- None
Follow Up Requirements
- File tickets for any real bugs that are uncovered, if any