From ggrothendieck at gmail.com  Wed Jun  8 06:27:04 2005
From: ggrothendieck at gmail.com (Gabor Grothendieck)
Date: Wed Jun  8 06:27:15 2005
Subject: [Rd] Suggestion: help(<package name>)
In-Reply-To: <39B6DDB9048D0F4DAD42CB26AAFF0AFA64E959@usctmx1106.merck.com>
References: <39B6DDB9048D0F4DAD42CB26AAFF0AFA64E959@usctmx1106.merck.com>
Message-ID: <971536df050607212761b87b6b@mail.gmail.com>

My understanding is that one could still build, install and distribute
a package that did not conform to this requirement but it would
fail R CMD CHECK.  Thus as long as you don't want to place it
in a repository that requires a clean R CMD CHECK you are
under no obligation to do it.  But if you do want to use CRAN or
other repository that enforces quality via R CMD CHECK then
the package must meet that quality and so
to that extent would this would be a requirement.

Perhaps this could even be expanded into quality levels.  In a sense this
is already the case as the level can be regarded as
whether the package:

- fails R CMD CHECK
- passes R CMD CHECK but with warnings
- fully passes R CMD CHECK

as shownn in the check summary:
   http://probability.ca/cran/src/contrib/checkSummary.html

An additional level could be added for those packages possessing 
a vignette (where the horizontal line is the threshold for CRAN
admission) but the quality would be published on the web as it
is now:

- fails R CMD check
-------------------------------------
- passes it with warnings
- fully passes it
- fully passes it and has a vignette

Personally I think Duncan's proposal is an excellent idea and
that the quality of packages should be driven and enforced
by the needs of the users. This makes it easier to use packages 
for users and though it requires extra work from the developers
it is not onerous.

On 6/7/05, Liaw, Andy <andy_liaw@merck.com> wrote:
> Let me add to the pot:
> 
> I think Robert and Brian are against imposing additional _requirement_ on
> packages to provide an overview in .Rd, and I tend to agree with that
> sentiment.
> 
> However, if such a facility is made optional (like vignettes) for package
> author/maintainer, then I have no problem with it.  Perhaps it can work like
> the CITATION file:  The package author/maintainer can choose to (or not to)
> use it.  If one is not provided in the package source, then something
> halfway sensible is auto-generated from various files (or perhaps just runs
> help(package="<pkg>").
> 
> Or perhaps yet another function can be added to the `utils' package, like
> packageOverview(), which can either:
> - open an overview vignette if one is provided
> - open the overview .Rd in whatever format the default help is in
> - run help(package="<pkg>") if neither is available
> 
> Just my $0.02...
> 
> Andy
> 
> > From: Duncan Murdoch
> >
> > Prof Brian Ripley wrote:
> > > I share Robert's `pretty strenuous' objections.
> > >
> > > Adding compulsory things for package writers seems to me to
> > need very
> > > compelling arguments.  Checking that a package does what it
> > says (e.g. the
> > > code in vignettes can be run) is one thing, but checking it
> > does things it
> > > does not say it wants to do is quite another.
> >
> > I don't understand your complaint. Could you explain what you
> > meant by
> > "checking it does things it does not say it wants to do"?
> >
> > My proposal (modified following the suggestions I've heard so
> > far) is as
> > follows:
> >
> >   - to check that a couple of help topic aliases exist (<pkg>.package
> > and <pkg>)
> >   - to recommend that <pkg>.package contain general information about
> > the package, and that <pkg> be an alias for it, if it isn't used for
> > some other purpose.
> >   - to write promptPackage() to help create an initial version of
> > <pkg>.package.Rd.  It can get some information from the DESCRIPTION
> > file; perhaps it could go looking for a vignette, or the INDEX, or
> >   - to modify the other help system tools to make use of this
> > (e.g. the
> > package:<pkg> heading on a page would become a link to the
> > <pkg>.package
> > alias, etc.)
> >
> > None of these things are very much work, and I'd be happy to
> > do them and
> > document them.  The thing that will be more work is to write the
> > <pkg>.package.Rd files for every package. (I'd do it for the base
> > packages; they'd be short.)  It won't be a huge amount of
> > work for any
> > one package (many of them already have the basic content in various
> > places, so for those it's mostly a matter of reformatting),
> > but in total
> > it will be a lot.
> >
> > I think the benefit of this will be that the help for a package will
> > show up in a standard location, using the standard method for looking
> > for it.  This is not a huge benefit for any users who already
> > know all
> > about the current ways help can be given, but I think it
> > would be a real
> > benefit for users who aren't so familiar with things.   It
> > would help to
> > unify the help system:  everyone knows about ?topic, so providing a
> > standard way for that to lead into all the rest of the documentation
> > seems obviously beneficial to me.
> >
> > Making this optional would weaken it quite a bit.  Packages couldn't
> > give links to the main page in other packages if they weren't
> > guaranteed
> >   to exist; producing the HTML would be more difficult if
> > links worked
> > sometimes and didn't work other times, etc.
> >
> > Robert Gentleman wrote:
> > >   Let's see, some of us (three years ago) developed a tool
> > to solve this
> > > problem.
> >
> > Do you mean vignettes?  I think they solved a different
> > problem.  They
> > provided a way to give good general documentation for a package, but
> > they didn't provide a way to get to it through the help system.  They
> > aren't used for general introductory help for any of the standard
> > packages except grid and Matrix, and they use different naming
> > conventions in those two.
> >
> > > We made it available to others to use as they saw fit. I feel
> > > no less strong than you do, but I certainly did not impose what I
> > > thought on you and I ask for the same respect.
> >
> > R imposes lots of things on me.  I have to document every
> > function, and
> > I have to get the usage section right.  These take work, but
> > they make
> > packages more useful.  I think imposing one more help topic on the
> > package is in the same character.  I'm really surprised that
> > you find it
> > so objectionable.  It's really not much work!
> >
> >  > We have already solved
> > > this problem in our own way. You now seem to think that it
> > is zero cost
> > > to impose on us a second (and in my view inferior solution).
> >
> > I have no idea where you got the impression that I think this is zero
> > cost.  I think it's low cost per package, but obviously not zero.
> >
> >  > I am asking
> > > that you not do that. Please, feel free to develop what you
> > want and to
> > > encourage others to use it, but don't try to make people do
> > things just
> > > because you want them that way.
> > >   We have lots of packages in BioC the costs of
> > reengineering so we can
> > > meet your newly imposed standards are not zero.
> >
> > I'd put the cost of the proposal to the package writer at
> > about the cost
> > of documenting one function.  I wouldn't call it
> > "reengineering".  It's
> > an addition, not a major change.
> >
> >  > I think we have an
> > > expectation that such capricious behaviour will not be
> > entered in to,
> > > and if we don't then perhaps it is time to branch the project.
> >
> > To tell you the truth, I wouldn't consider branching over this issue.
> > I'd prefer some rational discussion about the proposal.  I
> > really don't
> > understand why you think it's such a disastrous one that you couldn't
> > possibly live with it and would want to do all your work on a
> > different
> > branch.
> >
> > Here are the kinds of question I'd like to discuss:
> >
> > 1. Could you tell me what you think would be involved in
> > "reengineering"?  Maybe you have misunderstood the proposal, or I've
> > missed something.  How much time do you think this would take?
> >
> > 2. What is the current algorithm people should use to look
> > for help on
> > foo?  Couldn't we make it simpler?  I'd like it if the algorithm was
> > "type ?foo, and read what you get", regardless of what foo is.  The
> > proposal above doesn't achieve that, but it gets closer.
> >
> > Duncan Murdoch
> >
> > ______________________________________________
> > R-devel@stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
> >
> >
> >
> 
> ______________________________________________
> R-devel@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>


[Rd] Suggestion: help(<package name>)
Gabor Grothendieck