[ 
https://issues.apache.org/jira/browse/THRIFT-4069?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King, III resolved THRIFT-4069.
----------------------------------------
       Resolution: Fixed
    Fix Version/s: 0.11.0

> All perl packages should have proper namespace, version syntax, and use 
> proper thrift exceptions
> ------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-4069
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4069
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Perl - Compiler, Perl - Library
>    Affects Versions: 0.10.0
>         Environment: Perl
>            Reporter: James E. King, III
>            Assignee: James E. King, III
>             Fix For: 0.11.0
>
>
> 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 
> http://search.cpan.org/~jpeacock/version-0.9917/lib/version.pod 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 
> http://perldoc.perl.org/functions/package.html.
> 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 http://www.cpan.org/modules/02packages.details.txt 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 Thrift.pm 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 packaging.
> Also we should actually use TProtocolException and TTransportException 
> instead of just TException everywhere.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to