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

Demonstrate v4 types working in v5 serializer and v5 types working in v4 serializer

    • Type: Icon: Task Task
    • Resolution: Won't Do
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • 3
    • Not Needed
    • Not Needed

      Use Case

      As a nodejs developer
      I may have BSON v4 types imported into my application and pass them to a driver using a v5 serializer version
      I want to be sure that the compatibility between these library versions keeps working

      Dependencies

      • upstream and/or downstream requirements and timelines to bear in mind

      Unknowns

      • Does BSON v4 need any minor/patch releases to make v5 types work? (Unlikely)
      • Web mode will not support this compatibility, is that acceptable? (Yes, unless otherwise strongly justified)

      Acceptance Criteria

      Testing Requirements

      • Using the setup in bson_older_versions_tests.js test file
        • Add BSON v4 as a version to the matrix of versions to test against
        • v4's serializer should be able to handle v5's BSON type classes because when run in a nodejs environment the salient properties will still be type Buffer
        • v5's serializer should be able to handle v4's BSON types because the previous major's salient properties should still have the same names and be typed as a subclass of Uint8Array (Buffer) which will work with the new buffer type agnostic code.

      Follow Up Requirements

      • Do we need to continue testing 1.x against 5.x? - File a ticket about making BSON work like EJSON where the types define their translation with to/from methods

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

              Created:
              Updated:
              Resolved: