[R-pkg-devel] Two (newbie/luser) questions about adding CI to github hosted package

Chris Evans chr|@ho|d @end|ng |rom p@yctc@org
Tue Mar 16 16:24:23 CET 2021


Thanks. That's very kind and at some levels I know it's correct and I should not go there. I have been on the receiving end of some (mostly one) incredibly brutal public battering 
in relation to R so perhaps I am lightly scarred by that! 

> From: "Stefan McKinnon Høj-Edwards" <sme using iysik.com>
> To: "Chris Evans" <chrishold using psyctc.org>
> Cc: "Duncan Murdoch" <murdoch.duncan using gmail.com>, "r-package-devel"
> <r-package-devel using r-project.org>
> Sent: Tuesday, 16 March, 2021 13:22:53
> Subject: Re: [R-pkg-devel] Two (newbie/luser) questions about adding CI to
> github hosted package

> Hi everybody,

> I would like to take a minute to address the language used in the initial
> e-mail, notably the "newbie/luser" terminology.
> It was given in both the subject (" Two (newbie/luser) questions") as well as
> the body ("... robust R package that might be useful (mainly to R
> newbies/lusers of even lower R/programming skills than mine).").

> Personally I find the term "luser" (as of a "loser user") very condescending,
> whether it is about yourself (because you are not an experienced programmer) or
> others (because you perceive them as inexperienced programmers).
> To put it short, using such a condescending term inhibits yourself and,
> especially, others. Its use is simply unwarranted. Using the term about the
> users of your package, regardless of their experience, is derogatory.

> If you are writing to this mailing list with issues developing an R-package, you
> are neither a newbie nor a loser, and we collectively will do our best to help
> you. So no need in derograting yourself.

> Kind regards,
> Stefan

> Den tir. 16. mar. 2021 kl. 14.05 skrev Chris Evans < [
> mailto:chrishold using psyctc.org | chrishold using psyctc.org ] >:

>> Hugely appreciated Duncan.

>> ----- Original Message -----
>>> From: "Duncan Murdoch" < [ mailto:murdoch.duncan using gmail.com |
>> > murdoch.duncan using gmail.com ] >
>>> To: "Chris Evans" < [ mailto:chrishold using psyctc.org | chrishold using psyctc.org ] >,
>>> "r-package-devel" < [ mailto:r-package-devel using r-project.org |
>> > r-package-devel using r-project.org ] >
>> > Sent: Tuesday, 16 March, 2021 10:48:50
>>> Subject: Re: [R-pkg-devel] Two (newbie/luser) questions about adding CI to
>> > github hosted package

>> > On 16/03/2021 5:58 a.m., Chris Evans wrote:
>> >> I would be very grateful of help as I seem to be making very heavy weather of
>> >> all the intricacies of creating a
>> >> robust R package that might be useful (mainly to R newbies/lusers of even lower
>> >> R/programming skills than mine).

>> >> I am making a lot of progress and am awed by the work so many have put in to
>> >> make things possible: huge gratitude
>> >> to too many to name. However, I seem to be hitting a wall on adding CI to my
>> >> package.

>> >> 1) I am sure that linting my package will help me but there are some defaults in
>> >> lintr/superlinter that I am want
>> >> to take a personal stand and not use: allowing myself not always to use perfect
>> >> camelCase because I think it will
>> >> confuse my end users and the line length limit which at the default of 80 seems
>> >> to me, on a modern set up, to make
>> >> my code far less readable than if I allow some long lines. My problem is that I
>> >> am failing to work out how to override
>> >> the defaults. I thought that putting in /TEMPLATES/.lintr in my package
>> >> directory and having it contain:

>> >> # linters: with_defaults(object_usage_linter = NULL)
>> >> linters: with_defaults(
>> >> line_length_linter(120),
>> >> cyclocomp_linter(25),
>> >> object_name_linter = NULL
>> >> )
>> >> would override the defaults (I'm working on the cyclocomp complaint!) Can
>> >> anyone, perhaps looking at my
>>>> [ https://github.com/cpsyctc/CECPfuns/ | https://github.com/cpsyctc/CECPfuns/ ]
>> >> package, tell me what I'm doing wrong and
>> >> how to get it right?!


>> > I use lintr, and put my .lintr file in the main directory of the package.

>> OK. I have removed the TEMPLATES directory and moved .lintr to the package root.

>> I think I am better keeping lintr local and having moved .lintr using

>> lintr::lint_package()

>> locally is working fine, flagging up cosmetics I can see are all improvements so
>> I
>> can sort those out without wasting github power. Which takes to the next stage
>> ...




>> >> 2) I work on a machine running Ubuntu 20.04 in Rstudio and everything checks and
>> >> tests fine there but I wanted
>> >> to use the github actions to check the package out on Windows and Mac and,
>> >> rather more by luck I think than really
>> >> understanding how I got there, I seem to have achieved that. Rather bizarrely,
>> >> the code (it's only R source)
>> >> passes on Windows and Mac but fails in the Ubuntu test systems with errors like:

>> >> ── R CMD build ─────────────────────────────────────────────────────────────────
>> >> * checking for file ‘.../DESCRIPTION’ ... OK
>> >> * preparing ‘CECPfuns’:
>> >> * checking DESCRIPTION meta-information ... OK
>> >> * installing the package to process help pages
>> >> -----------------------------------
>> >> * installing *source* package ‘CECPfuns’ ...
>> >> ** using staged installation
>> >> ** R
>> >> ** inst
>> >> ** byte-compile and prepare package for lazy loading
>> >> Error in dyn.load(file, DLLpath = DLLpath, ...) :
>> >> unable to load shared object
>> >> '/home/runner/work/_temp/Library/stringi/libs/stringi.so':
>> >> libicui18n.so.55: cannot open shared object file: No such file or directory
>> >> Calls: <Anonymous> ... namespaceImport -> loadNamespace -> library.dynam ->
>> >> dyn.load
>> >> Execution halted
>> >> ERROR: lazy loading failed for package ‘CECPfuns’

>> >> I _think_ these are just changes in the stirngi package that seem to failing on
>> >> the test machine
>> >> and OK on my machine. That made me think that I can see a lot of logic in my
>> >> checking things on
>> >> the various default versions of R in Ubuntu 16.04, Windows and MacOS but perhaps
>> >> it is unnecessary
>> >> and wasting resources to check the release version of R on Ubuntu 20.04 as it
>> >> seems safe enough to
>> >> assume that the package built on my local machine in the release version of R
>> >> and on Ubuntu 20.04
>> >> that fails like this will only be transient (or that successes on my machine
>> >> will only be ... but
>> >> at least I'll see them and not waste github resources!)

>> >> The catch is that I am baffled by how to configure github actions to change the
>> >> lint defaults and
>> >> to change the selection of releases and platforms. I think that may because I
>> >> may have created
>> >> a mess in my github actions workflows.

>> >> Would anyone be willing to help or even to look at it and point me to the
>> >> explanations I am failing
>> >> to find?!

>> > You have 5 workflows, and their current content doesn't appear to match
>> > the results on your actions page. Pick one, run it, and I'll see if I
>> > can spot the reason for a failure.

>> That is so appreciated Duncan. One stupid question: is there a way to run a
>> workflow other than by making an upload/push (or a pull request)?

>> I think I have discovered that the workflows are controlled by the yaml files
>> in .github/workflows so I have deleted all except R-CMD-check.yaml and I think
>> that when I now commit and push this that should delete the other workflows
>> on github and trigger this one to run. If you could look at that one then
>> that would be hugely appreciated. I see it says:

>> strategy:
>> fail-fast: false
>> matrix:
>> config:
>> - {os: macOS-latest, r: 'release'}
>> - {os: windows-latest, r: 'release'}
>> - {os: windows-latest, r: '3.6'}
>> - {os: ubuntu-18.04, r: 'devel', rspm: " [
>> https://packagemanager.rstudio.com/cran/__linux__/bionic/latest |
>> https://packagemanager.rstudio.com/cran/__linux__/bionic/latest ] ",
>> http-user-agent: "R/4.0.0 (ubuntu-18.04) R (4.0.0 x86_64-pc-linux-gnu x86_64
>> linux-gnu) on GitHub Actions" }
>> - {os: ubuntu-18.04, r: 'release', rspm: " [
>> https://packagemanager.rstudio.com/cran/__linux__/bionic/latest |
>> https://packagemanager.rstudio.com/cran/__linux__/bionic/latest ] "}
>> - {os: ubuntu-18.04, r: 'oldrel', rspm: " [
>> https://packagemanager.rstudio.com/cran/__linux__/bionic/latest |
>> https://packagemanager.rstudio.com/cran/__linux__/bionic/latest ] "}
>> - {os: ubuntu-18.04, r: '3.5', rspm: " [
>> https://packagemanager.rstudio.com/cran/__linux__/bionic/latest |
>> https://packagemanager.rstudio.com/cran/__linux__/bionic/latest ] "}
>> - {os: ubuntu-18.04, r: '3.4', rspm: " [
>> https://packagemanager.rstudio.com/cran/__linux__/bionic/latest |
>> https://packagemanager.rstudio.com/cran/__linux__/bionic/latest ] "}
>> - {os: ubuntu-18.04, r: '3.3', rspm: " [
>> https://packagemanager.rstudio.com/cran/__linux__/bionic/latest |
>> https://packagemanager.rstudio.com/cran/__linux__/bionic/latest ] "}

>> Some questions as I, I think, make some progress:

>> 1) Why is windows-latest pointing at 3.6? I am on 4.0.4 locally for windows. I
>> assume this is because I have copied or pulled in
>> a template that is out of date. Can I just replace that '3.6' with 'release'

>> 2) My guts say that at this point it is sensible for me to test against devel,
>> release and oldrel but that after the next
>> release I could stop testing against oldrel? Is that sensible?

>> 3) I see tests against 3.3, 3.4 and 3.5 there for ubuntu 18.04 and no 20.04. Am
>> I correct that I could replace the above
>> with this:

>> strategy:
>> fail-fast: false
>> matrix:
>> config:
>> - {os: macOS-latest, r: 'release'}
>> - {os: windows-latest, r: 'release'}
>> - {os: windows-latest, r: 'release'}
>> - {os: ubuntu-18.04, r: 'devel', rspm: " [
>> https://packagemanager.rstudio.com/cran/__linux__/bionic/latest |
>> https://packagemanager.rstudio.com/cran/__linux__/bionic/latest ] ",
>> http-user-agent: "R/4.0.0 (ubuntu-18.04) R (4.0.0 x86_64-pc-linux-gnu x86_64
>> linux-gnu) on GitHub Actions" }
>> - {os: ubuntu-18.04, r: 'release', rspm: " [
>> https://packagemanager.rstudio.com/cran/__linux__/bionic/latest |
>> https://packagemanager.rstudio.com/cran/__linux__/bionic/latest ] "}
>> - {os: ubuntu-18.04, r: 'oldrel', rspm: " [
>> https://packagemanager.rstudio.com/cran/__linux__/bionic/latest |
>> https://packagemanager.rstudio.com/cran/__linux__/bionic/latest ] "}
>> - {os: ubuntu-20.04, r: 'devel', rspm: " [
>> https://packagemanager.rstudio.com/cran/__linux__/xenial/latest |
>> https://packagemanager.rstudio.com/cran/__linux__/xenial/latest ] "}
>> - {os: ubuntu-20.04, r: 'release', rspm: " [
>> https://packagemanager.rstudio.com/cran/__linux__/xenial/latest |
>> https://packagemanager.rstudio.com/cran/__linux__/xenial/latest ] "}
>> - {os: ubuntu-20.04, r: 'oldrel', rspm: " [
>> https://packagemanager.rstudio.com/cran/__linux__/xenial/latest |
>> https://packagemanager.rstudio.com/cran/__linux__/xenial/latest ] "}

>> [I have changed the windows '3.6' to 'release' and the last three ubuntu calls
>> to 20.04 and the R versions to 'devel', 'release'
>> and 'oldrel' and the repositories to point at xenial not bionic. I have only
>> done this here in the Email, not on disc!]

>> It would be nice to check all that occasionally but I am sure that at the
>> frequency I'm pushing up new functions and tweaks,
>> so my colleagues can check things, I am putting far too much work on github with
>> all those. Could I just check windows
>> and macOS release and devel by commenting out lines there. Or is it better to
>> have different yaml files and just to put
>> the one you want in .github/workflows for each particular push? No great
>> difference?

>> OK. I have pushed these changes with the commit comment "More work to get
>> continuous integration testing ..." and the
>> actions seem to be running and I seem to have succeeded in pruning things down
>> to that one action.

>> Wonderful if you can find the time to have a look at these questions and the run
>> ... now I'm off to the dentist.
>> Hm: dentist ... bad day with R ... dentist ... OK, I'll take bad day with R any
>> day!

>> Thanks (and to all),

>> Chris


>> > Duncan Murdoch

>> --
>> Small contribution in our coronavirus rigours:
>> [
>> https://www.coresystemtrust.org.uk/home/free-options-to-replace-paper-core-forms-during-the-coronavirus-pandemic/
>> |
>> https://www.coresystemtrust.org.uk/home/free-options-to-replace-paper-core-forms-during-the-coronavirus-pandemic/
>> ]

>> Chris Evans < [ mailto:chris using psyctc.org | chris using psyctc.org ] > Visiting
>> Professor, University of Sheffield < [ mailto:chris.evans using sheffield.ac.uk |
>> chris.evans using sheffield.ac.uk ] >
>> I do some consultation work for the University of Roehampton < [
>> mailto:chris.evans using roehampton.ac.uk | chris.evans using roehampton.ac.uk ] > and
>> other places
>> but < [ mailto:chris using psyctc.org | chris using psyctc.org ] > remains my main Email
>> address. I have a work web site at:
>> [ https://www.psyctc.org/psyctc/ | https://www.psyctc.org/psyctc/ ]
>> and a site I manage for CORE and CORE system trust at:
>> [ http://www.coresystemtrust.org.uk/ | http://www.coresystemtrust.org.uk/ ]
>> I have "semigrated" to France, see:
>> [ https://www.psyctc.org/pelerinage2016/semigrating-to-france/ |
>> https://www.psyctc.org/pelerinage2016/semigrating-to-france/ ]
>> [
>> https://www.psyctc.org/pelerinage2016/register-to-get-updates-from-pelerinage2016/
>> |
>> https://www.psyctc.org/pelerinage2016/register-to-get-updates-from-pelerinage2016/
>> ]

>> If you want an Emeeting, I am trying to keep them to Thursdays and my diary is
>> at:
>> [ https://www.psyctc.org/pelerinage2016/ceworkdiary/ |
>> https://www.psyctc.org/pelerinage2016/ceworkdiary/ ]
>> Beware: French time, generally an hour ahead of UK.

>> ______________________________________________
>> [ mailto:R-package-devel using r-project.org | R-package-devel using r-project.org ] mailing
>> list
>> [ https://stat.ethz.ch/mailman/listinfo/r-package-devel |
>> https://stat.ethz.ch/mailman/listinfo/r-package-devel ]

-- 
Small contribution in our coronavirus rigours: 
https://www.coresystemtrust.org.uk/home/free-options-to-replace-paper-core-forms-during-the-coronavirus-pandemic/ 

Chris Evans <chris using psyctc.org> Visiting Professor, University of Sheffield <chris.evans using sheffield.ac.uk> 
I do some consultation work for the University of Roehampton <chris.evans using roehampton.ac.uk> and other places 
but <chris using psyctc.org> remains my main Email address. I have a work web site at: 
https://www.psyctc.org/psyctc/ 
and a site I manage for CORE and CORE system trust at: 
http://www.coresystemtrust.org.uk/ 
I have "semigrated" to France, see: 
https://www.psyctc.org/pelerinage2016/semigrating-to-france/ 
https://www.psyctc.org/pelerinage2016/register-to-get-updates-from-pelerinage2016/ 

If you want an Emeeting, I am trying to keep them to Thursdays and my diary is at: 
https://www.psyctc.org/pelerinage2016/ceworkdiary/ 
Beware: French time, generally an hour ahead of UK. 

	[[alternative HTML version deleted]]



More information about the R-package-devel mailing list