Rev 4562 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{bug.report}\title{Send a bug report}\usage{bug.report(subject="", ccaddress=getenv("USER"),method=.Options$mailer, address="r-bugs@biostat.ku.dk",file="R.bug.report")}\alias{bug.report}\arguments{\item{subject}{Subject of the email}\item{ccaddress}{Optional email address for copies (default iscurrent user). Use \code{ccaddress=FALSE} for no copies.}\item{method}{Submission method.}\item{address}{Recipient's email address.}\item{method}{Submission method, one of "mailx", "gnuclient", "none"or "ess".}\item{address}{Recipient's email address.}\item{file}{File to use for setting up the email (or storing it whenmethod is \code{"none"} or sending mail fails).}}\description{Invokes an editor to write a bug report and optionally mail it tothe R-bugs list at \code{r-bugs@biostat.ku.dk}. Some standardinformation on the current version and configuration of R areincluded automatically.}\details{Currently direct submission of bug reports works only on unixsystems. If the submission method is \code{"mailx"}, then thedefault editor is used to write the bug report which is then mailedusing a unix command line mail utility such as \code{mailx}. A copyof the mail is sent to current user.If method is \code{"gnuclient"}, then an emacs mail buffer is openedand used for sending the email.If method is \code{"none"} or \code{NULL} (which is the default onWindows systems), then only an editor is opened to help writing thebug report. The report can then be copied to your favorite emailprogram and be sent to the R-bugs list.If method is \code{"ess"} the body of the mail is simply sent tostdout.}\value{nothing useful}\section{When is there a bug?}{If R executes an illegal instruction, or dies with an operatingsystem error message that indicates a problem in the program (asopposed to something like "disk full"), then it is certainly a bug.Taking forever to complete a command can be a bug, but you mustmake certain that it was really R's fault. Some commands simply takea long time. If the input was such that you KNOW it should have beenprocessed quickly, report a bug. If you don't know whether thecommand should take a long time, find out by looking in the manual orby asking for assistance.If a command you are familiar with causes an R error message in acase where its usual definition ought to be reasonable, it is probably abug. If a command does the wrong thing, that is a bug. But be sure youknow for certain what it ought to have done. If you aren't familiarwith the command, or don't know for certain how the command is supposedto work, then it might actually be working right. Rather than jumpingto conclusions, show the problem to someone who knows for certain.Finally, a command's intended definition may not be best forstatistical analysis. This is a very important sort of problem, butit is also a matter of judgment. Also, it is easy to come to such aconclusion out of ignorance of some of the existing features. It isprobably best not to complain about such a problem until you havechecked the documentation in the usual ways, feel confident that youunderstand it, and know for certain that what you want is notavailable. If you are not sure what the command is supposed to doafter a careful reading of the manual this indicates a bug in themanual. The manual's job is to make everything clear. It is just asimportant to report documentation bugs as program bugs. However, we knowthat the introductory documentation is seriously inadequate, so you don'tneed to report this.If the online argument list of a function disagrees with themanual, one of them must be wrong, so report the bug.}\section{How to report a bug}{When you decide that there is a bug, it is important to report it andto report it in a way which is useful. What is most useful is an exactdescription of what commands you type, from when you start R until theproblem happens. Always include the version of R, machine, andoperating system that you are using; type `version' in R to print this.The most important principle in reporting a bug is to report FACTS,not hypotheses or categorizations. It is always easier to report thefacts, but people seem to prefer to strain to posit explanations andreport them instead. If the explanations are based on guesses abouthow R is implemented, they will be useless; we will have to try tofigure out what the facts must have been to lead to such speculations.Sometimes this is impossible. But in any case, it is unnecessary workfor us.For example, suppose that on a data set which you know to be quite largethe commmand\code{data.frame(x,y,z,monday,tuesday)}never returns. Do not report that \code{data.frame()} fails for large data sets.Perhaps it fails when a variable name is a day of the week. If this is sothen when we got your report we would try out the \code{data.frame()} command ona large data set, probably with no day of the week variable name, and notsee any problem. There is no way in the world that we could guess that weshould try a day of the week variable name.Or perhaps the command fails because the last command you used was a \code{[}method that had a bug causing R's internal data structures to becorrupted and making the \code{data.frame()} command fail from then on. This iswhy we need to know what other commands you have typed (or read from yourstartup file).It is very useful to try and find simple examples that produce apparentlythe same bug, and somewhat useful to find simple examples that might beexpected to produce the bug but actually do not. If you want to debug theproblem and find exactly what caused it, that is wonderful. You shouldstill report the facts as well as any explanations or solutions.Invoking R with the \code{--vanilla} option may help in isolating a bug. Thisensures that the site profile and saved data files are not read.On some systems a bug report can be generated using the \code{bug.report()}function. This automatically includes the version information and sendsthe bug to the correct address. Alternatively the bug report can beemailed to \code{r-bugs@biostat.ku.dk} or submitted to the Web page at\url{http://r-bugs.biostat.ku.dk/R}}\seealso{R FAQ}\author{This help page is adapted from the Emacs manual}\keyword{utilities}\keyword{error}