You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "James E. King, III (JIRA)" <ji...@apache.org> on 2017/03/22 20:23:41 UTC
[jira] [Updated] (THRIFT-4069) Perl packages should be in
individual files and have proper version syntax
[ https://issues.apache.org/jira/browse/THRIFT-4069?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
James E. King, III updated THRIFT-4069:
---------------------------------------
Description:
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.
was:
Currently our perl package module files contain multiple packages. We should break each package out to an individual file 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.
> Perl packages should be in individual files and have proper 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.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)