On Thu, Sep 08, 2016 at 09:24:12PM +0100, Neil Bowers wrote:
> Hi Sherzod,
> 
> I’m one of the PAUSE admins. I’m emailing you because I’m working on 
> resolving conflicts caused by PAUSE now considering package names case 
> insensitively. This has left us with some situations where two or more people 
> are owners of namespaces previously considered distinct, and now considered 
> the same.
> 
> Your Class-PObject defines packages VARCHAR, CHAR, INTEGER, TEXT, ENCRYPT, 
> and MD5. These are classes defined in Class::PObject::Template, just as 
> subclasses of the relevant Class::PObject::Type::<type> class. In general, a 
> distribution should keep package names within its own namespace. But beyond 
> that, your permissions on the TEXT package clashes with AKHOBOV’s ownership 
> of the “Text” package.
> 
> There are several ways to resolve this:
> 
>   1. You could tell PAUSE not to index these special classes, since they’re 
> only used in PObject/Template.pm
>   2. You could change the code in Template.pm to directly use the 
> Class::PObject::Type::<typename> classes

The easy way to do 2:

  use aliased 'Class::Object::Type::VARCHAR';
  use aliased 'Class::Object::Type::CHAR';
  ...

which will export constants for VARCHAR(), CHAR() etc. (this is how
JSON::MaybeXS provides JSON->new btw).

Or you could automate generation of said constants with 'use constant'.

Or whatever.

-- 
Matt S Trout - Shadowcat Systems - Perl consulting with a commit bit and a clue

http://shadowcat.co.uk/blog/matt-s-trout/   http://twitter.com/shadowcat_mst/

Email me now on mst (at) shadowcat.co.uk and let's chat about how our CPAN
commercial support, training and consultancy packages could help your team.

Reply via email to