Subject: Re: Doc and vignettes bundled from Bioconductor

From: zimoun <[email-masked]>
Date: Wed, 28 Oct 2020 00:18:48 +0100

On Tue, 27 Oct 2020 at 21:36, zimoun <[email-masked]> wrote:

On part of the story,

> --8<---------------cut here---------------start------------->8---
> (define-public r-diffcyt
>   (package
>     (name "r-diffcyt")

[...]

>     (native-inputs
     `(("r-knitr" ,r-knitr)
       ("r-rmarkdown" ,r-rmarkdown)
       ("pandoc" ,pandoc)
       ("pandoc" ,pandoc-citeproc)
       ("r-biocstyle" ,r-biocstyle)))

[...]

>     (license expat)))
> --8<---------------cut here---------------end--------------->8---

leads to:

--8<---------------cut here---------------start------------->8---
starting phase `check'
Testing examples for package ‘diffcyt’
Running specific tests for package ‘diffcyt’
  Running ‘testthat.R’
Running vignettes for package ‘diffcyt’
  Running ‘diffcyt_workflow.Rmd’

*** Source Errors ***

File diffcyt_workflow.R:
Cannot find the file(s): "diffcyt.png"

*** Weave Errors ***

File diffcyt_workflow.Rmd:
Cannot find the file(s): "diffcyt.png"
--8<---------------cut here---------------end--------------->8---

and I have no clue what I am missing.

The other part of the story is:

--8<---------------cut here---------------start------------->8---
    (arguments
     `(#:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'delete
           (lambda _
             (delete-file-recursively "inst")
             #t)))))
--8<---------------cut here---------------end--------------->8---

leads to:

--8<---------------cut here---------------start------------->8---
starting phase `install'
* installing *source* package ‘diffcyt’ ...
** using staged installation
** R
** tests
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
Warning in file(con, "w") :
  cannot open file '/gnu/store/nqymkk1g0zsmf2wwrq5zd6rh7sdhvpjm-r-diffcyt-1.8.8/site-library/00LOCK-diffcyt/00new/diffcyt/doc/index.html': No such file or directory
Error in file(con, "w") : cannot open the connection
ERROR: installing vignettes failed
* removing ‘/gnu/store/nqymkk1g0zsmf2wwrq5zd6rh7sdhvpjm-r-diffcyt-1.8.8/site-library/diffcyt’
command "R" "CMD" "INSTALL" "--install-tests" "--library=/gnu/store/nqymkk1g0zsmf2wwrq5zd6rh7sdhvpjm-r-diffcyt-1.8.8/site-library/" "--built-timestamp=1970-01-01" "." failed with status 1
builder for `/gnu/store/9dwqj8vfn2rd8amprrqw2db511c65az4-r-diffcyt-1.8.8.drv' failed with exit code 1
build of /gnu/store/9dwqj8vfn2rd8amprrqw2db511c65az4-r-diffcyt-1.8.8.drv failed
View build log at '/var/log/guix/drvs/9d/wqj8vfn2rd8amprrqw2db511c65az4-r-diffcyt-1.8.8.drv.bz2'.
guix build: error: build of `/gnu/store/9dwqj8vfn2rd8amprrqw2db511c65az4-r-diffcyt-1.8.8.drv' failed
--8<---------------cut here---------------end--------------->8---

and the addition of ’(mkdir-p "inst/doc")’ makes the build pass, but:

  file:///gnu/store/…-r-diffcyt-1.8.8/site-library/diffcyt/doc/index.html

shows one HTML link pointing to:

  file:///gnu/store/…-r-diffcyt-1.8.8/library/diffcyt/doc/diffcyt_workflow.html

which does not exist.

Another random example is ’r-ebimage’,

--8<---------------cut here---------------start------------->8---
$ tar xvf $(guix build r-ebimage -S) | grep "inst/doc"
EBImage/inst/doc/
EBImage/inst/doc/EBImage-introduction.R
EBImage/inst/doc/EBImage-introduction.Rmd
EBImage/inst/doc/EBImage-introduction.html

$ md5sum EBImage/inst/doc/EBImage-introduction.html  $(guix build r-ebimage)/site-library/EBImage/doc/EBImage-introduction.html
4dabd489660ff7909e4787cb23fe89d7  EBImage/inst/doc/EBImage-introduction.html
4dabd489660ff7909e4787cb23fe89d7  /gnu/store/9lmzhb0palxsm8ynacy2nnh5w8gvbn6j-r-ebimage-4.30.0/site-library/EBImage/doc/EBImage-introduction.html
--8<---------------cut here---------------end--------------->8---

Well bit-to-bit identical HTML as upstream… strong evidence that the
documentation is not locally generated.  And the upstream-upstream

  https://github.com/aoles/EBImage/tree/master/inst

does not contains this HTML, AFAICT.

BTW, going via the Source Repository

   git clone https://git.bioconductor.org/packages/EBImage

i.e., ’git-fetch’ instead of ’url-fetch’ seems the right direction to
fix.  Because:

 1. it is the “real” source and this source is easily verifiable; for
 example it is easy to check the commit hash of the Bioconductor repo
 against the one of the upstream GitHub repo.

 2. the fallback to SWH works for git-fetch.  The tarball is not ready
 yet; and who knows when… :-)

All the best,
simon