[
https://issues.apache.org/jira/browse/THRIFT-3380?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14998872#comment-14998872
]
Aki Sukegawa commented on THRIFT-3380:
--------------------------------------
{quote}
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,
{quote}
We can do it today:
{code}
var thrift = require('thrift');
var TFramedTransport = thrift.TFramedTransport;
{code}
This doesn't change the fact that requires with old paths are broken by 0.9.3.
But it is also certain that undoing root package.json will break those who are
already relaying on npm install from git repo.
So I suggest closing this as won't fix and recommend main file require.
Thought ?
> nodejs: 0.9.2 -> 0.9.3 upgrade breaks Protocol and Transport requires
> ---------------------------------------------------------------------
>
> Key: THRIFT-3380
> URL: https://issues.apache.org/jira/browse/THRIFT-3380
> Project: Thrift
> Issue Type: Bug
> Components: Node.js - Library
> Affects Versions: 0.9.3
> Reporter: Matt Willer
> Priority: Critical
> Original Estimate: 10m
> Remaining Estimate: 10m
>
> Node.js projects that depend on Thrift and need to use a specific transport
> or protocol must require them in separately, like this:
> {code}
> var thrift = require('thrift'),
> ThriftTransports = require('thrift/lib/thrift/transport');
> {code}
> 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.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)