From: Austin Ziegler Date: 2005-08-30T03:10:50+09:00 Subject: Re: Best way to release mini-libraries? On 8/29/05, Kirk Haines wrote: > On Monday 29 August 2005 8:41 am, Austin Ziegler wrote: >> I would do the latter. That's more or less what I've done with both >> Ruwiki and PDF::Writer as I've added mini-libs there, until those >> libs grow up enough to demand their own space (which, so far, none of >> them have ;). > Okay, now, a related question. > > I'm a bit paranoid about namespace pollution. So, everything that > goes into IOWA is in an Iowa:: namespace. So, the database connection > pool is Iowa::DbPool. The web cache class is Iowa::Webcache and the > LRU class that it uses is Iowa::LRUCache. And so on. > Does anyone see any problem with keeping these in that Iowa:: > namespace when released as standalone libraries? Keeping, for > example, the webcache, under Iowa:: makes sure that it won't butt > heads with someone else's web cache. Just calling it 'class Webcache', > though, would. > > Or should it be released as nothing more than a class file without any > installer, leaving it up to the user to make sure it doesn't butt > heads with something else? Anyone out there who might use this who > has an opinion? That's a bit of a good question, and I'm not the *best* person to ask, as I have claimed a couple of high-level namespaces ;) The simple answer is "it depends." * With MIME::Types, I basically claimed MIME::Type and MIME::Types and forced ::MIME to be a module if anyone uses it. (But that's not a subproject. However, if I ever *do* get around to doing the libmagic stuff, it'll probably be MIME::Magic.) * With Diff::LCS, I forced Diff to be a module, but chose to be more specific. * I went further with Archive::Tar::Minitar (obviously). * PDF::Writer is perhaps the biggest claim, and it's not going to get much better unless I come up with a cool project name to replace it. I will be releasing PDF::Core, PDF::Writer, and PDF::Reader, all. I have several utility items (PDF::Charts::*, PDF::SimpleTable, etc.) that have sort of claimed space. * color-tools has claimed the entire Color namespace (which, frankly, I don't mind ;), but makes it a bit harder for others to use ::Color as anything other than a module, and I "own" Color::RGB and Color::CMYK and others as a result of it. I can't see having done any of these any other way, though, since although color-tools was originally made to support PDF::Writer, I want it to be the premier colour conversion and management library in the Ruby world. On the other hand, I'm working on a different library (also an offshoot of PDF::Writer) that I've chosen an entirely different name for (and even that may change if someone takes the name I've chosen or I find a better one). -austin -- Austin Ziegler * halostatue@gmail.com * Alternate: austin@halostatue.ca