Uploaded image for project: 'Node.js Driver'
  1. Node.js Driver
  2. NODE-4934

Spike: Investigate improvements to mongodb-client-encryption development cycle

    • 5
    • Not Needed
    • Not Needed
    • Hide

      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?

      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?

      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.

            Assignee:
            bailey.pearson@mongodb.com Bailey Pearson
            Reporter:
            bailey.pearson@mongodb.com Bailey Pearson
            Daria Pardue, Durran Jordan, Neal Beeken, Warren James
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: