[
https://issues.apache.org/jira/browse/THRIFT-4069?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15949836#comment-15949836
]
ASF GitHub Bot commented on THRIFT-4069:
----------------------------------------
Github user asfgit closed the pull request at:
https://github.com/apache/thrift/pull/1220
> 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)