[R-pkg-devel] CRAN student assistants

Jim Hester j@me@@|@he@ter @end|ng |rom gm@||@com
Wed May 15 15:41:19 CEST 2019

I agree that `message()` is in an ideally preferred, precisely because
of the reasons Martin stated, it is easily controlled by the user.

Unfortunately, in the real world, the windows R gui console and
RStudio (which copied behavior) color messages, and anything on stderr
in fact, in red, which confuses most users who are trained to treat
messages in red as errors.

This also makes using colored output (where available) more
challenging when using `message()`.  You either have to accept the
text as red, or unconditionally change the text color to black or
similar, which can then be unreadable if the user is using a dark
color theme.

Jenny is an experienced package developer. She knew this tradeoff and
the use of `cat()` in gargle was deliberate choice in an imperfect
world. She did not make this decision out of ignorance of a better

However there is no way for Jenny or any other package developers to
have a dialog during a CRAN submission, the communication is only in
one direction, if she resubmits explaining her rationale for the
choice she may not even have the same reviewer the next time.

Bioconductor seems to have a much better review process for
submissions, with real dialog between the reviewer and package author,
perhaps CRAN can learn from that process and improve the submission
experience in the future.


On Wed, May 15, 2019 at 7:41 AM Martin Morgan <mtmorgan.bioc using gmail.com> wrote:
> message() / warning() / stop() write to stderr whereas print() / cat() write (by default) to stdout. Even without being able to suppress messages, it is well-established practice (the story is that this is the reason why 'stderr' was introduced into unix, https://www.jstorimer.com/blogs/workingwithcode/7766119-when-to-use-stderr-instead-of-stdout ) to separate diagnostic messages from program output. I agree that gargle (in particular, and packages in general, given the theme of this mailing list) would be a better package if it used message() where it now uses cat().
> Martin
> On 5/15/19, 5:04 AM, "R-package-devel on behalf of Joris Meys" <r-package-devel-bounces using r-project.org on behalf of Joris.Meys using ugent.be> wrote:
>     2) Where cat() is used in gargle, message() is a better option for the
>     following reason:
>     > myfun <- function(){cat("Yes");message("No")}
>     > suppressMessages(myfun())
>     Yes
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel

More information about the R-package-devel mailing list