Re: [R-pkg-devel] help fixing CRAN package sos-now fails on GitHub

2023-05-23 Thread Spencer Graves




On 5/22/23 2:38 PM, Duncan Murdoch wrote:

On 22/05/2023 3:07 p.m., Ivan Krylov wrote:

I fed your vignette to R CMD Sweave, and here's the relevant fragment
from the resulting *.tex file:


This returned a {\tt "findFn"} object identifying 405 help pages.
When this was run while preparing this manuscript, the sixth row was
{\tt pspline_checker} in the \pkg{JOPS} package, which has a {\tt
Score} of 47. (On another day, the results could be different,
because CRAN changes over time.)  This was the sixth row in this
table, because it is in the \pkg{JOPS} package, which had a total of
54 help pages matching the search term, but this was the only one
whose name matched the {\tt pattern} passed to {\tt grepFn}.


This corresponds to the following part of the vignette:


This returned a {\tt "findFn"} object identifying \Sexpr{nrow(g)}
help pages.
When this was
run while preparing this manuscript, the sixth row was
{\tt \Sexpr{gFunc6}} in the
\pkg{\Sexpr{gPac6}} package, which has a {\tt Score} of
\Sexpr{gScore6}.


So, you need to escape the underscores in gFunc6. Probably not gPac6
because underscores are not allowed in package names.



Nice find.  Just in case Spencer has trouble with escaping the escapes, 
I think he should change


   "{\tt \Sexpr{gFunc6}}"

to

   "{\tt \Sexpr{sub("_", "_", gFunc6)}}



CLOSE:  That didn't work, but the following did:


{\tt \Sexpr{gsub("_", "_", gFunc6)}}



Even better would be to write a little function "sanitizeForLatex" that 
did this and any other necessary changes, and call that.



	  That would doubtless be better, but I don't know enough to do that, 
and the above worked.



	  Thanks very much to Duncan, Ivan, Vincent and Uwe, who contributed to 
this thread and the resolution of this problem.



  Spencer Graves



Duncan Murdoch


__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


Re: [R-pkg-devel] help fixing CRAN package sos-now fails on GitHub

2023-05-23 Thread Duncan Murdoch

On 23/05/2023 6:53 a.m., Martin Maechler wrote:

Duncan Murdoch
 on Mon, 22 May 2023 15:38:10 -0400 writes:


 > On 22/05/2023 3:07 p.m., Ivan Krylov wrote:
 >> I fed your vignette to R CMD Sweave, and here's the
 >> relevant fragment from the resulting *.tex file:
 >>
 >>> This returned a {\tt "findFn"} object identifying 405
 >>> help pages.  When this was run while preparing this
 >>> manuscript, the sixth row was {\tt pspline_checker} in
 >>> the \pkg{JOPS} package, which has a {\tt Score} of
 >>> 47. (On another day, the results could be different,
 >>> because CRAN changes over time.)  This was the sixth row
 >>> in this table, because it is in the \pkg{JOPS} package,
 >>> which had a total of 54 help pages matching the search
 >>> term, but this was the only one whose name matched the
 >>> {\tt pattern} passed to {\tt grepFn}.
 >>
 >> This corresponds to the following part of the vignette:
 >>
 >>> This returned a {\tt "findFn"} object identifying
 >>> \Sexpr{nrow(g)} help pages.  When this was run while
 >>> preparing this manuscript, the sixth row was {\tt
 >>> \Sexpr{gFunc6}} in the \pkg{\Sexpr{gPac6}} package,
 >>> which has a {\tt Score} of \Sexpr{gScore6}.
 >>
 >> So, you need to escape the underscores in
 >> gFunc6. Probably not gPac6 because underscores are not
 >> allowed in package names.
 >>

 > Nice find.  Just in case Spencer has trouble with escaping
 > the escapes, I think he should change

 >"{\tt \Sexpr{gFunc6}}"

 > to

 >"{\tt \Sexpr{sub("_", "_", gFunc6)}}

 > Even better would be to write a little function
 > "sanitizeForLatex" that did this and any other necessary
 > changes, and call that.

Yes, indeed (2 x).

If I grep the base R package sources, I find three occurrences
of something like the above:

grep --color -nH --null -e 'sub *(.*_' */R/*.R

  tools/R/Rd2latex.R:295:x <- fsub("\\_", "_", x)
  tools/R/Rd2latex.R:303:x <- fsub("\\_", ".Rul.", x)
  tools/R/Rd.R:681:txt <- gsub("\\_", "_", txt, fixed=TRUE)

all of which do the transformation in the other direction
(because *.Rd in those cases already *is* LaTeX-alike, and needs
  to convert for non-LaTeX use).

Note that the last one gives a hint to be more general --- gsub()
also working a.g. for 'parse_me_not' ---
*and* possibly faster (fixed=TRUE)  leading to

  "{\tt \Sexpr{gsub("_", "_", gFunc6, fixed=TRUE)}}

Martin


Yes, a good idea to use gsub and fixed = TRUE.

There are some changes in the other direction as well in that file (Rd 
format is very complicated).  I think the characters it handles are \, 
&, $, %, _, #, {, }, ^, ~, occurring near line 145.  Only _ is allowed 
in a "syntactic" name, but others might turn up when trying to display 
other code.


Duncan

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


Re: [R-pkg-devel] help fixing CRAN package sos-now fails on GitHub

2023-05-23 Thread Martin Maechler
> Duncan Murdoch 
> on Mon, 22 May 2023 15:38:10 -0400 writes:

> On 22/05/2023 3:07 p.m., Ivan Krylov wrote:
>> I fed your vignette to R CMD Sweave, and here's the
>> relevant fragment from the resulting *.tex file:
>> 
>>> This returned a {\tt "findFn"} object identifying 405
>>> help pages.  When this was run while preparing this
>>> manuscript, the sixth row was {\tt pspline_checker} in
>>> the \pkg{JOPS} package, which has a {\tt Score} of
>>> 47. (On another day, the results could be different,
>>> because CRAN changes over time.)  This was the sixth row
>>> in this table, because it is in the \pkg{JOPS} package,
>>> which had a total of 54 help pages matching the search
>>> term, but this was the only one whose name matched the
>>> {\tt pattern} passed to {\tt grepFn}.
>> 
>> This corresponds to the following part of the vignette:
>> 
>>> This returned a {\tt "findFn"} object identifying
>>> \Sexpr{nrow(g)} help pages.  When this was run while
>>> preparing this manuscript, the sixth row was {\tt
>>> \Sexpr{gFunc6}} in the \pkg{\Sexpr{gPac6}} package,
>>> which has a {\tt Score} of \Sexpr{gScore6}.
>> 
>> So, you need to escape the underscores in
>> gFunc6. Probably not gPac6 because underscores are not
>> allowed in package names.
>> 

> Nice find.  Just in case Spencer has trouble with escaping
> the escapes, I think he should change

>"{\tt \Sexpr{gFunc6}}"

> to

>"{\tt \Sexpr{sub("_", "_", gFunc6)}}

> Even better would be to write a little function
> "sanitizeForLatex" that did this and any other necessary
> changes, and call that.

Yes, indeed (2 x).

If I grep the base R package sources, I find three occurrences
of something like the above:

grep --color -nH --null -e 'sub *(.*_' */R/*.R

 tools/R/Rd2latex.R:295:x <- fsub("\\_", "_", x)
 tools/R/Rd2latex.R:303:x <- fsub("\\_", ".Rul.", x)
 tools/R/Rd.R:681:txt <- gsub("\\_", "_", txt, fixed=TRUE)

all of which do the transformation in the other direction
(because *.Rd in those cases already *is* LaTeX-alike, and needs
 to convert for non-LaTeX use).

Note that the last one gives a hint to be more general --- gsub()
also working a.g. for 'parse_me_not' ---
*and* possibly faster (fixed=TRUE)  leading to

 "{\tt \Sexpr{gsub("_", "_", gFunc6, fixed=TRUE)}}

Martin

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


Re: [R-pkg-devel] help fixing CRAN package sos-now fails on GitHub

2023-05-22 Thread Duncan Murdoch

On 22/05/2023 3:07 p.m., Ivan Krylov wrote:

I fed your vignette to R CMD Sweave, and here's the relevant fragment
from the resulting *.tex file:


This returned a {\tt "findFn"} object identifying 405 help pages.
When this was run while preparing this manuscript, the sixth row was
{\tt pspline_checker} in the \pkg{JOPS} package, which has a {\tt
Score} of 47. (On another day, the results could be different,
because CRAN changes over time.)  This was the sixth row in this
table, because it is in the \pkg{JOPS} package, which had a total of
54 help pages matching the search term, but this was the only one
whose name matched the {\tt pattern} passed to {\tt grepFn}.


This corresponds to the following part of the vignette:


This returned a {\tt "findFn"} object identifying \Sexpr{nrow(g)}
help pages.
When this was
run while preparing this manuscript, the sixth row was
{\tt \Sexpr{gFunc6}} in the
\pkg{\Sexpr{gPac6}} package, which has a {\tt Score} of
\Sexpr{gScore6}.


So, you need to escape the underscores in gFunc6. Probably not gPac6
because underscores are not allowed in package names.



Nice find.  Just in case Spencer has trouble with escaping the escapes, 
I think he should change


  "{\tt \Sexpr{gFunc6}}"

to

  "{\tt \Sexpr{sub("_", "_", gFunc6)}}

Even better would be to write a little function "sanitizeForLatex" that 
did this and any other necessary changes, and call that.


Duncan Murdoch

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


Re: [R-pkg-devel] help fixing CRAN package sos-now fails on GitHub

2023-05-22 Thread Ivan Krylov
I fed your vignette to R CMD Sweave, and here's the relevant fragment
from the resulting *.tex file:

> This returned a {\tt "findFn"} object identifying 405 help pages.
> When this was run while preparing this manuscript, the sixth row was
> {\tt pspline_checker} in the \pkg{JOPS} package, which has a {\tt
> Score} of 47. (On another day, the results could be different,
> because CRAN changes over time.)  This was the sixth row in this
> table, because it is in the \pkg{JOPS} package, which had a total of
> 54 help pages matching the search term, but this was the only one
> whose name matched the {\tt pattern} passed to {\tt grepFn}.

This corresponds to the following part of the vignette:

> This returned a {\tt "findFn"} object identifying \Sexpr{nrow(g)}
> help pages.
> When this was
> run while preparing this manuscript, the sixth row was
> {\tt \Sexpr{gFunc6}} in the
> \pkg{\Sexpr{gPac6}} package, which has a {\tt Score} of
> \Sexpr{gScore6}.

So, you need to escape the underscores in gFunc6. Probably not gPac6
because underscores are not allowed in package names.

-- 
Best regards,
Ivan

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


Re: [R-pkg-devel] help fixing CRAN package sos-now fails on GitHub

2023-05-22 Thread Vincent Dorie
A simple fix might be to redefine findFn in the global environment of the
vignette, have it explicitly call sos::findFn, and return a result
sanitized for LaTeX output. According to this:
https://stackoverflow.com/questions/32865384/function-to-sanitize-strings-for-latex-compilation
it looks like there are a couple of options for that.

On Mon, May 22, 2023 at 1:39 PM Spencer Graves <
spencer.gra...@effectivedefense.org> wrote:

> Hi, Uwe et al.:
>
>
>   The sos vignette sos.Rnw now fails on GitHub, complaining of a
> LaTeX
> error in "{\tt pspline_ checker}".  I don't find it in the code for
> sos.Rnw.  It may be triggered by a response to an internet search that's
> different from before.
>
>
> https://github.com/sbgraves237/sos
>
>
>   Uwe suggests I postprocess output with gsub("_", "_",
> output).
> It's not clear to me where I should apply this.  I am not eager to
> change the code in the package, because it could break something else
> that's currently working.
>
>
>   Suggestions?
>   Thanks
>   Spencer Graves
>
>
> On 5/16/23 7:41 AM, Uwe Ligges wrote:
> >
> >
> > On 16.05.2023 14:02, Spencer Graves wrote:
> >>
> >>
> >> On 5/16/23 6:06 AM, Uwe Ligges wrote:
> >>>
> >>>
> >>> On 16.05.2023 01:46, Spencer Graves wrote:
>  Hello, All:
> 
> 
> The sos package is failing some CRAN checks, complaining:[1]
> 
> 
>  LaTeX errors:
>  ! Missing $ inserted.
>  
>   $
>  l.303 {\tt pspline_
>  checker} in the
> >>>
> >>>
> >>> I can only guess this is part of the response you got from some sos
> >>> request? I cannot reproduce it currently.
> >>>
> >>> So check:
> >>> Does your package pass check if some function names including an
> >>> underscore in the name is returned from an sos request?
> >>
> >>
> >> Hi, Uwe et al.:
> >>
> >>
> >>Thanks, Uwe, for your reply.
> >>
> >>
> >>It's complaining about something in a vignette that has been
> >> part of the package since it appeared in The R Journal in Volume 1/2
> >> in 2009.  I received an email from Prof. Ripley complaining that it
> >> reported problems ("WARN") on some of the CRAN checks.  When I asked,
> >> Prof. Ripley reply's reply included:
> >>
> >>
> >>  >>  l.303 {\tt pspline_
> >>  >>   checker} in the
> >>  >>  ! ==> Fatal error occurred, no output PDF file produced!
> >>  >>
> >>  >> Underlines need to be escaped in LaTeX.  And as your results
> >> depend on
> >>  >> Internet downloads,
> >>  >>
> >>  >> "Packages which use Internet resources should fail gracefully with
> an
> >>  >> informative message if the resource is not available or has changed
> >>  >> (and not give a check warning nor error)."
> >>  >>
> >>  >> applies: you need to anticipate that the results might include
> >>  >> underlines.
> >>
> >>
> >>I don't know how to detect, let alone fix the "Underlines" that
> >> "need to be escaped in LaTeX."
> >
> > If you receive an output, postprocess it via
> >
> > gsub("_", "_", output)
> >
> >
> >
> >>
> >>
> >>Regarding the other issue that "Packages which use Internet
> >> resources should fail gracefully with an informative message if the
> >> resource is not available or has changed (and not give a check warning
> >> nor error)", I assume I should wrap in "try" all tests in *.Rd files
> >> that access the Internet and make sure that they don't fail "R CMD
> >> check" if the Internet is not available.
> >
> > Yes.
> >
> > Best,
> > Uwe Ligges
> >
> >
> >>
> >>Comments?
> >>Thanks again,
> >>Spencer Graves
> >>
> >>
> >> p.s.  Yesterday I remember I got "WARN" on three of six CRAN checks
> >> against r-devel on different platforms and NOTE on four of the seven
> >> other CRAN checks.  Today I see "WARN" on only two.  If I just wait,
> >> these "WARN" problems may go away by themselves.  However, Prof.
> >> Ripley gave me other problems to fix, and I want to support our kind,
> >> smart and generous English professor.
> >>
> >>>
> >>> Best,
> >>> Uwe Ligges
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
>  ! Emergency stop.
>  
>   $
>  l.303 {\tt pspline_
>  checker} in the
>  ! ==> Fatal error occurred, no output PDF file produced!
>  --- failed re-building 'sos.Rnw'
> 
> 
> I can NOT replicate these locally nor with GitHub action, and
>  I failed to find 'psp' in 'sos.Rnw'.[2]  This raises two issue:
> 
> 
>  OBVIOUS:  What can I do to fix this error, or at least to understand
>  it better?
> 
> 
>  SUBTLE:  How can I configure "github action", so it can replicate
>  the errors reported on CRAN?
> 
> 
> Thanks,
> Spencer
> 
> 
>  [1]
> 
> 
>  https://cran.r-project.org
> 
> 
>  [2]
> 
> 
>  https://github.com/sbgraves237/sos
> 
> 
> 

Re: [R-pkg-devel] help fixing CRAN package sos-now fails on GitHub

2023-05-22 Thread Spencer Graves

Hi, Uwe et al.:


	  The sos vignette sos.Rnw now fails on GitHub, complaining of a LaTeX 
error in "{\tt pspline_ checker}".  I don't find it in the code for 
sos.Rnw.  It may be triggered by a response to an internet search that's 
different from before.



https://github.com/sbgraves237/sos


	  Uwe suggests I postprocess output with gsub("_", "_", output). 
It's not clear to me where I should apply this.  I am not eager to 
change the code in the package, because it could break something else 
that's currently working.



  Suggestions?
  Thanks
  Spencer Graves


On 5/16/23 7:41 AM, Uwe Ligges wrote:



On 16.05.2023 14:02, Spencer Graves wrote:



On 5/16/23 6:06 AM, Uwe Ligges wrote:



On 16.05.2023 01:46, Spencer Graves wrote:

Hello, All:


   The sos package is failing some CRAN checks, complaining:[1]


LaTeX errors:
! Missing $ inserted.

 $
l.303 {\tt pspline_
    checker} in the



I can only guess this is part of the response you got from some sos 
request? I cannot reproduce it currently.


So check:
Does your package pass check if some function names including an 
underscore in the name is returned from an sos request?



Hi, Uwe et al.:


   Thanks, Uwe, for your reply.


   It's complaining about something in a vignette that has been 
part of the package since it appeared in The R Journal in Volume 1/2 
in 2009.  I received an email from Prof. Ripley complaining that it 
reported problems ("WARN") on some of the CRAN checks.  When I asked, 
Prof. Ripley reply's reply included:



 >>  l.303 {\tt pspline_
 >>   checker} in the
 >>  ! ==> Fatal error occurred, no output PDF file produced!
 >>
 >> Underlines need to be escaped in LaTeX.  And as your results 
depend on

 >> Internet downloads,
 >>
 >> "Packages which use Internet resources should fail gracefully with an
 >> informative message if the resource is not available or has changed
 >> (and not give a check warning nor error)."
 >>
 >> applies: you need to anticipate that the results might include
 >> underlines.


   I don't know how to detect, let alone fix the "Underlines" that 
"need to be escaped in LaTeX."


If you receive an output, postprocess it via

gsub("_", "_", output)






   Regarding the other issue that "Packages which use Internet 
resources should fail gracefully with an informative message if the 
resource is not available or has changed (and not give a check warning 
nor error)", I assume I should wrap in "try" all tests in *.Rd files 
that access the Internet and make sure that they don't fail "R CMD 
check" if the Internet is not available.


Yes.

Best,
Uwe Ligges




   Comments?
   Thanks again,
   Spencer Graves


p.s.  Yesterday I remember I got "WARN" on three of six CRAN checks 
against r-devel on different platforms and NOTE on four of the seven 
other CRAN checks.  Today I see "WARN" on only two.  If I just wait, 
these "WARN" problems may go away by themselves.  However, Prof. 
Ripley gave me other problems to fix, and I want to support our kind, 
smart and generous English professor.




Best,
Uwe Ligges







! Emergency stop.

 $
l.303 {\tt pspline_
    checker} in the
! ==> Fatal error occurred, no output PDF file produced!
--- failed re-building 'sos.Rnw'


   I can NOT replicate these locally nor with GitHub action, and 
I failed to find 'psp' in 'sos.Rnw'.[2]  This raises two issue:



OBVIOUS:  What can I do to fix this error, or at least to understand 
it better?



SUBTLE:  How can I configure "github action", so it can replicate 
the errors reported on CRAN?



   Thanks,
   Spencer


[1]


https://cran.r-project.org


[2]


https://github.com/sbgraves237/sos


 Forwarded Message 
Subject: Re: CRAN package sos
Date: Sun, 14 May 2023 14:46:06 +0100
From: Prof Brian Ripley 
Reply-To: CRAN 
To: Spencer Graves 
CC: c...@r-project.org




On 12/05/2023 13:03, Spencer Graves wrote:

Hello, All:


You have just spammed my personal email address, contrary to the 
CRAN policy and done so deliberately and/or recklessly, overriding 
the Reply-To header.


   Is MASS being withdrawn along with multiple other packages 
(mgcv, survival, boot, lattice)?


Not so.  And that was a failure to do your own homework as you 
should have looked on CRAN to see that they are still available.


Further

options(repos=c(CRAN="http://cran.cnr.berkeley.edu;))

does not respect the user's choice of repository: that seems to make 
re-making it unreasonably slow.  On my very fast MacBook Pro


* checking re-building of vignette outputs ...^R
  [26s/265s] OK

so it is waiting 90% of the time.


   That's responsible for 3 of the 4 'warnings' listed there. 
The warning for r-devel-linux-x86_64-fedora-gcc says "LaTeX errors:
! Missing $ inserted ... Fatal error occurred, no output PDF file 
produced! ... Vignette re-building failed."