-
Type: Task
-
Resolution: Done
-
Priority: Unknown
-
None
-
Affects Version/s: None
-
Component/s: Tooling
Use Case
As a Node driver engineer,
I want a simpler of developing in libmongocrypt and the Node driver,
So that local development is simpler and testing changes in CI does not require manual coordination of git branches.
This ticket aims to address two problems:
- extra steps are required to test both the driver and mongodb-client-encryption locally (not difficult, just extra work)
- changes that affect both the driver and mongodb-client-encryption require simultaneous PRs on both repos, often with no easy way to test either set of changes without manually hacking our driver evergreen config and running one-off patches. this is error prone and significantly slows down development, especially when changes are requested in the PR review cycle.
User Impact
QOL improvement for engineers.
Dependencies
- upstream and/or downstream requirements and timelines to bear in mind
Unknowns
- Anna has stated her preference for leaving the node bindings in libmongocrypt, so we should make sure to consider solutions that leave the bindings in libmongocrypt.
- Some possible solutions
- git submodules
- monorepo
- move the Javascript CSFLE logic from mongodb-client-encryption into the driver and make mongodb-client-encryption only raw libmongocrypt bindings
- leave the setup as-is and create local development and CI automation tooling
Acceptance Criteria
- Investigate solutions to the two problems listed in this ticket. Output should be a document that outlines the approaches considered and pros/cons of each.