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.