Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-3380

nodejs: 0.9.2 -> 0.9.3 upgrade breaks Protocol and Transport requires

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Won't Fix
    • 0.9.3
    • 0.10.0
    • Node.js - Library
    • None
    • Patch Available
    • Patch

    Description

      Node.js projects that depend on Thrift and need to use a specific transport or protocol must require them in separately, like this:

      var thrift = require('thrift'),
          ThriftTransports = require('thrift/lib/thrift/transport');
      

      The new version (0.9.3) changed that directory structure of the thrift module so that the transport file is now located at thrift/lib/nodejs/lib/thrift/transport.js, which breaks any application that was requiring it at the old path. This type of breaking change is inappropriate for a patch version, and should be fixed immediately.

      The directory structure change also has the undesirable side effect of including every single language implementation of thrift in the Node.js module, bloating the size of the module with unnecessary files.

      Long-term, the right fix for this is to export useful parts of the library (e.g. transport and protocol constructors) from the main file, but since this is a patch version the immediate fix should be to maintain existing behavior.

      Attachments

        Issue Links

          Activity

            People

              roger Roger Meier
              mwiller Matt Willer
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - 10m
                  10m
                  Remaining:
                  Remaining Estimate - 10m
                  10m
                  Logged:
                  Time Spent - Not Specified
                  Not Specified