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

Codify optional dependency version support

    • Type: Icon: Task Task
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • Not Needed
    • Not Needed

      Use Case

      As a driver engineer I want a reference point for what versions are capable of working with the driver so that I can reference them when testing.

      As a driver user I want an easy way to install the correct optional dependency so that I can be sure I always have the right version along side the driver.

      User Impact

      • Anyone who uses Snappy, mongodb-client-encryption, kerberos, saslprep, aws4

      Dependencies

      • The optional dependencies we use
      • dep.ts

      Unknowns

      • What is the most maintainable way to encode this?
      • How can we integrate it with CI to ensure the versioning is correct?

      Acceptance Criteria

      Implementation Requirements

      • Needs some investigation
      • what if we ship an additional json file in our driver that has semver ranges?
      • We could use CI to install and test the ranges based on this file.
      • Add a link to the file from the readme, we would recommend users who want Snappy for example copy the semver range we have specified into their package.json so that they respect the same range we are testing.
      • Users could easily run shell pipe command to pull any changes to this to their package.json.

      There's no standard way to do this so we should just consider what is best for users.

      We could make wrapper modules, @mongodb/aws4 for example would simply maintain the supported semver range. Automation would be a must if we considered this solution.

      Testing Requirements

      • CI that runs multiple versions of an optional dependency.

      Documentation Requirements

      • Depending on the best practice recommendation for these optional dependencies, we should do a write up of how users should use this.

      Follow Up Requirements

      • n/a

            Assignee:
            Unassigned Unassigned
            Reporter:
            neal.beeken@mongodb.com Neal Beeken
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: