Re: [Rd] How to add a welcome message in Package development?

From: William Dunlap <wdunlap_at_tibco.com>
Date: Fri, 10 Jun 2011 12:40:51 -0700

I agree with Simon that package startup messages are often annoying and not often helpful. However, I think they should be generated with

   packageStartupMessage("your message") instead of

   cat("your message\n")
The former may be suppressed by wrapping the call to library() with suppressPackageStartupMessages(), just as messages generated by message("your message") may be suppressed with suppressMessages().

You can suppress cat()'s output with capture.output() but you may throw out things that should be seen.

E.g., if a package with a NAMESPACE file contains the following .onXXX functions
  % more testPkgWithNamespace/R/zzz.R
  .onAttach <- function(...) {

      cat("message from .onAttach via cat\n")
      message("message from .onAttach via message")
      packageStartupMessage("message from .onAttach via
packageStartupMessage\n")
  }
  .onLoad <- function(...) {
      cat("message from .onLoad via cat\n")
      message("message from .onLoad via message")
      packageStartupMessage("message from .onLoad via
packageStartupMessage\n")
  }
we get:
  > library(testPkgWithNamespace, lib.loc="Rlib")
  message from .onLoad via cat
  message from .onLoad via message
  message from .onLoad via packageStartupMessage
  message from .onAttach via cat
  message from .onAttach via message
  message from .onAttach via packageStartupMessage
  >

  > detach("package:testPkgWithNamespace", unload=TRUE)   > suppressMessages(library(testPkgWithNamespace, lib.loc="Rlib"))   message from .onLoad via cat
  message from .onAttach via cat
  >
  > detach("package:testPkgWithNamespace", unload=TRUE)
  > suppressPackageStartupMessages(library(testPkgWithNamespace,
lib.loc="Rlib"))
  message from .onLoad via cat
  message from .onLoad via message
  message from .onAttach via cat
  message from .onAttach via message

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com

> -----Original Message-----
> From: r-devel-bounces_at_r-project.org
> [mailto:r-devel-bounces@r-project.org] On Behalf Of Simon Urbanek
> Sent: Friday, June 10, 2011 12:10 PM
> To: Nipesh Bajaj
> Cc: r-devel_at_r-project.org
> Subject: Re: [Rd] How to add a welcome message in Package development?
>
>
> On Jun 10, 2011, at 2:54 PM, Nipesh Bajaj wrote:
>
> > Dear all, it is my first post in R-devel list, and hope that this is
> > the right place to ask question related to package development.
> >
> > I have created my first package in Windows through the usual route.
> > Now I want to add some ***Welcome message*** as soon as
> user loads my
> > package into their R console, using library() function. However I
> > could not figure out where and how should I add this
> functionality in
> > entire package development procedure, and the "Writing R Exts"
> > document also seem to be mum on this issue.
> >
>
> Personally, I find "welcome messages" extremely annoying,
> because if you load a dependency chain of 20 packages and
> each has something silly to say, you get pages of completely
> useless output (since you can't read all of them anyway) that
> tend to interfere with automated scripts. Also anything
> people tend to say in those is pertinent only once (when the
> user first sees the message) so the message is pointless most
> of the time that it's shown. But that's just my opinion.
>
> That said, you can simply use cat() in .First.lib (if your
> packages has no namespace) or .onAttach or .onLoad (if your
> packages has a namespace).
>
> Cheers,
> Simon
>
>
> > Can somebody help me how to add this functionality in the
> development
> > route of package. I believe this is possible as in many existing
> > packages that functionality is present.
> >
> > Thanks,
> >
> > ______________________________________________
> > R-devel_at_r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
> >
> >
>
> ______________________________________________
> R-devel_at_r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Fri 10 Jun 2011 - 19:43:19 GMT

This quarter's messages: by month, or sorted: [ by date ] [ by thread ] [ by subject ] [ by author ]

All messages

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 10 Jun 2011 - 20:20:18 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive