thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <>
Subject [jira] [Commented] (THRIFT-4069) All perl packages should have proper namespace and version syntax
Date Sun, 26 Mar 2017 04:47:42 GMT


ASF GitHub Bot commented on THRIFT-4069:

GitHub user jeking3 opened a pull request:

    THRIFT-4069: perl library cleanup - namespaces, versioning, exception fixes


You can merge this pull request into a Git repository by running:

    $ git pull THRIFT-4069

Alternatively you can review and apply these changes as the patch at:

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1220
commit 7c8c79a524874258b809c10e1a94132c758c8643
Author: James E. King, III <>
Date:   2017-03-26T04:23:21Z

    THRIFT-4069: perl library cleanup - namespaces, versioning, exception fixes


> All perl packages should have proper namespace and version syntax
> -----------------------------------------------------------------
>                 Key: THRIFT-4069
>                 URL:
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Perl - Library
>    Affects Versions: 0.10.0
>         Environment: Perl
>            Reporter: James E. King, III
>            Assignee: James E. King, III
> Currently our perl package module files contain multiple packages.  We should break each
package out to an individual file (or at least make sure everything is in the Thrift namespace)
and properly version it.  Package versioning was introduced in Perl 5.10 so:
> 1. Update the minimum required perl to 5.10.  This is based on
indicating that perl version object was added to perl in 5.10.
> 2. For each package use the {{perl MODULE VERSION}} perlmod syntax, where VERSION is
{{v0.11.0}}.  This is based on
> 3. Each module not under the Thrift namespace must be moved there (TApplicationException,
TMessageType, TType).  This will be a breaking change, but necessary for proper packaging
of the library.
> Currently if you inspect the Perl PAUSE version metadata for Thrift's sub-modules only
the 0.9.0 modules from gslin have version identities.
> For example if you look at Thrift and Thrift::BinaryProtocol in the CPAN list of packages
at you will see:
> {noformat}
> Thrift                         0.010000  J/JK/JKING/thrift/Thrift-0.10.0.tar.gz
> Thrift::BinaryProtocol         0.009000  G/GS/GSLIN/Thrift-0.9.0.tar.gz
> {noformat}
> There are some anomalies, for example packages defined in come out at the top
level namespace like:
> {noformat}
> TApplicationException          0.010000  J/JK/JKING/thrift/Thrift-0.10.0.tar.gz
> TMessageType                   0.010000  J/JK/JKING/thrift/Thrift-0.10.0.tar.gz
> TType                          0.010000  J/JK/JKING/thrift/Thrift-0.10.0.tar.gz
> {noformat}
> So technically if you do 'install TApplicationException' I would expect you might get
thrift.  This is wrong and should be fixed.  TApplicationException needs to be inside Thrift,
not at the top level.
> Also we should pull in relevant changes from the patch in THRIFT-4059 around improving
> Also we should actually use TProtocolException and TTransportException instead of just
TException everywhere.

This message was sent by Atlassian JIRA

View raw message