[ 
https://issues.apache.org/jira/browse/THRIFT-4069?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15942138#comment-15942138
 ] 

ASF GitHub Bot commented on THRIFT-4069:
----------------------------------------

GitHub user jeking3 opened a pull request:

    https://github.com/apache/thrift/pull/1220

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

    

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

    $ git pull https://github.com/jeking3/thrift THRIFT-4069

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

    https://github.com/apache/thrift/pull/1220.patch

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 <jim.k...@simplivity.com>
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: https://issues.apache.org/jira/browse/THRIFT-4069
>             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 
> 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