> -----Original Message----- > From: Roebuck,Paul L [mailto:proeb...@mdanderson.org] > Sent: Thursday, April 12, 2012 1:03 PM > To: R-devel > Cc: Ken Williams > Subject: Re: [Rd] [patch] giving library() a 'version' argument > > On 4/12/12 10:11 AM, Ken Williams wrote: > > >> On 4/12/12 7:22 AM, Duncan Murdoch wrote: > > [SNIP] > > ... > > The main hats targeted here are really people (like me, of course) who > > are trying to "productionize" results, not so much people who are > > doing offline analysis. In a production system > > > >> But what if your script requires a particular (perhaps obsolete) > >> version of a package? This change only puts a lower bound on the > >> version number, and version requirements can be more elaborate than > >> that. > > > > Certainly true; this was meant as a first iteration, and support for > > the more elaborate requirements specifications could certainly be added. > > > > The more elaborate specs actually illustrate the need for a runtime > > mechanism nicely - if code X (which may be a package, or a script, it > > doesn't matter) requires exactly version 3.14 of package B, and > > someone in the production team upgrades version 3.14 to version 3.78 > > because "it's faster" or "it's less buggy" or "we just like to have > > the latest version of everything all the time", then someone needs to > > be alerted to the problem. One alternative solution would be to use a > > full-fledged package management system like RPM or Deb to track all the > dependencies, but yikes, that doesn't sound fun. > > I appreciate your contribution of both time and energy. > > But I think the existing library() method is sufficient without this > modification. > It's essentially syntactic sugar for: > > library(MASS); stopifnot(packageVersion("MASS") >= "7.3"))
I was about to write back & say "that's not correct, if '7.10' is installed, a string comparison will do the wrong thing." But apparently it does the *right* thing, because 'numeric_version' class implements the comparison operator. I'd still prefer to "Huffman-code it" to something shorter, to encourage people to use it, but I can see why others could consider it good enough. I could contribute a doc patch to the 'numeric_version' man page to make it clearer what's available. The 3 comparisons there happen to turn out the same way when done as a string comparison. I also do still have a question about what packageVersion() does when a package is already loaded - does it go look for it again, or does it check the version of what's already loaded? A doc patch could help here too. -Ken CONFIDENTIALITY NOTICE: This e-mail message is for the s...{{dropped:7}} ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel