rstudio / renv

renv: Project environments for R.
https://rstudio.github.io/renv/
MIT License
1.02k stars 155 forks source link

`renv::install()` doesn't work using DESCRIPTION file #1630

Closed ghost closed 1 year ago

ghost commented 1 year ago

Since I've updated renv to 1.0.0, I cannot install packages for my project from a DESCRIPTION file. Here are the first couple of lines of the file:

Package: my_project
Title: Name of my project
Version: 1.0.0
...

Up until recently, renv::install() would give me the following error message after successfully installing all the dependencies:

...
- Downloading praise from CRAN ...              OK [6 Kb in 0.19s]
- Downloading waldo from CRAN ...               OK [38.7 Kb in 0.14s]
- Downloading diffobj from CRAN ...             OK [468 Kb in 0.23s]
- Downloading urlchecker from CRAN ...          OK [13 Kb in 0.18s]
Error: package 'my_project' is not available

It seemed to me that renv thought that my_project was a package itself which caused the error.

However, when I tried to run the same command today , I just received the following output (no error messsage):

> renv::install()
- There are no packages to install.
kevinushey commented 1 year ago

Can you please provide a reproducible example?

ghost commented 1 year ago

@kevinushey Sure.

  1. Create an empty folder
  2. Create a DESCRIPTION file with the below contents:
Package: my_project
Title: My Project
Version: 0.0.0.9000
Authors@R: 
    person("First", "Last", , "first.last@example.com", role = c("aut", "cre"),
           comment = c(ORCID = "YOUR-ORCID-ID"))
Description: Does something.
License: file LICENSE
Encoding: UTF-8
LazyData: true
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.2.3
Depends:
  R (>= 4.0)
Imports:
  data.table (>= 1.14)
Suggests:
  testthat (>= 3.0.0),
  devtools
Config/testthat/edition: 3
  1. enter the folder
  2. run renv::init(bare = TRUE)
  3. run renv::install()

When using the 0.16.0 version, this is the output:

Installing data.table [1.14.8] ...
    OK [linked cache]
Installing cli [3.6.1] ...
    OK [linked cache]
Installing R6 [2.5.1] ...
    OK [linked cache]
Installing rprojroot [2.0.3] ...
    OK [linked cache]
Installing desc [1.4.2] ...
    OK [linked cache]
Installing rlang [1.1.1] ...
    OK [linked cache]
Installing ellipsis [0.3.2] ...
    OK [linked cache]
Installing fs [1.6.3] ...
    OK [linked cache]
Installing glue [1.6.2] ...
    OK [linked cache]
Installing lifecycle [1.0.3] ...
    OK [linked cache]
Installing fastmap [1.1.1] ...
    OK [linked cache]
Installing cachem [1.0.8] ...
    OK [linked cache]
Installing memoise [2.0.1] ...
    OK [linked cache]
Installing Rcpp [1.0.11] ...
    OK [linked cache]
Installing later [1.3.1] ...
    OK [linked cache]
Installing magrittr [2.0.3] ...
    OK [linked cache]
Installing promises [1.2.0.1] ...
    OK [linked cache]
Installing httpuv [1.6.11] ...
    OK [linked cache]
Installing mime [0.12] ...
    OK [linked cache]
Installing jsonlite [1.8.7] ...
    OK [linked cache]
Installing xtable [1.8-4] ...
    OK [linked cache]
Installing digest [0.6.33] ...
    OK [linked cache]
Installing base64enc [0.1-3] ...
    OK [linked cache]
Installing htmltools [0.5.5] ...
    OK [linked cache]
Installing fontawesome [0.5.1] ...
    OK [linked cache]
Installing sourcetools [0.1.7-1] ...
    OK [linked cache]
Installing crayon [1.5.2] ...
    OK [linked cache]
Installing withr [2.5.0] ...
    OK [linked cache]
Installing commonmark [1.9.0] ...
    OK [linked cache]
Installing jquerylib [0.1.4] ...
    OK [linked cache]
Installing rappdirs [0.3.3] ...
    OK [linked cache]
Installing sass [0.4.7] ...
    OK [linked cache]
Installing bslib [0.5.0] ...
    OK [linked cache]
Installing shiny [1.7.4.1] ...
    OK [linked cache]
Installing miniUI [0.1.1.1] ...
    OK [linked cache]
Installing ps [1.7.5] ...
    OK [linked cache]
Installing processx [3.8.2] ...
    OK [linked cache]
Installing callr [3.7.3] ...
    OK [linked cache]
Installing prettyunits [1.1.1] ...
    OK [linked cache]
Installing pkgbuild [1.4.2] ...
    OK [linked cache]
Installing brio [1.1.3] ...
    OK [linked cache]
Installing evaluate [0.21] ...
    OK [linked cache]
Installing fansi [1.0.4] ...
    OK [linked cache]
Installing vctrs [0.6.3] ...
    OK [linked cache]
Installing yaml [2.3.7] ...
    OK [linked cache]
Installing downlit [0.4.3] ...
    OK [linked cache]
Installing curl [5.0.1] ...
    OK [linked cache]
Installing sys [3.4.2] ...
    OK [linked cache]
Installing askpass [1.1] ...
    OK [linked cache]
Installing openssl [2.1.0] ...
    OK [linked cache]
Installing httr [1.4.6] ...
    OK [linked cache]
Installing purrr [1.0.1] ...
    OK [linked cache]
Installing cpp11 [0.4.5] ...
    OK [linked cache]
Installing systemfonts [1.0.4] ...
    OK [linked cache]
Installing textshaping [0.3.6] ...
    OK [linked cache]
Installing ragg [1.2.5] ...
    OK [linked cache]
Installing xfun [0.39] ...
    OK [linked cache]
Installing highr [0.10] ...
    OK [linked cache]
Installing knitr [1.43] ...
    OK [linked cache]
Installing stringi [1.7.12] ...
    OK [linked cache]
Installing stringr [1.5.0] ...
    OK [linked cache]
Installing tinytex [0.45] ...
    OK [linked cache]
Installing rmarkdown [2.23] ...
    OK [linked cache]
Installing utf8 [1.2.3] ...
    OK [linked cache]
Installing pillar [1.9.0] ...
    OK [linked cache]
Installing pkgconfig [2.0.3] ...
    OK [linked cache]
Installing tibble [3.2.1] ...
    OK [linked cache]
Installing whisker [0.4.1] ...
    OK [linked cache]
Installing xml2 [1.3.5] ...
    OK [linked cache]
Installing pkgdown [2.0.7] ...
    OK [linked cache]
Installing pkgload [1.3.2.1] ...
    OK [linked cache]
Installing htmlwidgets [1.6.2] ...
    OK [linked cache]
Installing profvis [0.3.8] ...
    OK [linked cache]
Installing sessioninfo [1.2.2] ...
    OK [linked cache]
Installing xopen [1.0.0] ...
    OK [linked cache]
Installing rcmdcheck [1.4.0] ...
    OK [linked cache]
Installing remotes [2.4.2.1] ...
    OK [linked cache]
Installing brew [1.0-8] ...
    OK [linked cache]
Installing roxygen2 [7.2.3] ...
    OK [linked cache]
Installing rversions [2.1.2] ...
    OK [linked cache]
Installing praise [1.0.0] ...
    OK [linked cache]
Installing diffobj [0.3.5] ...
    OK [linked cache]
Installing rematch2 [2.1.2] ...
    OK [linked cache]
Installing waldo [0.5.1] ...
    OK [linked cache]
Installing testthat [3.1.10] ...
    OK [linked cache]
Installing urlchecker [1.0.1] ...
    OK [linked cache]
Installing clipr [0.8.0] ...
    OK [linked cache]
Installing credentials [1.3.2] ...
    OK [linked cache]
Installing rstudioapi [0.15.0] ...
    OK [linked cache]
Installing zip [2.3.0] ...
    OK [linked cache]
Installing gert [1.9.3] ...
    OK [linked cache]
Installing gitcreds [0.1.2] ...
    OK [linked cache]
Installing httr2 [0.2.3] ...
    OK [linked cache]
Installing ini [0.3.1] ...
    OK [linked cache]
Installing gh [1.4.0] ...
    OK [linked cache]
Installing usethis [2.2.2] ...
    OK [linked cache]
Installing devtools [2.4.5] ...
    OK [linked cache]
The following package(s) have been updated:

    fs      [installed version 1.6.3   != loaded version 1.6.2]
    remotes [installed version 2.4.2.1 != loaded version 2.4.2]

Consider restarting the R session and loading the newly-installed packages.

When using version 1.0.0 version, this is the output:

- There are no packages to install.

Here is the output of my sessionInfo():

R version 4.1.0 (2021-05-18)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.6 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.2.20.so

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8     LC_MONETARY=en_US.UTF-8   
 [6] LC_MESSAGES=en_US.UTF-8    LC_PAPER=en_US.UTF-8       LC_NAME=C                  LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_4.1.0 tools_4.1.0    renv_1.0.0    
kevinushey commented 1 year ago

Seems to work for me with the development version of renv:

> renv::init(bare = TRUE)
This project contains a DESCRIPTION file.
Which files should renv use for dependency discovery in this project?

1: Use only the DESCRIPTION file. (explicit mode)
2: Use all files in this project. (implicit mode)

Selection: 1
- Using 'explicit' snapshot type. Please see `?renv::snapshot` for more details.

- renv activated -- please restart the R session.
>
Save workspace image? [y/n/c]: kevin@MBP-P2MQ:/var/folders/9n/3nxsgkrj0rlfx196kzdttpww0000gn/T/tmp.KZbtGtdH
$ R

R version 4.3.1 (2023-06-16) -- "Beagle Scouts"
Copyright (C) 2023 The R Foundation for Statistical Computing
Platform: aarch64-apple-darwin20 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

- Project '/private/var/folders/9n/3nxsgkrj0rlfx196kzdttpww0000gn/T/tmp.KZbtGtdH' loaded. [renv 1.0.0.9000]
- The project is out-of-sync -- use `renv::status()` for details.
> renv::install()
The following package(s) will be installed:
- askpass     [1.1]
- base64enc   [0.1-3]
- brew        [1.0-8]
- brio        [1.1.3]
- bslib       [0.5.0]
- cachem      [1.0.8]
- callr       [3.7.3]
- cli         [3.6.1]
- clipr       [0.8.0]
- commonmark  [1.9.0]
- cpp11       [0.4.5]
- crayon      [1.5.2]
- credentials [1.3.2]
- curl        [5.0.1]
- data.table  [1.14.8]
- desc        [1.4.2]
- devtools    [2.4.5]
- diffobj     [0.3.5]
- digest      [0.6.33]
- downlit     [0.4.3]
- ellipsis    [0.3.2]
- evaluate    [0.21]
- fansi       [1.0.4]
- fastmap     [1.1.1]
- fontawesome [0.5.1]
- fs          [1.6.3]
- gert        [1.9.3]
- gh          [1.4.0]
- gitcreds    [0.1.2]
- glue        [1.6.2]
- highr       [0.10]
- htmltools   [0.5.5]
- htmlwidgets [1.6.2]
- httpuv      [1.6.11]
- httr        [1.4.6]
- httr2       [0.2.3]
- ini         [0.3.1]
- jquerylib   [0.1.4]
- jsonlite    [1.8.7]
- knitr       [1.43]
- later       [1.3.1]
- lifecycle   [1.0.3]
- magrittr    [2.0.3]
- memoise     [2.0.1]
- mime        [0.12]
- miniUI      [0.1.1.1]
- openssl     [2.1.0]
- pillar      [1.9.0]
- pkgbuild    [1.4.2]
- pkgconfig   [2.0.3]
- pkgdown     [2.0.7]
- pkgload     [1.3.2.1]
- praise      [1.0.0]
- prettyunits [1.1.1]
- processx    [3.8.2]
- profvis     [0.3.8]
- promises    [1.2.0.1]
- ps          [1.7.5]
- purrr       [1.0.1]
- R6          [2.5.1]
- ragg        [1.2.5]
- rappdirs    [0.3.3]
- rcmdcheck   [1.4.0]
- Rcpp        [1.0.11]
- rematch2    [2.1.2]
- remotes     [2.4.2.1]
- rlang       [1.1.1]
- rmarkdown   [2.23]
- roxygen2    [7.2.3]
- rprojroot   [2.0.3]
- rstudioapi  [0.15.0]
- rversions   [2.1.2]
- sass        [0.4.7]
- sessioninfo [1.2.2]
- shiny       [1.7.4.1]
- sourcetools [0.1.7-1]
- stringi     [1.7.12]
- stringr     [1.5.0]
- sys         [3.4.2]
- systemfonts [1.0.4]
- testthat    [3.1.10]
- textshaping [0.3.6]
- tibble      [3.2.1]
- tinytex     [0.45]
- urlchecker  [1.0.1]
- usethis     [2.2.2]
- utf8        [1.2.3]
- vctrs       [0.6.3]
- waldo       [0.5.1]
- whisker     [0.4.1]
- withr       [2.5.0]
- xfun        [0.39]
- xml2        [1.3.5]
- xopen       [1.0.0]
- xtable      [1.8-4]
- yaml        [2.3.7]
- zip         [2.3.0]
These packages will be installed into "~/Library/Caches/org.R-project.R/R/renv/library/tmp.KZbtGtdH-8014c098/R-4.3/aarch64-apple-darwin20".

Do you want to proceed? [Y/n]:
ghost commented 1 year ago

After restarting RStudio I get the same output. We can close this for now.