Update virtual envs

pull/108/head
JulioV 2020-12-18 14:06:28 -05:00
parent 41f19ed781
commit 079547e60d
7 changed files with 419 additions and 275 deletions

View File

@ -3,6 +3,8 @@ name: tests
on:
push:
#branches: [ develop ]
env:
RENV_PATHS_ROOT: ~/.local/share/renv
jobs:
test-on-latest-ubuntu:
@ -26,7 +28,16 @@ jobs:
sudo Rscript --vanilla -e 'install.packages("rmarkdown", repos="http://cran.us.r-project.org")'
conda env create -f environment.yml -n test-environment
source activate test-environment
snakemake -j1 renv_install
R -e 'renv::settings$use.cache(FALSE)'
snakemake -j1 renv_restore
bash tests/scripts/run_tests.sh all test
- name: Cache packages
uses: actions/cache@v1
with:
path: ${{ env.RENV_PATHS_ROOT }}
key: ${{ runner.os }}-renv-${{ hashFiles('**/renv.lock') }}
restore-keys: |
${{ runner.os }}-renv-
- name: Restore packages
shell: Rscript {0}
run: |
if (!requireNamespace("renv", quietly = TRUE)) install.packages("renv")
renv::restore()
- run : bash tests/scripts/run_tests.sh all test

View File

@ -1,4 +1,7 @@
# Change Log
## next release (0.3.0)
- Update R and Python virtual environments
## v0.2.3
- Fix participant IDS in the example analysis workflow
## v0.2.2

View File

@ -1,17 +1,21 @@
## Python Virtual Environment
### Add new packages
Try to install any new package using `conda install -c CHANNEL PACKAGE_NAME` (you can use `pip` if the package is only available there). Make sure your Python virtual environment is active (`conda activate YOUR_ENV`).
### Remove packages
Uninstall packages using the same manager you used to install them `conda remove PACKAGE_NAME` or `pip uninstall PACKAGE_NAME`
### Update your conda `environment.yaml`
After installing or removing a package you can use the following command in your terminal to update your `environment.yaml` before publishing your pipeline. Note that we ignore the package version for `libfortran` to keep compatibility with Linux:
### Updating all packages
Make sure your Python virtual environment is active (`conda activate YOUR_ENV`), then run
```bash
conda env export --no-builds | sed 's/^.*libgfortran.*$/ - libgfortran/' > environment.yml
conda update --all
```
### Update your conda `environment.yaml`
After installing or removing a package you can use the following command in your terminal to update your `environment.yaml` before publishing your pipeline. Note that we ignore the package version for `libfortran` and `mkl` to keep compatibility with Linux:
```bash
conda env export --no-builds | sed 's/^.*libgfortran.*$/ - libgfortran/' | sed 's/^.*mkl=.*$/ - mkl/' > environment.yml
```
## R Virtual Environment
@ -26,6 +30,10 @@ conda env export --no-builds | sed 's/^.*libgfortran.*$/ - libgfortran/' > env
2. Run `R` to open an R interactive session
3. Run `renv::remove("PACKAGE_NAME")`
### Updating all packages
1. Open your terminal and navigate to RAPIDS' root folder
2. Run `R` to open an R interactive session
3. Run `renv::update()`
### Update your R `renv.lock`
After installing or removing a package you can use the following command in your terminal to update your `renv.lock` before publishing your pipeline.

View File

@ -13,6 +13,8 @@ RAPIDS is open source, documented, modular, tested, and reproducible. At the mom
:fontawesome-solid-play: Ready to start? Go to [Installation](setup/installation/), then to [Configuration](setup/configuration/), and then to [Execution](setup/execution/)
:fontawesome-solid-sync-alt: Are you upgrading from RAPIDS [beta](https://rapidspitt.readthedocs.io/en/latest/)? Follow this [guide](migrating-from-old-versions)
## How does it work?
RAPIDS is formed by R and Python scripts orchestrated by [Snakemake](https://snakemake.readthedocs.io/en/stable/). We suggest you read Snakemake's docs but in short: every link in the analysis chain is atomic and has files as input and output. Behavioral features are processed per sensor and per participant.

View File

@ -1,102 +1,109 @@
name: rapids202007
name: rapids202012
channels:
- anaconda
- conda-forge
- defaults
dependencies:
- _py-xgboost-mutex=2.0
- appdirs=1.4.3
- arrow=0.15.2
- asn1crypto=1.2.0
- astropy=4.0.1.post1
- attrs=19.3.0
- appdirs=1.4.4
- arrow=0.16.0
- asn1crypto=1.4.0
- astropy=4.2
- attrs=20.3.0
- binaryornot=0.4.4
- blas=1.0
- brotlipy=0.7.0
- bzip2=1.0.8
- ca-certificates=2020.6.20
- certifi=2020.6.20
- cffi=1.13.1
- ca-certificates=2020.12.8
- certifi=2020.12.5
- cffi=1.14.4
- chardet=3.0.4
- click=7.0
- click=7.1.2
- cookiecutter=1.6.0
- cryptography=2.7
- cryptography=3.3.1
- datrie=0.8.2
- docutils=0.15.2
- future=0.18.1
- gitdb2=2.0.6
- gitpython=3.0.4
- idna=2.8
- docutils=0.16
- future=0.18.2
- gitdb=4.0.5
- gitdb2=4.0.2
- gitpython=3.1.11
- idna=2.10
- imbalanced-learn=0.6.2
- importlib_metadata=0.23
- importlib-metadata=2.0.0
- importlib_metadata=2.0.0
- intel-openmp=2019.4
- jinja2=2.10.3
- jinja2=2.11.2
- jinja2-time=0.2.0
- joblib=0.16.0
- jsonschema=3.1.1
- joblib=1.0.0
- jsonschema=3.2.0
- libblas=3.8.0
- libcblas=3.8.0
- libcxx=9.0.0
- libedit=3.1.20181209
- libffi=3.2.1
- libcxx=10.0.0
- libedit=3.1.20191231
- libffi=3.3
- libgfortran
- liblapack=3.8.0
- libxgboost=0.90
- lightgbm=2.3.0
- lightgbm=3.1.1
- llvm-openmp=10.0.0
- markupsafe=1.1.1
- mkl=2019.4
- mkl
- mkl-service=2.3.0
- mkl_fft=1.0.14
- mkl_random=1.1.0
- more-itertools=7.2.0
- ncurses=6.1
- numpy=1.17.2
- numpy-base=1.17.2
- openssl=1.1.1g
- pandas=0.25.2
- pbr=5.4.3
- pip=19.3.1
- plotly=4.2.1
- mkl_fft=1.2.0
- mkl_random=1.1.1
- more-itertools=8.6.0
- ncurses=6.2
- numpy=1.19.2
- numpy-base=1.19.2
- openssl=1.1.1i
- pandas=1.1.5
- pbr=5.5.1
- pip=20.3.3
- plotly=4.14.1
- poyo=0.5.0
- psutil=5.6.3
- psutil=5.7.2
- py-xgboost=0.90
- pycparser=2.19
- pyopenssl=19.0.0
- pycparser=2.20
- pyerfa=1.7.1.1
- pyopenssl=20.0.1
- pysocks=1.7.1
- python=3.7.3
- python-dateutil=2.8.0
- python=3.7.9
- python-dateutil=2.8.1
- python_abi=3.7
- pytz=2019.3
- pyyaml=5.1.2
- pytz=2020.4
- pyyaml=5.3.1
- readline=8.0
- requests=2.22.0
- requests=2.25.0
- retrying=1.3.3
- scikit-learn=0.22.1
- scipy=1.3.1
- setuptools=41.6.0
- six=1.12.0
- smmap2=2.0.5
- sqlite=3.30.1
- tk=8.6.9
- urllib3=1.25.6
- wheel=0.33.6
- scikit-learn=0.23.2
- scipy=1.5.2
- setuptools=51.0.0
- six=1.15.0
- smmap=3.0.4
- smmap2=3.0.1
- sqlite=3.33.0
- threadpoolctl=2.1.0
- tk=8.6.10
- urllib3=1.25.11
- wheel=0.36.2
- whichcraft=0.6.1
- wrapt=1.11.2
- wrapt=1.12.1
- xgboost=0.90
- xz=5.2.4
- yaml=0.1.7
- zipp=0.6.0
- xz=5.2.5
- yaml=0.2.5
- zipp=3.4.0
- zlib=1.2.11
- pip:
- amply==0.1.4
- configargparse==0.15.1
- decorator==4.4.2
- ipython-genutils==0.2.0
- jupyter-core==4.6.3
- nbformat==5.0.7
- pulp==2.4
- pyparsing==2.4.7
- pyrsistent==0.15.5
- ratelimiter==1.2.0.post0
- snakemake==5.20.1
- snakemake==5.30.2
- toposort==1.5
- traitlets==4.3.3
prefix: /usr/local/Caskroom/miniconda/base/envs/rapids202007
prefix: /usr/local/Caskroom/miniconda/base/envs/rapids202012

416
renv.lock
View File

@ -11,10 +11,10 @@
"Packages": {
"BDgraph": {
"Package": "BDgraph",
"Version": "2.62",
"Version": "2.63",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "c2b632b048e00a670495f2804767159f"
"Hash": "81946367dff8885e6d87e4e12ffc5f92"
},
"BH": {
"Package": "BH",
@ -39,31 +39,31 @@
},
"Formula": {
"Package": "Formula",
"Version": "1.2-3",
"Version": "1.2-4",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "0537b6f1f38ea1fd514089192724bb6e"
"Hash": "cc8c8c4d61346cde1ca60030ff9c241f"
},
"Hmisc": {
"Package": "Hmisc",
"Version": "4.4-0",
"Version": "4.4-2",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "1016ef46c7ebf841513624ecb22eebc7"
"Hash": "66458e906b2112a8b1639964efd77d7c"
},
"KernSmooth": {
"Package": "KernSmooth",
"Version": "2.23-16",
"Version": "2.23-18",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "997471f25a7ed6c782f0090ce52cc63a"
"Hash": "9e703ad8bf0e99f3691f05da32dfe68b"
},
"MASS": {
"Package": "MASS",
"Version": "7.3-51.6",
"Version": "7.3-53",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "1dad32ac9dbd8057167b2979fb932ff7"
"Hash": "d1bc1c8e9c0ace57ec9ffea01021d45f"
},
"Matrix": {
"Package": "Matrix",
@ -74,10 +74,10 @@
},
"R6": {
"Package": "R6",
"Version": "2.4.1",
"Version": "2.5.0",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "292b54f8f4b94669b08f94e5acce6be2"
"Hash": "b203113193e70978a696b2809525649d"
},
"RColorBrewer": {
"Package": "RColorBrewer",
@ -88,31 +88,31 @@
},
"RMariaDB": {
"Package": "RMariaDB",
"Version": "1.0.10",
"Version": "1.0.11",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "d149479ea03e5cbb1e788449ef5e04b4"
"Hash": "0e4f634f2bb38e325717d384a877ccc0"
},
"Rcpp": {
"Package": "Rcpp",
"Version": "1.0.4.6",
"Version": "1.0.5",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "e652f23d8b1807cc975c51410d05b72f"
"Hash": "125dc7a0ed375eb68c0ce533b48d291f"
},
"RcppArmadillo": {
"Package": "RcppArmadillo",
"Version": "0.9.870.2.0",
"Version": "0.10.1.2.0",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "f7fee4557377d47093bd2b65f2642e52"
"Hash": "1a885965adade4b8629c478a3b3c2cf7"
},
"RcppEigen": {
"Package": "RcppEigen",
"Version": "0.3.3.7.0",
"Version": "0.3.3.9.1",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "c6faf038ba4346b1de19ad7c99b8f94a"
"Hash": "ddfa72a87fdf4c80466a20818be91d00"
},
"abind": {
"Package": "abind",
@ -144,10 +144,10 @@
},
"backports": {
"Package": "backports",
"Version": "1.1.6",
"Version": "1.2.1",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "3997fd62345a616e59e8161ee0a5816f"
"Hash": "644043219fc24e190c2f620c1a380a69"
},
"base64enc": {
"Package": "base64enc",
@ -170,26 +170,40 @@
"Repository": "CRAN",
"Hash": "9fe98599ca456d6552421db0d6772d8f"
},
"boot": {
"Package": "boot",
"Version": "1.3-24",
"blob": {
"Package": "blob",
"Version": "1.2.1",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "72557d88b5f42f01221dfa436de99301"
"Hash": "9addc7e2c5954eca5719928131fed98c"
},
"boot": {
"Package": "boot",
"Version": "1.3-25",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "bd51734a754b6c2baf28b2d1ebc11e91"
},
"brio": {
"Package": "brio",
"Version": "1.1.0",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "570a24963009b9cce0869a0463c83580"
},
"broom": {
"Package": "broom",
"Version": "0.5.6",
"Version": "0.7.3",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "754fdb4d17d4ae871343ff2909728ca3"
"Hash": "5581a5ddc8fe2ac5e0d092ec2de4c4ae"
},
"callr": {
"Package": "callr",
"Version": "3.4.3",
"Version": "3.5.1",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "643163a00cb536454c624883a10ae0bc"
"Hash": "b7d7f1e926dfcd57c74ce93f5c048e80"
},
"cellranger": {
"Package": "cellranger",
@ -207,24 +221,24 @@
},
"class": {
"Package": "class",
"Version": "7.3-16",
"Version": "7.3-17",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "ebc639c4432a2e9c17f195d004848100"
"Hash": "9267f5dab59a4ef44229858a142bded1"
},
"cli": {
"Package": "cli",
"Version": "2.0.2",
"Version": "2.2.0",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "ff0becff7bfdfe3f75d29aff8f3172dd"
"Hash": "3ef298932294b775fa0a3eeaa3a645b0"
},
"clipr": {
"Package": "clipr",
"Version": "0.7.0",
"Version": "0.7.1",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "08cf4045c149a0f0eaf405324c7495bd"
"Hash": "ebaa97ac99cc2daf04e77eecc7b781d7"
},
"cluster": {
"Package": "cluster",
@ -235,17 +249,24 @@
},
"codetools": {
"Package": "codetools",
"Version": "0.2-16",
"Version": "0.2-18",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "89cf4b8207269ccf82fbeb6473fd662b"
"Hash": "019388fc48e48b3da0d3a76ff94608a8"
},
"colorspace": {
"Package": "colorspace",
"Version": "1.4-1",
"Version": "2.0-0",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "6b436e95723d1f0e861224dd9b094dfb"
"Hash": "abea3384649ef37f60ef51ce002f3547"
},
"commonmark": {
"Package": "commonmark",
"Version": "1.7",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "0f22be39ec1d141fd03683c06f3a6e67"
},
"corpcor": {
"Package": "corpcor",
@ -254,6 +275,13 @@
"Repository": "CRAN",
"Hash": "ae01381679f4511ca7a72d55fe175213"
},
"cpp11": {
"Package": "cpp11",
"Version": "0.2.4",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "ba66e5a750d39067d888aa7af797fed2"
},
"crayon": {
"Package": "crayon",
"Version": "1.3.4",
@ -277,17 +305,17 @@
},
"data.table": {
"Package": "data.table",
"Version": "1.12.8",
"Version": "1.13.4",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "cd711af60c47207a776213a368626369"
"Hash": "626afb25b020646f53105e6485e695c6"
},
"dbplyr": {
"Package": "dbplyr",
"Version": "1.4.3",
"Version": "2.0.0",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "81ae261735c247d9551126462db5a4b5"
"Hash": "714005206038b1dda74cb1de85029a20"
},
"desc": {
"Package": "desc",
@ -296,26 +324,33 @@
"Repository": "CRAN",
"Hash": "6c8fe8fa26a23b79949375d372c7b395"
},
"digest": {
"Package": "digest",
"Version": "0.6.25",
"diffobj": {
"Package": "diffobj",
"Version": "0.3.2",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "f697db7d92b7028c4b3436e9603fb636"
"Hash": "16533929cf545f3c9b796780cccf5eff"
},
"digest": {
"Package": "digest",
"Version": "0.6.27",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "a0cbe758a531d054b537d16dff4d58a1"
},
"dplyr": {
"Package": "dplyr",
"Version": "0.8.5",
"Version": "1.0.2",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "57a42ddf80f429764ff7987128c3fd0a"
"Hash": "d0509913b27ea898189ee664b6030dc2"
},
"ellipsis": {
"Package": "ellipsis",
"Version": "0.3.0",
"Version": "0.3.1",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "7067d90c1c780bfe80c0d497e3d7b49d"
"Hash": "fd2844b3a43ae2d27e70ece2df1b4e2a"
},
"entropy": {
"Package": "entropy",
@ -368,59 +403,59 @@
},
"foreach": {
"Package": "foreach",
"Version": "1.5.0",
"Version": "1.5.1",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "8fb3ff01ee7d85893f56df8d77213381"
"Hash": "e32cfc0973caba11b65b1fa691b4d8c9"
},
"foreign": {
"Package": "foreign",
"Version": "0.8-79",
"Version": "0.8-80",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "910ad5e5ce9aae0d0f57186ca9a12e1e"
"Hash": "ae1b1e15cc6ccb2bc61c0ac33e86d35f"
},
"fs": {
"Package": "fs",
"Version": "1.4.1",
"Version": "1.5.0",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "780713bd2f53156fae001443dcdbdcd5"
"Hash": "44594a07a42e5f91fac9f93fda6d0109"
},
"generics": {
"Package": "generics",
"Version": "0.0.2",
"Version": "0.1.0",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "b8cff1d1391fd1ad8b65877f4c7f2e53"
"Hash": "4d243a9c10b00589889fe32314ffd902"
},
"ggforce": {
"Package": "ggforce",
"Version": "0.3.1",
"Version": "0.3.2",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "b7132d67f9814af0536cd5761be94314"
"Hash": "4adaf6b01b41f243ba0c62801de3331e"
},
"ggplot2": {
"Package": "ggplot2",
"Version": "3.3.0",
"Version": "3.3.2",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "911561e07da928345f1ae2d69f97f3ea"
"Hash": "4ded8b439797f7b1693bd3d238d0106b"
},
"ggraph": {
"Package": "ggraph",
"Version": "2.0.2",
"Version": "2.0.4",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "11efbeca93af843c5213ebae42cc2b5b"
"Hash": "2a189e5cd2bbfe687ed631be27c07462"
},
"ggrepel": {
"Package": "ggrepel",
"Version": "0.8.2",
"Version": "0.9.0",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "c013a50b19695daf04853679e1bc105a"
"Hash": "2cde657b5a57bf20ccdc8ec05fe69556"
},
"glasso": {
"Package": "glasso",
@ -431,24 +466,24 @@
},
"glmnet": {
"Package": "glmnet",
"Version": "3.0-2",
"Version": "4.0-2",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "96a03ce147d2a6d3e056e9da1d9c6940"
"Hash": "056100917c75e6f8a0d36f8bdd552799"
},
"glue": {
"Package": "glue",
"Version": "1.4.0",
"Version": "1.4.2",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "2aefa994e8df5da17dc09afd80f924d5"
"Hash": "6efd734b14c6471cfe443345f3e35e29"
},
"graphlayouts": {
"Package": "graphlayouts",
"Version": "0.7.0",
"Version": "0.7.1",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "786cadbe37487dbec2e0c91249dbbce0"
"Hash": "2a0d18b9395cd27066d209b83bb29ea6"
},
"gridExtra": {
"Package": "gridExtra",
@ -473,10 +508,10 @@
},
"haven": {
"Package": "haven",
"Version": "2.2.0",
"Version": "2.3.1",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "e3f662e125e9fdffd1ee4e94baea3451"
"Hash": "221d0ad75dfa03ebf17b1a4cc5c31dfc"
},
"highr": {
"Package": "highr",
@ -494,38 +529,38 @@
},
"htmlTable": {
"Package": "htmlTable",
"Version": "1.13.3",
"Version": "2.1.0",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "90d75b22931af95e2dbb17188e1dfa0c"
"Hash": "4f2a742fc75dedafe660e3b47a37680e"
},
"htmltools": {
"Package": "htmltools",
"Version": "0.4.0",
"Version": "0.5.0",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "2d7691222f82f41e93f6d30f169bd5e1"
"Hash": "7d651b7131794fe007b1ad6f21aaa401"
},
"htmlwidgets": {
"Package": "htmlwidgets",
"Version": "1.5.1",
"Version": "1.5.3",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "41bace23583fbc25089edae324de2dc3"
"Hash": "6fdaa86d0700f8b3e92ee3c445a5a10d"
},
"httpuv": {
"Package": "httpuv",
"Version": "1.5.2",
"Version": "1.5.4",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "f793dad2c9ae14fbb1d22f16f23f8326"
"Hash": "4e6dabb220b006ccdc3b3b5ff993b205"
},
"httr": {
"Package": "httr",
"Version": "1.4.1",
"Version": "1.4.2",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "7146fea4685b4252ebf478978c75f597"
"Hash": "a525aba14184fec243f9eaec62fbed43"
},
"huge": {
"Package": "huge",
@ -536,24 +571,24 @@
},
"igraph": {
"Package": "igraph",
"Version": "1.2.5",
"Version": "1.2.6",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "3878c30ce67cdb7f2d7f72554e37f476"
"Hash": "7b1f856410253d56ea67ad808f7cdff6"
},
"isoband": {
"Package": "isoband",
"Version": "0.2.1",
"Version": "0.2.3",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "9b2f7cf1899f583a36d367702ecf49a3"
"Hash": "53647fb507373700028b2ce6cd30751a"
},
"iterators": {
"Package": "iterators",
"Version": "1.0.12",
"Version": "1.0.13",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "117128f48662573ff4c4e72608b9e202"
"Hash": "64778782a89480e9a644f69aad9a2877"
},
"jpeg": {
"Package": "jpeg",
@ -564,31 +599,31 @@
},
"jsonlite": {
"Package": "jsonlite",
"Version": "1.6.1",
"Version": "1.7.2",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "84b0ee361e2f78d6b7d670db9471c0c5"
"Hash": "98138e0994d41508c7a6b84a0600cfcb"
},
"knitr": {
"Package": "knitr",
"Version": "1.28",
"Version": "1.30",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "915a6f0134cdbdf016d7778bc80b2eda"
"Hash": "eed7ee0d02eee88d53881cdc92457c62"
},
"labeling": {
"Package": "labeling",
"Version": "0.3",
"Version": "0.4.2",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "73832978c1de350df58108c745ed0e3e"
"Hash": "3d5108641f47470611a32d0bdf357a72"
},
"later": {
"Package": "later",
"Version": "1.0.0",
"Version": "1.1.0.1",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "6d927978fc658d24175ce37db635f9e5"
"Hash": "d0a62b247165aabf397fded504660d8a"
},
"lattice": {
"Package": "lattice",
@ -606,10 +641,10 @@
},
"lavaan": {
"Package": "lavaan",
"Version": "0.6-5",
"Version": "0.6-7",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "898f1cb9457e5afeaaf6c43c8ffbd72b"
"Hash": "6cc8bb26e9deab15394d48d5ded61ce2"
},
"lifecycle": {
"Package": "lifecycle",
@ -620,17 +655,17 @@
},
"lubridate": {
"Package": "lubridate",
"Version": "1.7.8",
"Version": "1.7.9.2",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "6c04c31012c1be39783bebbbfc27b3a3"
"Hash": "5b5b02f621d39a499def7923a5aee746"
},
"magrittr": {
"Package": "magrittr",
"Version": "1.5",
"Version": "2.0.1",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "1bb58822a20301cee84a41678e25d9b7"
"Hash": "41287f1ac7d28a92f0a286ed507928d3"
},
"markdown": {
"Package": "markdown",
@ -648,17 +683,17 @@
},
"mgcv": {
"Package": "mgcv",
"Version": "1.8-31",
"Version": "1.8-33",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "4bb7e0c4f3557583e1e8d3c9ffb8ba5c"
"Hash": "eb7b6439bc6d812eed2cddba5edc6be3"
},
"mgm": {
"Package": "mgm",
"Version": "1.2-9",
"Version": "1.2-10",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "15782a10391af182d7b42c3b3971de9a"
"Hash": "6a82e040f714adcd21a249d718dee637"
},
"mime": {
"Package": "mime",
@ -669,17 +704,17 @@
},
"mnormt": {
"Package": "mnormt",
"Version": "1.5-7",
"Version": "2.0.2",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "74b6d3efd46009b9304a7d760fd20e03"
"Hash": "7e6ee68a01d6c87c69087d4a250ee763"
},
"modelr": {
"Package": "modelr",
"Version": "0.1.7",
"Version": "0.1.8",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "5a10316936c16bb3b341f687c9ac0fff"
"Hash": "9fd59716311ee82cba83dc2826fc5577"
},
"munsell": {
"Package": "munsell",
@ -690,10 +725,10 @@
},
"nlme": {
"Package": "nlme",
"Version": "3.1-147",
"Version": "3.1-151",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "dd4a1423f1472a2a8e05dd2c8945c3af"
"Hash": "42c8ba2b6a32a6bf0874e93e3bd86a43"
},
"nnet": {
"Package": "nnet",
@ -711,10 +746,10 @@
},
"openssl": {
"Package": "openssl",
"Version": "1.4.1",
"Version": "1.4.3",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "49f7258fd86ebeaea1df24d9ded00478"
"Hash": "a399e4773075fc2375b71f45fca186c4"
},
"packrat": {
"Package": "packrat",
@ -725,10 +760,10 @@
},
"pbapply": {
"Package": "pbapply",
"Version": "1.4-2",
"Version": "1.4-3",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "ee90507ce37987b22470fae76325f370"
"Hash": "52f8028b028076bc3b7ee5d6251abf0d"
},
"pbivnorm": {
"Package": "pbivnorm",
@ -739,17 +774,17 @@
},
"pillar": {
"Package": "pillar",
"Version": "1.4.4",
"Version": "1.4.7",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "b01d2494d0e2b6b02fae40e1543fbcb0"
"Hash": "3b3dd89b2ee115a8b54e93a34cd546b4"
},
"pkgbuild": {
"Package": "pkgbuild",
"Version": "1.0.8",
"Version": "1.2.0",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "8d8b5e29223aabb829246397299f0592"
"Hash": "725fcc30222d4d11ec68efb8ff11a9af"
},
"pkgconfig": {
"Package": "pkgconfig",
@ -760,10 +795,10 @@
},
"pkgload": {
"Package": "pkgload",
"Version": "1.0.2",
"Version": "1.1.0",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "5e655fb54cceead0f095f22d7be33da3"
"Hash": "b6b150cd4709e0c0c9b5d51ac4376282"
},
"plogr": {
"Package": "plogr",
@ -809,10 +844,10 @@
},
"processx": {
"Package": "processx",
"Version": "3.4.2",
"Version": "3.4.5",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "20a082f2bde0ffcd8755779fd476a274"
"Hash": "22aab6098cb14edd0a5973a8438b569b"
},
"progress": {
"Package": "progress",
@ -823,24 +858,24 @@
},
"promises": {
"Package": "promises",
"Version": "1.1.0",
"Version": "1.1.1",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "efbbe62da4709f7040a380c702bc7103"
"Hash": "a8730dcbdd19f9047774909f0ec214a4"
},
"ps": {
"Package": "ps",
"Version": "1.3.3",
"Version": "1.5.0",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "425d938eb9c02906a8ac98c0c2a306b5"
"Hash": "ebaed51a03411fd5cfc1e12d9079b353"
},
"psych": {
"Package": "psych",
"Version": "1.9.12.31",
"Version": "2.0.12",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "fb8cedacb2ded44bbfc6c2e028ebecde"
"Hash": "9345dffe01b539d1c0b00eef80c51adf"
},
"purrr": {
"Package": "purrr",
@ -858,10 +893,10 @@
},
"readr": {
"Package": "readr",
"Version": "1.3.1",
"Version": "1.4.0",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "af8ab99cd936773a148963905736907b"
"Hash": "2639976851f71f330264a9c9c3d43a61"
},
"readxl": {
"Package": "readxl",
@ -877,12 +912,19 @@
"Repository": "CRAN",
"Hash": "c66b930d20bb6d858cd18e1cebcfae5c"
},
"renv": {
"Package": "renv",
"Version": "0.10.0",
"rematch2": {
"Package": "rematch2",
"Version": "2.1.2",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "0d3f1c2b63e70b3d918246b4e2ca59b7"
"Hash": "76c9e04c712a05848ae7a23d2f170a40"
},
"renv": {
"Package": "renv",
"Version": "0.12.3",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "b5510c50c7f31d453c385c7b460af2b9"
},
"reprex": {
"Package": "reprex",
@ -907,17 +949,17 @@
},
"rlang": {
"Package": "rlang",
"Version": "0.4.6",
"Version": "0.4.9",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "aa263e3ce17b177c49e0daade2ee3cdc"
"Hash": "9d7aba7bed9a79e2403b4777428a2b12"
},
"rmarkdown": {
"Package": "rmarkdown",
"Version": "2.1",
"Version": "2.6",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "9d1c61d476c448350c482d6664e1b28b"
"Hash": "bc4bac38960b446c183957bfd563e763"
},
"robustbase": {
"Package": "robustbase",
@ -935,24 +977,24 @@
},
"rprojroot": {
"Package": "rprojroot",
"Version": "1.3-2",
"Version": "2.0.2",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "f6a407ae5dd21f6f80a6708bbb6eb3ae"
"Hash": "249d8cd1e74a8f6a26194a91b47f21d1"
},
"rstudioapi": {
"Package": "rstudioapi",
"Version": "0.11",
"Version": "0.13",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "33a5b27a03da82ac4b1d43268f80088a"
"Hash": "06c85365a03fdaf699966cc1d3cf53ea"
},
"rvest": {
"Package": "rvest",
"Version": "0.3.5",
"Version": "0.3.6",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "6a20c2cdf133ebc7ac45888c9ccc052b"
"Hash": "a9795ccb2d608330e841998b67156764"
},
"scales": {
"Package": "scales",
@ -970,17 +1012,17 @@
},
"shape": {
"Package": "shape",
"Version": "1.4.4",
"Version": "1.4.5",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "ef692f72a633981cad0d4950a5775702"
"Hash": "58510f25472de6fd363d76698d29709e"
},
"shiny": {
"Package": "shiny",
"Version": "1.4.0.2",
"Version": "1.5.0",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "a56d058adfc9df30bdd45dbb01cec39f"
"Hash": "ee4ed72d7a5047d9e73cf922ad66e9c9"
},
"sourcetools": {
"Package": "sourcetools",
@ -991,17 +1033,17 @@
},
"spatial": {
"Package": "spatial",
"Version": "7.3-11",
"Version": "7.3-12",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "f27a078d834614513608da2c08031130"
"Hash": "58a02ce0150652b96c044bc67a0df2e5"
},
"stringi": {
"Package": "stringi",
"Version": "1.4.6",
"Version": "1.5.3",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "e99d8d656980d2dd416a962ae55aec90"
"Hash": "a063ebea753c92910a4cca7b18bc1f05"
},
"stringr": {
"Package": "stringr",
@ -1012,31 +1054,31 @@
},
"survival": {
"Package": "survival",
"Version": "3.1-12",
"Version": "3.2-7",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "1c5bb53bd428f3c42a25b7aeb983d8c7"
"Hash": "39c4ac6d22dad33db0ee37b40810ea12"
},
"sys": {
"Package": "sys",
"Version": "3.3",
"Version": "3.4",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "507f3116a38d37ad330a038b3be07b66"
"Hash": "b227d13e29222b4574486cfcbde077fa"
},
"testthat": {
"Package": "testthat",
"Version": "2.3.2",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "0829b987b8961fb07f3b1b64a2fbc495"
},
"tibble": {
"Package": "tibble",
"Version": "3.0.1",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "1c61e4cad000e03b1bd687db16a75926"
"Hash": "17826764cb92d8b5aae6619896e5a161"
},
"tibble": {
"Package": "tibble",
"Version": "3.0.4",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "71dffd8544691c520dd8e41ed2d7e070"
},
"tidygraph": {
"Package": "tidygraph",
@ -1047,10 +1089,10 @@
},
"tidyr": {
"Package": "tidyr",
"Version": "1.1.0",
"Version": "1.1.2",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "7395a05640bf91502dd475a84008d87e"
"Hash": "c40b2d5824d829190f4b825f4496dfae"
},
"tidyselect": {
"Package": "tidyselect",
@ -1068,10 +1110,17 @@
},
"tinytex": {
"Package": "tinytex",
"Version": "0.22",
"Version": "0.28",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "8b0712f45a05c8e79ce7ba06b249583c"
"Hash": "ff73961a77fba606fbf944dc3468e5b9"
},
"tmvnsim": {
"Package": "tmvnsim",
"Version": "1.0-2",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "50470c7ed0cc8099cbc17b38f0ef621f"
},
"tweenr": {
"Package": "tweenr",
@ -1089,10 +1138,10 @@
},
"vctrs": {
"Package": "vctrs",
"Version": "0.3.0",
"Version": "0.3.6",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "fbf7ee297936697ec8404a22859da129"
"Hash": "5cf1957f93076c19fdc81d01409d240b"
},
"viridis": {
"Package": "viridis",
@ -1108,6 +1157,13 @@
"Repository": "CRAN",
"Hash": "ce4f6271baa94776db692f1cb2055bee"
},
"waldo": {
"Package": "waldo",
"Version": "0.2.3",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "181d1a31b1ba2009ef20926f2ee0570c"
},
"whisker": {
"Package": "whisker",
"Version": "0.4",
@ -1117,17 +1173,17 @@
},
"withr": {
"Package": "withr",
"Version": "2.2.0",
"Version": "2.3.0",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "ecd17882a0b4419545691e095b74ee89"
"Hash": "7307d79f58d1885b38c4f4f1a8cb19dd"
},
"xfun": {
"Package": "xfun",
"Version": "0.13",
"Version": "0.19",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "3c1eeacd705ff1695db94bfd443b8a84"
"Hash": "a42372606cb76f34da9d090326e9f955"
},
"xml2": {
"Package": "xml2",

View File

@ -1,10 +1,8 @@
local({
options(tidyverse.quiet = TRUE)
# the requested version of renv
version <- "0.10.0"
version <- "0.12.3"
# the project directory
project <- getwd()
@ -41,8 +39,12 @@ local({
# load bootstrap tools
bootstrap <- function(version, library) {
# fix up repos
# read repos (respecting override if set)
repos <- Sys.getenv("RENV_CONFIG_REPOS_OVERRIDE", unset = NA)
if (is.na(repos))
repos <- getOption("repos")
# fix up repos
on.exit(options(repos = repos), add = TRUE)
repos[repos == "@CRAN@"] <- "https://cloud.r-project.org"
options(repos = repos)
@ -82,11 +84,19 @@ local({
renv_bootstrap_download <- function(version) {
methods <- list(
# if the renv version number has 4 components, assume it must
# be retrieved via github
nv <- numeric_version(version)
components <- unclass(nv)[[1]]
methods <- if (length(components) == 4L) {
list(renv_bootstrap_download_github)
} else {
list(
renv_bootstrap_download_cran_latest,
renv_bootstrap_download_cran_archive,
renv_bootstrap_download_github
renv_bootstrap_download_cran_archive
)
}
for (method in methods) {
path <- tryCatch(method(version), error = identity)
@ -100,19 +110,12 @@ local({
renv_bootstrap_download_cran_latest <- function(version) {
# check for renv on CRAN matching this version
db <- as.data.frame(available.packages(), stringsAsFactors = FALSE)
if (!"renv" %in% rownames(db))
stop("renv is not available on your declared package repositories")
entry <- db["renv", ]
if (!identical(entry$Version, version))
stop("renv is not available on your declared package repositories")
repos <- renv_bootstrap_download_cran_latest_find(version)
message("* Downloading renv ", version, " from CRAN ... ", appendLF = FALSE)
info <- tryCatch(
download.packages("renv", destdir = tempdir()),
download.packages("renv", repos = repos, destdir = tempdir(), quiet = TRUE),
condition = identity
)
@ -126,6 +129,37 @@ local({
}
renv_bootstrap_download_cran_latest_find <- function(version) {
# check for renv on CRAN matching this version
all <- unique(c(
getOption("repos"),
getOption("renv.bootstrap.repos", default = "https://cloud.r-project.org")
))
for (repos in all) {
db <- tryCatch(
as.data.frame(available.packages(repos = repos), stringsAsFactors = FALSE),
error = identity
)
if (inherits(db, "error"))
next
entry <- db[db$Package %in% "renv" & db$Version %in% version, ]
if (nrow(entry) == 0)
next
return(repos)
}
fmt <- "renv %s is not available from your declared package repositories"
stop(sprintf(fmt, version))
}
renv_bootstrap_download_cran_archive <- function(version) {
name <- sprintf("renv_%s.tar.gz", version)
@ -259,8 +293,11 @@ local({
return(path)
path <- Sys.getenv("RENV_PATHS_LIBRARY_ROOT", unset = NA)
if (!is.na(path))
return(file.path(path, basename(project)))
if (!is.na(path)) {
id <- substring(renv_bootstrap_hash_text(project), 1L, 8L)
name <- paste(basename(project), id, sep = "-")
return(file.path(path, name))
}
file.path(project, "renv/library")
@ -281,8 +318,8 @@ local({
paste("renv", loadedversion, sep = "@")
fmt <- paste(
"renv %1$s was loaded from project library, but renv %2$s is recorded in lockfile.",
"Use `renv::record(\"%3$s\")` to record this version in the lockfile.",
"renv %1$s was loaded from project library, but this project is configured to use renv %2$s.",
"Use `renv::record(\"%3$s\")` to record renv %1$s in the lockfile.",
"Use `renv::restore(packages = \"renv\")` to install renv %2$s into the project library.",
sep = "\n"
)
@ -294,6 +331,16 @@ local({
}
renv_bootstrap_hash_text <- function(text) {
hashfile <- tempfile("renv-hash-")
on.exit(unlink(hashfile), add = TRUE)
writeLines(text, con = hashfile)
tools::md5sum(hashfile)
}
renv_bootstrap_load <- function(project, libpath, version) {
# try to load renv from the project library
@ -304,7 +351,7 @@ local({
renv_bootstrap_validate_version(version)
# load the project
renv::load(project, quiet = TRUE)
renv::load(project)
TRUE
@ -323,12 +370,22 @@ local({
if (renv_bootstrap_load(project, libpath, version))
return(TRUE)
# load failed; attempt to bootstrap
# load failed; inform user we're about to bootstrap
prefix <- paste("# Bootstrapping renv", version)
postfix <- paste(rep.int("-", 77L - nchar(prefix)), collapse = "")
header <- paste(prefix, postfix)
message(header)
# perform bootstrap
bootstrap(version, libpath)
# exit early if we're just testing bootstrap
if (!is.na(Sys.getenv("RENV_BOOTSTRAP_INSTALL_ONLY", unset = NA)))
return(TRUE)
# try again to load
if (requireNamespace("renv", lib.loc = libpath, quietly = TRUE)) {
message("Successfully installed and loaded renv ", version, ".")
message("* Successfully installed and loaded renv ", version, ".")
return(renv::load())
}