[Rd] Control statements with condition with greater than one should give error (not just warning) [PATCH]

Gabriel Becker gmbecker at ucdavis.edu
Tue Mar 7 20:57:13 CET 2017


I'm just throwing this out there, but maybe CRAN (or some other testing
machinery) should get a "strict testing" build of R in which
suppressWarnings is reassigned to identity...

Or maybe suppressWarnings could check for, eg an environment variable and
turn itself into a no-op when present, so that build systems could be used
to test for this.

~G

On Tue, Mar 7, 2017 at 11:45 AM, Karl Millar via R-devel <
r-devel at r-project.org> wrote:

> Is there anything that actually requires R core members to manually do
> significant amounts of work here?
>
> IIUC, you can do a CRAN run to detect the broken packages, and a simple
> script can collect the emails of the affected maintainers, so you can send
> a single email to them all.  If authors don't respond by fixing their
> packages, then those packages should be archived, since there's high
> probability of those packages being buggy anyway.
>
> If you expect a non-trivial amount of questions regarding this change from
> the affected package maintainers, then you can create a FAQ page for it,
> which you can fill in as questions arrive, so you don't get too many
> duplicated questions.
>
> Karl
>
> On Mon, Mar 6, 2017 at 4:51 AM, Martin Maechler <
> maechler at stat.math.ethz.ch>
> wrote:
>
> > >>>>> Michael Lawrence <lawrence.michael at gene.com>
> > >>>>>     on Sat, 4 Mar 2017 12:20:45 -0800 writes:
> >
> >     > Is there really a need for these complications? Packages
> >     > emitting this warning are broken by definition and should be fixed.
> >
> > I agree and probably Henrik, too.
> >
> > (Others may disagree to some extent .. and find it convenient
> >  that R does translate 'if(x)'  to  'if(x[1])'  for them albeit
> >  with a warning .. )
> >
> >     > Perhaps we could "flip the switch" in a test
> >     > environment and see how much havoc is wreaked and whether
> >     > authors are sufficiently responsive?
> >
> >     > Michael
> >
> > As we have > 10'000 packages on CRAN alonce,  and people have
> > started (mis)using suppressWarnings(.) in many places,  there
> > may be considerably more packages affected than we optimistically
> assume...
> >
> > As R core member who would  "flip the switch"  I'd typically then
> > have to be the one sending an e-mail to all package maintainers
> > affected.... and in this case I'm very reluctant to volunteer
> > for that and so, I'd prefer the environment variable where R
> > core and others can decide how to use it .. for a while .. until
> > the flip is switched for all.
> >
> > or have I overlooked an issue?
> >
> > Martin
> >
> >     > On Sat, Mar 4, 2017 at 12:04 PM, Martin Maechler
> >     > <maechler at stat.math.ethz.ch
> >     >> wrote:
> >
> >     >> >>>>> Henrik Bengtsson <henrik.bengtsson at gmail.com> >>>>>
> >     >> on Fri, 3 Mar 2017 10:10:53 -0800 writes:
> >     >>
> >     >> > On Fri, Mar 3, 2017 at 9:55 AM, Hadley Wickham >
> >     >> <h.wickham at gmail.com> wrote: >>> But, how you propose a
> >     >> warning-to-error transition >>> should be made without
> >     >> wreaking havoc?  Just flip the >>> switch in R-devel and
> >     >> see CRAN and Bioconductor packages >>> break overnight?
> >     >> Particularly Bioconductor devel might >>> become
> >     >> non-functional (since at times it requires >>> R-devel).
> >     >> For my own code / packages, I would be able >>> to handle
> >     >> such a change, but I'm completely out of >>> control if
> >     >> one of the package I'm depending on does not >>> provide
> >     >> a quick fix (with the only option to remove >>> package
> >     >> tests for those dependencies).
> >     >> >>
> >     >> >> Generally, a package can not be on CRAN if it has any
> >     >> >> warnings, so I don't think this change would have any
> >     >> >> impact on CRAN packages.  Isn't this also true for >>
> >     >> bioconductor?
> >     >>
> >     >> > Having a tests/warn.R file with:
> >     >>
> >     >> > warning("boom")
> >     >>
> >     >> > passes through R CMD check --as-cran unnoticed.
> >     >>
> >     >> Yes, indeed.. you are right Henrik that many/most R
> >     >> warning()s would not produce R CMD check 'WARNING's ..
> >     >>
> >     >> I think Hadley and I fell into the same mental pit of
> >     >> concluding that such warning()s from
> >     >> if(<length-larger-one>) ...  would not currently happen
> >     >> in CRAN / Bioc packages and hence turning them to errors
> >     >> would not have a direct effect.
> >     >>
> >     >> With your 2nd e-mail of saying that you'd propose such an
> >     >> option only for a few releases of R you've indeed
> >     >> clarified your intent to me.  OTOH, I would prefer using
> >     >> an environment variable (as you've proposed as an
> >     >> alternative) which is turned "active" at the beginning
> >     >> only manually or for the "CRAN incoming" checks of the
> >     >> CRAN team (and bioconductor submission checks?)  and
> >     >> later for '--as-cran' etc until it eventually becomes the
> >     >> unconditional behavior of R (and the env.variable is no
> >     >> longer used).
> >     >>
> >     >> Martin
> >     >>
> >     >> ______________________________________________
> >     >> R-devel at r-project.org mailing list
> >     >> https://stat.ethz.ch/mailman/listinfo/r-devel
> >     >>
> >
> >     >   [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-devel at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
> >
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



-- 
Gabriel Becker, PhD
Associate Scientist (Bioinformatics)
Genentech Research

	[[alternative HTML version deleted]]



More information about the R-devel mailing list