run_modules: | |||||
- rnaseq_data_generation_information | |||||
- rnaseq_performance_assessment | |||||
- rnaseq_raw_qc | |||||
- rnaseq_post_alignment_qc | |||||
- rnaseq_quantification_qc | |||||
- rnaseq_supplementary | |||||
skip_generalstats: true |
{ | |||||
"R": { | |||||
"Version": "3.6.3", | |||||
"Repositories": [ | |||||
{ | |||||
"Name": "CRAN", | |||||
"URL": "https://cloud.r-project.org" | |||||
} | |||||
] | |||||
}, | |||||
"Bioconductor": { | |||||
"Version": "3.10" | |||||
}, | |||||
"Packages": { | |||||
"BH": { | |||||
"Package": "BH", | |||||
"Version": "1.72.0-3", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "8f9ce74c6417d61f0782cbae5fd2b7b0" | |||||
}, | |||||
"BiocManager": { | |||||
"Package": "BiocManager", | |||||
"Version": "1.30.12", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "462dbb15753eb52fb62e28507f382d2d" | |||||
}, | |||||
"BiocVersion": { | |||||
"Package": "BiocVersion", | |||||
"Version": "3.10.1", | |||||
"Source": "Bioconductor", | |||||
"Hash": "b69e4e634db423b8e6c58103d579ec95" | |||||
}, | |||||
"DT": { | |||||
"Package": "DT", | |||||
"Version": "0.15", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "85738c69035e67ec4b484a5e02640ef6" | |||||
}, | |||||
"KernSmooth": { | |||||
"Package": "KernSmooth", | |||||
"Version": "2.23-16", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "997471f25a7ed6c782f0090ce52cc63a" | |||||
}, | |||||
"MASS": { | |||||
"Package": "MASS", | |||||
"Version": "7.3-52", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "095c8b0dd20f5d9c2a75cf72fdd74dab" | |||||
}, | |||||
"Matrix": { | |||||
"Package": "Matrix", | |||||
"Version": "1.2-18", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "08588806cba69f04797dab50627428ed" | |||||
}, | |||||
"R6": { | |||||
"Package": "R6", | |||||
"Version": "2.4.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "292b54f8f4b94669b08f94e5acce6be2" | |||||
}, | |||||
"RColorBrewer": { | |||||
"Package": "RColorBrewer", | |||||
"Version": "1.1-2", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "e031418365a7f7a766181ab5a41a5716" | |||||
}, | |||||
"Rcpp": { | |||||
"Package": "Rcpp", | |||||
"Version": "0.12.18", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "75ffd49f2ce7309ffd72ca94b491ccf4" | |||||
}, | |||||
"askpass": { | |||||
"Package": "askpass", | |||||
"Version": "1.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "e8a22846fff485f0be3770c2da758713" | |||||
}, | |||||
"assertthat": { | |||||
"Package": "assertthat", | |||||
"Version": "0.2.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "7b2aa2be4bd0497000a5a399f07da3f1" | |||||
}, | |||||
"backports": { | |||||
"Package": "backports", | |||||
"Version": "1.1.9", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "b29e2d989dfb2e71ca3fd7d5bb1c0d58" | |||||
}, | |||||
"base64enc": { | |||||
"Package": "base64enc", | |||||
"Version": "0.1-3", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "543776ae6848fde2f48ff3816d0628bc" | |||||
}, | |||||
"boot": { | |||||
"Package": "boot", | |||||
"Version": "1.3-24", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "72557d88b5f42f01221dfa436de99301" | |||||
}, | |||||
"brew": { | |||||
"Package": "brew", | |||||
"Version": "1.0-6", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "92a5f887f9ae3035ac7afde22ba73ee9" | |||||
}, | |||||
"callr": { | |||||
"Package": "callr", | |||||
"Version": "3.4.3", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "643163a00cb536454c624883a10ae0bc" | |||||
}, | |||||
"class": { | |||||
"Package": "class", | |||||
"Version": "7.3-15", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "4fba6a022803b6c3f30fd023be3fa818" | |||||
}, | |||||
"cli": { | |||||
"Package": "cli", | |||||
"Version": "2.0.2", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "ff0becff7bfdfe3f75d29aff8f3172dd" | |||||
}, | |||||
"clipr": { | |||||
"Package": "clipr", | |||||
"Version": "0.7.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "08cf4045c149a0f0eaf405324c7495bd" | |||||
}, | |||||
"cluster": { | |||||
"Package": "cluster", | |||||
"Version": "2.1.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "db63a44aab5aadcb6bf2f129751d129a" | |||||
}, | |||||
"codetools": { | |||||
"Package": "codetools", | |||||
"Version": "0.2-16", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "89cf4b8207269ccf82fbeb6473fd662b" | |||||
}, | |||||
"colorspace": { | |||||
"Package": "colorspace", | |||||
"Version": "1.4-1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "6b436e95723d1f0e861224dd9b094dfb" | |||||
}, | |||||
"commonmark": { | |||||
"Package": "commonmark", | |||||
"Version": "1.7", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "0f22be39ec1d141fd03683c06f3a6e67" | |||||
}, | |||||
"covr": { | |||||
"Package": "covr", | |||||
"Version": "3.5.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "cbc6df1ef6ee576f844f973c1fc04ab4" | |||||
}, | |||||
"cowplot": { | |||||
"Package": "cowplot", | |||||
"Version": "1.0.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "82bae0172ae9d4c4f88a440ad01f73bb" | |||||
}, | |||||
"crayon": { | |||||
"Package": "crayon", | |||||
"Version": "1.3.4", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "0d57bc8e27b7ba9e45dba825ebc0de6b" | |||||
}, | |||||
"crosstalk": { | |||||
"Package": "crosstalk", | |||||
"Version": "1.1.0.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "ae55f5d7c02f0ab43c58dd050694f2b4" | |||||
}, | |||||
"curl": { | |||||
"Package": "curl", | |||||
"Version": "4.3", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "2b7d10581cc730804e9ed178c8374bd6" | |||||
}, | |||||
"data.table": { | |||||
"Package": "data.table", | |||||
"Version": "1.13.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "06d5863292e2e8ffbb063ce34e77bb2a" | |||||
}, | |||||
"desc": { | |||||
"Package": "desc", | |||||
"Version": "1.2.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "6c8fe8fa26a23b79949375d372c7b395" | |||||
}, | |||||
"devtools": { | |||||
"Package": "devtools", | |||||
"Version": "2.3.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "271df6a328617c64149283e98b1cd8da" | |||||
}, | |||||
"digest": { | |||||
"Package": "digest", | |||||
"Version": "0.6.15", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "706759233d88683f590d78ab6c82360a" | |||||
}, | |||||
"dplyr": { | |||||
"Package": "dplyr", | |||||
"Version": "1.0.2", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "d0509913b27ea898189ee664b6030dc2" | |||||
}, | |||||
"edgeR": { | |||||
"Package": "edgeR", | |||||
"Version": "3.28.1", | |||||
"Source": "Bioconductor", | |||||
"Hash": "89c7b7cf2495fd8a434f6d0b40ec5060" | |||||
}, | |||||
"ellipsis": { | |||||
"Package": "ellipsis", | |||||
"Version": "0.3.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "fd2844b3a43ae2d27e70ece2df1b4e2a" | |||||
}, | |||||
"evaluate": { | |||||
"Package": "evaluate", | |||||
"Version": "0.14", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "ec8ca05cffcc70569eaaad8469d2a3a7" | |||||
}, | |||||
"exp2qcdt": { | |||||
"Package": "exp2qcdt", | |||||
"Version": "0.2.2", | |||||
"Source": "GitHub", | |||||
"RemoteType": "github", | |||||
"RemoteHost": "api.github.com", | |||||
"RemoteRepo": "exp2qcdt", | |||||
"RemoteUsername": "clinico-omics", | |||||
"RemoteRef": "HEAD", | |||||
"RemoteSha": "319a5eba8f9b5b5e3355ac8045f573a400627583", | |||||
"Hash": "31f1244a56a68cfb8184738fd9210523" | |||||
}, | |||||
"fansi": { | |||||
"Package": "fansi", | |||||
"Version": "0.4.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "7fce217eaaf8016e72065e85c73027b5" | |||||
}, | |||||
"farver": { | |||||
"Package": "farver", | |||||
"Version": "2.0.3", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "dad6793a5a1f73c8e91f1a1e3e834b05" | |||||
}, | |||||
"foreign": { | |||||
"Package": "foreign", | |||||
"Version": "0.8-75", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "9a7efaa7320b9f327a904d1e615b0b46" | |||||
}, | |||||
"fs": { | |||||
"Package": "fs", | |||||
"Version": "1.5.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "44594a07a42e5f91fac9f93fda6d0109" | |||||
}, | |||||
"gdata": { | |||||
"Package": "gdata", | |||||
"Version": "2.18.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "465ccb84427f5fe2c54f8620666db131" | |||||
}, | |||||
"generics": { | |||||
"Package": "generics", | |||||
"Version": "0.0.2", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "b8cff1d1391fd1ad8b65877f4c7f2e53" | |||||
}, | |||||
"ggplot2": { | |||||
"Package": "ggplot2", | |||||
"Version": "3.3.2", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "4ded8b439797f7b1693bd3d238d0106b" | |||||
}, | |||||
"ggthemes": { | |||||
"Package": "ggthemes", | |||||
"Version": "4.2.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "dfa67ccc3fb199f102a34d557ec1ff45" | |||||
}, | |||||
"gh": { | |||||
"Package": "gh", | |||||
"Version": "1.1.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "89ea5998938d1ad55f035c8a86f96b74" | |||||
}, | |||||
"git2r": { | |||||
"Package": "git2r", | |||||
"Version": "0.27.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "531a82d1beed1f545beb25f4f5945bf7" | |||||
}, | |||||
"glue": { | |||||
"Package": "glue", | |||||
"Version": "1.4.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "f43e0d5e85ccb0a4045670c0607ee504" | |||||
}, | |||||
"gmodels": { | |||||
"Package": "gmodels", | |||||
"Version": "2.18.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "beb8ca96406a2828f25e49ab17001c39" | |||||
}, | |||||
"gtable": { | |||||
"Package": "gtable", | |||||
"Version": "0.3.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "ac5c6baf7822ce8732b343f14c072c4d" | |||||
}, | |||||
"gtools": { | |||||
"Package": "gtools", | |||||
"Version": "3.8.2", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "0a749b4458d19a54acae93c64e3e7c85" | |||||
}, | |||||
"highr": { | |||||
"Package": "highr", | |||||
"Version": "0.8", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "4dc5bb88961e347a0f4d8aad597cbfac" | |||||
}, | |||||
"htmltools": { | |||||
"Package": "htmltools", | |||||
"Version": "0.5.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "7d651b7131794fe007b1ad6f21aaa401" | |||||
}, | |||||
"htmlwidgets": { | |||||
"Package": "htmlwidgets", | |||||
"Version": "1.5.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "41bace23583fbc25089edae324de2dc3" | |||||
}, | |||||
"httr": { | |||||
"Package": "httr", | |||||
"Version": "1.4.2", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "a525aba14184fec243f9eaec62fbed43" | |||||
}, | |||||
"ini": { | |||||
"Package": "ini", | |||||
"Version": "0.3.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "6154ec2223172bce8162d4153cda21f7" | |||||
}, | |||||
"isoband": { | |||||
"Package": "isoband", | |||||
"Version": "0.2.2", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "6e58bd3d6b3dd82a944cd6f05ade228f" | |||||
}, | |||||
"jsonlite": { | |||||
"Package": "jsonlite", | |||||
"Version": "1.7.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "2657f20b9a74c996c602e74ebe540b06" | |||||
}, | |||||
"knitr": { | |||||
"Package": "knitr", | |||||
"Version": "1.29", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "e5f4c41c17df8cdf7b0df12117c0d99a" | |||||
}, | |||||
"labeling": { | |||||
"Package": "labeling", | |||||
"Version": "0.3", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "73832978c1de350df58108c745ed0e3e" | |||||
}, | |||||
"later": { | |||||
"Package": "later", | |||||
"Version": "1.1.0.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "d0a62b247165aabf397fded504660d8a" | |||||
}, | |||||
"lattice": { | |||||
"Package": "lattice", | |||||
"Version": "0.20-38", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "848f8c593fd1050371042d18d152e3d7" | |||||
}, | |||||
"lazyeval": { | |||||
"Package": "lazyeval", | |||||
"Version": "0.2.2", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "d908914ae53b04d4c0c0fd72ecc35370" | |||||
}, | |||||
"lifecycle": { | |||||
"Package": "lifecycle", | |||||
"Version": "0.2.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "361811f31f71f8a617a9a68bf63f1f42" | |||||
}, | |||||
"limma": { | |||||
"Package": "limma", | |||||
"Version": "3.42.2", | |||||
"Source": "Bioconductor", | |||||
"Hash": "d56e7c663eb11536c78fe2f25d9fa544" | |||||
}, | |||||
"locfit": { | |||||
"Package": "locfit", | |||||
"Version": "1.5-9.4", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "760b5b542e8435237d1b3c253bfe18e7" | |||||
}, | |||||
"magrittr": { | |||||
"Package": "magrittr", | |||||
"Version": "1.5", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "1bb58822a20301cee84a41678e25d9b7" | |||||
}, | |||||
"markdown": { | |||||
"Package": "markdown", | |||||
"Version": "1.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "61e4a10781dd00d7d81dd06ca9b94e95" | |||||
}, | |||||
"memoise": { | |||||
"Package": "memoise", | |||||
"Version": "1.1.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "58baa74e4603fcfb9a94401c58c8f9b1" | |||||
}, | |||||
"mgcv": { | |||||
"Package": "mgcv", | |||||
"Version": "1.8-31", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "4bb7e0c4f3557583e1e8d3c9ffb8ba5c" | |||||
}, | |||||
"mime": { | |||||
"Package": "mime", | |||||
"Version": "0.9", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "e87a35ec73b157552814869f45a63aa3" | |||||
}, | |||||
"munsell": { | |||||
"Package": "munsell", | |||||
"Version": "0.5.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "6dfe8bf774944bd5595785e3229d8771" | |||||
}, | |||||
"nlme": { | |||||
"Package": "nlme", | |||||
"Version": "3.1-144", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "e80d41932d3cc235ccbbbb9732ae162e" | |||||
}, | |||||
"nnet": { | |||||
"Package": "nnet", | |||||
"Version": "7.3-12", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "68287aec1f476c41d16ce1ace445800c" | |||||
}, | |||||
"openssl": { | |||||
"Package": "openssl", | |||||
"Version": "1.4.2", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "b3209c62052922b6c629544d94c8fa8a" | |||||
}, | |||||
"pillar": { | |||||
"Package": "pillar", | |||||
"Version": "1.4.6", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "bdf26e55ccb7df3e49a490150277f002" | |||||
}, | |||||
"pkgbuild": { | |||||
"Package": "pkgbuild", | |||||
"Version": "1.1.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "404684bc4e3685007f9720adf13b06c1" | |||||
}, | |||||
"pkgconfig": { | |||||
"Package": "pkgconfig", | |||||
"Version": "2.0.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "b8a063ca3694e651ac46f71b4bf0e090" | |||||
}, | |||||
"pkgload": { | |||||
"Package": "pkgload", | |||||
"Version": "1.1.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "b6b150cd4709e0c0c9b5d51ac4376282" | |||||
}, | |||||
"plyr": { | |||||
"Package": "plyr", | |||||
"Version": "1.8.6", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "ec0e5ab4e5f851f6ef32cd1d1984957f" | |||||
}, | |||||
"praise": { | |||||
"Package": "praise", | |||||
"Version": "1.0.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "a555924add98c99d2f411e37e7d25e9f" | |||||
}, | |||||
"prettyunits": { | |||||
"Package": "prettyunits", | |||||
"Version": "1.1.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "95ef9167b75dde9d2ccc3c7528393e7e" | |||||
}, | |||||
"processx": { | |||||
"Package": "processx", | |||||
"Version": "3.4.4", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "03446ed0b8129916f73676726cb3c48f" | |||||
}, | |||||
"promises": { | |||||
"Package": "promises", | |||||
"Version": "1.1.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "a8730dcbdd19f9047774909f0ec214a4" | |||||
}, | |||||
"ps": { | |||||
"Package": "ps", | |||||
"Version": "1.3.4", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "a54a7dfd68124abb2225dbfa9a85c457" | |||||
}, | |||||
"purrr": { | |||||
"Package": "purrr", | |||||
"Version": "0.3.4", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "97def703420c8ab10d8f0e6c72101e02" | |||||
}, | |||||
"rcmdcheck": { | |||||
"Package": "rcmdcheck", | |||||
"Version": "1.3.3", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "ed95895886dab6d2a584da45503555da" | |||||
}, | |||||
"rematch2": { | |||||
"Package": "rematch2", | |||||
"Version": "2.1.2", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "76c9e04c712a05848ae7a23d2f170a40" | |||||
}, | |||||
"remotes": { | |||||
"Package": "remotes", | |||||
"Version": "2.2.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "430a0908aee75b1fcba0e62857cab0ce" | |||||
}, | |||||
"renv": { | |||||
"Package": "renv", | |||||
"Version": "0.13.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "9f10d9db5b50400c348920c5c603385e" | |||||
}, | |||||
"reshape2": { | |||||
"Package": "reshape2", | |||||
"Version": "1.4.4", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "bb5996d0bd962d214a11140d77589917" | |||||
}, | |||||
"rex": { | |||||
"Package": "rex", | |||||
"Version": "1.2.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "093584b944440c5cd07a696b3c8e0e4c" | |||||
}, | |||||
"rlang": { | |||||
"Package": "rlang", | |||||
"Version": "0.4.7", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "c06d2a6887f4b414f8e927afd9ee976a" | |||||
}, | |||||
"roxygen2": { | |||||
"Package": "roxygen2", | |||||
"Version": "7.1.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "fcd94e00cc409b25d07ca50f7bf339f5" | |||||
}, | |||||
"rpart": { | |||||
"Package": "rpart", | |||||
"Version": "4.1-15", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "9787c1fcb680e655d062e7611cadf78e" | |||||
}, | |||||
"rprojroot": { | |||||
"Package": "rprojroot", | |||||
"Version": "1.3-2", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "f6a407ae5dd21f6f80a6708bbb6eb3ae" | |||||
}, | |||||
"rstudioapi": { | |||||
"Package": "rstudioapi", | |||||
"Version": "0.11", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "33a5b27a03da82ac4b1d43268f80088a" | |||||
}, | |||||
"rversions": { | |||||
"Package": "rversions", | |||||
"Version": "2.0.2", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "0ec41191f744d0f5afad8c6f35cc36e4" | |||||
}, | |||||
"scales": { | |||||
"Package": "scales", | |||||
"Version": "1.1.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "6f76f71042411426ec8df6c54f34e6dd" | |||||
}, | |||||
"sessioninfo": { | |||||
"Package": "sessioninfo", | |||||
"Version": "1.1.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "308013098befe37484df72c39cf90d6e" | |||||
}, | |||||
"spatial": { | |||||
"Package": "spatial", | |||||
"Version": "7.3-11", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "f27a078d834614513608da2c08031130" | |||||
}, | |||||
"stringi": { | |||||
"Package": "stringi", | |||||
"Version": "1.2.4", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "bca4c3464ae356a8649d907944da78b4" | |||||
}, | |||||
"stringr": { | |||||
"Package": "stringr", | |||||
"Version": "1.4.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "0759e6b6c0957edb1311028a49a35e76" | |||||
}, | |||||
"survival": { | |||||
"Package": "survival", | |||||
"Version": "3.1-8", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "ad25122f95d04988f6f79d69aaadd53d" | |||||
}, | |||||
"sys": { | |||||
"Package": "sys", | |||||
"Version": "3.4", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "b227d13e29222b4574486cfcbde077fa" | |||||
}, | |||||
"testthat": { | |||||
"Package": "testthat", | |||||
"Version": "2.3.2", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "0829b987b8961fb07f3b1b64a2fbc495" | |||||
}, | |||||
"tibble": { | |||||
"Package": "tibble", | |||||
"Version": "3.0.3", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "08bd36bd34b20d4f7971d49e81deaab0" | |||||
}, | |||||
"tidyr": { | |||||
"Package": "tidyr", | |||||
"Version": "0.8.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "95ded1450e6af17d0d3eb4b39233c43d" | |||||
}, | |||||
"tidyselect": { | |||||
"Package": "tidyselect", | |||||
"Version": "1.1.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "6ea435c354e8448819627cf686f66e0a" | |||||
}, | |||||
"usethis": { | |||||
"Package": "usethis", | |||||
"Version": "1.6.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "e1985f5a9985fea2e338fa7eb99018ca" | |||||
}, | |||||
"utf8": { | |||||
"Package": "utf8", | |||||
"Version": "1.1.4", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "4a5081acfb7b81a572e4384a7aaf2af1" | |||||
}, | |||||
"vctrs": { | |||||
"Package": "vctrs", | |||||
"Version": "0.3.2", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "5ba3006888ac62fd5e97b208d00d3317" | |||||
}, | |||||
"viridisLite": { | |||||
"Package": "viridisLite", | |||||
"Version": "0.3.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "ce4f6271baa94776db692f1cb2055bee" | |||||
}, | |||||
"whisker": { | |||||
"Package": "whisker", | |||||
"Version": "0.4", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "ca970b96d894e90397ed20637a0c1bbe" | |||||
}, | |||||
"withr": { | |||||
"Package": "withr", | |||||
"Version": "2.2.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "ecd17882a0b4419545691e095b74ee89" | |||||
}, | |||||
"xfun": { | |||||
"Package": "xfun", | |||||
"Version": "0.16", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "b4106139b90981a8bfea9c10bab0baf1" | |||||
}, | |||||
"xml2": { | |||||
"Package": "xml2", | |||||
"Version": "1.3.2", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "d4d71a75dd3ea9eb5fa28cc21f9585e2" | |||||
}, | |||||
"xopen": { | |||||
"Package": "xopen", | |||||
"Version": "1.0.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "6c85f015dee9cc7710ddd20f86881f58" | |||||
}, | |||||
"yaml": { | |||||
"Package": "yaml", | |||||
"Version": "2.2.1", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "2826c5d9efb0a88f657c7a679c7106db" | |||||
} | |||||
} | |||||
} |
library/ | library/ | ||||
local/ | |||||
lock/ | |||||
python/ | python/ | ||||
staging/ | staging/ |
local({ | local({ | ||||
# the requested version of renv | # the requested version of renv | ||||
version <- "0.12.0" | |||||
version <- "0.13.0" | |||||
# the project directory | # the project directory | ||||
project <- getwd() | project <- getwd() | ||||
# load bootstrap tools | # load bootstrap tools | ||||
bootstrap <- function(version, library) { | bootstrap <- function(version, library) { | ||||
# 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) | |||||
# attempt to download renv | # attempt to download renv | ||||
tarball <- tryCatch(renv_bootstrap_download(version), error = identity) | tarball <- tryCatch(renv_bootstrap_download(version), error = identity) | ||||
if (inherits(tarball, "error")) | if (inherits(tarball, "error")) | ||||
} | } | ||||
renv_bootstrap_tests_running <- function() { | |||||
getOption("renv.tests.running", default = FALSE) | |||||
} | |||||
renv_bootstrap_repos <- function() { | |||||
# check for repos override | |||||
repos <- Sys.getenv("RENV_CONFIG_REPOS_OVERRIDE", unset = NA) | |||||
if (!is.na(repos)) | |||||
return(repos) | |||||
# if we're testing, re-use the test repositories | |||||
if (renv_bootstrap_tests_running()) | |||||
return(getOption("renv.tests.repos")) | |||||
# retrieve current repos | |||||
repos <- getOption("repos") | |||||
# ensure @CRAN@ entries are resolved | |||||
repos[repos == "@CRAN@"] <- "https://cloud.r-project.org" | |||||
# add in renv.bootstrap.repos if set | |||||
default <- c(FALLBACK = "https://cloud.r-project.org") | |||||
extra <- getOption("renv.bootstrap.repos", default = default) | |||||
repos <- c(repos, extra) | |||||
# remove duplicates that might've snuck in | |||||
dupes <- duplicated(repos) | duplicated(names(repos)) | |||||
repos[!dupes] | |||||
} | |||||
renv_bootstrap_download <- function(version) { | |||||
# 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 | |||||
) | |||||
} | |||||
for (method in methods) { | |||||
path <- tryCatch(method(version), error = identity) | |||||
if (is.character(path) && file.exists(path)) | |||||
return(path) | |||||
} | |||||
stop("failed to download renv ", version) | |||||
} | |||||
renv_bootstrap_download_impl <- function(url, destfile) { | renv_bootstrap_download_impl <- function(url, destfile) { | ||||
mode <- "wb" | mode <- "wb" | ||||
if (fixup) | if (fixup) | ||||
mode <- "w+b" | mode <- "w+b" | ||||
download.file( | |||||
utils::download.file( | |||||
url = url, | url = url, | ||||
destfile = destfile, | destfile = destfile, | ||||
mode = mode, | mode = mode, | ||||
} | } | ||||
renv_bootstrap_download <- function(version) { | |||||
methods <- list( | |||||
renv_bootstrap_download_cran_latest, | |||||
renv_bootstrap_download_cran_archive, | |||||
renv_bootstrap_download_github | |||||
) | |||||
for (method in methods) { | |||||
path <- tryCatch(method(version), error = identity) | |||||
if (is.character(path) && file.exists(path)) | |||||
return(path) | |||||
} | |||||
renv_bootstrap_download_cran_latest <- function(version) { | |||||
stop("failed to download renv ", version) | |||||
repos <- renv_bootstrap_download_cran_latest_find(version) | |||||
} | |||||
message("* Downloading renv ", version, " ... ", appendLF = FALSE) | |||||
renv_bootstrap_download_cran_latest <- function(version) { | |||||
downloader <- function(type) { | |||||
# check for renv on CRAN matching this version | |||||
db <- as.data.frame(available.packages(), stringsAsFactors = FALSE) | |||||
tryCatch( | |||||
utils::download.packages( | |||||
pkgs = "renv", | |||||
destdir = tempdir(), | |||||
repos = repos, | |||||
type = type, | |||||
quiet = TRUE | |||||
), | |||||
condition = identity | |||||
) | |||||
entry <- db[db$Package %in% "renv" & db$Version %in% version, ] | |||||
if (nrow(entry) == 0) { | |||||
fmt <- "renv %s is not available from your declared package repositories" | |||||
stop(sprintf(fmt, version)) | |||||
} | } | ||||
message("* Downloading renv ", version, " from CRAN ... ", appendLF = FALSE) | |||||
info <- tryCatch( | |||||
download.packages("renv", destdir = tempdir()), | |||||
condition = identity | |||||
) | |||||
# first, try downloading a binary on Windows + macOS if appropriate | |||||
binary <- | |||||
!identical(.Platform$pkgType, "source") && | |||||
!identical(getOption("pkgType"), "source") && | |||||
Sys.info()[["sysname"]] %in% c("Darwin", "Windows") | |||||
if (binary) { | |||||
info <- downloader(type = "binary") | |||||
if (!inherits(info, "condition")) { | |||||
message("OK (downloaded binary)") | |||||
return(info[1, 2]) | |||||
} | |||||
} | |||||
# otherwise, try downloading a source tarball | |||||
info <- downloader(type = "source") | |||||
if (inherits(info, "condition")) { | if (inherits(info, "condition")) { | ||||
message("FAILED") | message("FAILED") | ||||
return(FALSE) | return(FALSE) | ||||
} | } | ||||
message("OK") | |||||
# report success and return | |||||
message("OK (downloaded source)") | |||||
info[1, 2] | info[1, 2] | ||||
} | } | ||||
renv_bootstrap_download_cran_latest_find <- function(version) { | |||||
all <- renv_bootstrap_repos() | |||||
for (repos in all) { | |||||
db <- tryCatch( | |||||
as.data.frame( | |||||
x = utils::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) { | renv_bootstrap_download_cran_archive <- function(version) { | ||||
name <- sprintf("renv_%s.tar.gz", version) | name <- sprintf("renv_%s.tar.gz", version) | ||||
repos <- getOption("repos") | |||||
repos <- renv_bootstrap_repos() | |||||
urls <- file.path(repos, "src/contrib/Archive/renv", name) | urls <- file.path(repos, "src/contrib/Archive/renv", name) | ||||
destfile <- file.path(tempdir(), name) | destfile <- file.path(tempdir(), name) | ||||
message("* Downloading renv ", version, " from CRAN archive ... ", appendLF = FALSE) | |||||
message("* Downloading renv ", version, " ... ", appendLF = FALSE) | |||||
for (url in urls) { | for (url in urls) { | ||||
return(FALSE) | return(FALSE) | ||||
} | } | ||||
message("Done!") | |||||
message("OK") | |||||
return(destfile) | return(destfile) | ||||
} | } | ||||
} | } | ||||
renv_bootstrap_prefix <- function() { | |||||
renv_bootstrap_platform_prefix <- function() { | |||||
# construct version prefix | # construct version prefix | ||||
version <- paste(R.version$major, R.version$minor, sep = ".") | version <- paste(R.version$major, R.version$minor, sep = ".") | ||||
components <- c(prefix, R.version$platform) | components <- c(prefix, R.version$platform) | ||||
# include prefix if provided by user | # include prefix if provided by user | ||||
prefix <- Sys.getenv("RENV_PATHS_PREFIX") | |||||
if (nzchar(prefix)) | |||||
prefix <- renv_bootstrap_platform_prefix_impl() | |||||
if (!is.na(prefix) && nzchar(prefix)) | |||||
components <- c(prefix, components) | components <- c(prefix, components) | ||||
# build prefix | # build prefix | ||||
} | } | ||||
renv_bootstrap_platform_prefix_impl <- function() { | |||||
# if an explicit prefix has been supplied, use it | |||||
prefix <- Sys.getenv("RENV_PATHS_PREFIX", unset = NA) | |||||
if (!is.na(prefix)) | |||||
return(prefix) | |||||
# if the user has requested an automatic prefix, generate it | |||||
auto <- Sys.getenv("RENV_PATHS_PREFIX_AUTO", unset = NA) | |||||
if (auto %in% c("TRUE", "True", "true", "1")) | |||||
return(renv_bootstrap_platform_prefix_auto()) | |||||
# empty string on failure | |||||
"" | |||||
} | |||||
renv_bootstrap_platform_prefix_auto <- function() { | |||||
prefix <- tryCatch(renv_bootstrap_platform_os(), error = identity) | |||||
if (inherits(prefix, "error") || prefix %in% "unknown") { | |||||
msg <- paste( | |||||
"failed to infer current operating system", | |||||
"please file a bug report at https://github.com/rstudio/renv/issues", | |||||
sep = "; " | |||||
) | |||||
warning(msg) | |||||
} | |||||
prefix | |||||
} | |||||
renv_bootstrap_platform_os <- function() { | |||||
sysinfo <- Sys.info() | |||||
sysname <- sysinfo[["sysname"]] | |||||
# handle Windows + macOS up front | |||||
if (sysname == "Windows") | |||||
return("windows") | |||||
else if (sysname == "Darwin") | |||||
return("macos") | |||||
# check for os-release files | |||||
for (file in c("/etc/os-release", "/usr/lib/os-release")) | |||||
if (file.exists(file)) | |||||
return(renv_bootstrap_platform_os_via_os_release(file, sysinfo)) | |||||
# check for redhat-release files | |||||
if (file.exists("/etc/redhat-release")) | |||||
return(renv_bootstrap_platform_os_via_redhat_release()) | |||||
"unknown" | |||||
} | |||||
renv_bootstrap_platform_os_via_os_release <- function(file, sysinfo) { | |||||
# read /etc/os-release | |||||
release <- utils::read.table( | |||||
file = file, | |||||
sep = "=", | |||||
quote = c("\"", "'"), | |||||
col.names = c("Key", "Value"), | |||||
comment.char = "#", | |||||
stringsAsFactors = FALSE | |||||
) | |||||
vars <- as.list(release$Value) | |||||
names(vars) <- release$Key | |||||
# get os name | |||||
os <- tolower(sysinfo[["sysname"]]) | |||||
# read id | |||||
id <- "unknown" | |||||
for (field in c("ID", "ID_LIKE")) { | |||||
if (field %in% names(vars) && nzchar(vars[[field]])) { | |||||
id <- vars[[field]] | |||||
break | |||||
} | |||||
} | |||||
# read version | |||||
version <- "unknown" | |||||
for (field in c("UBUNTU_CODENAME", "VERSION_CODENAME", "VERSION_ID", "BUILD_ID")) { | |||||
if (field %in% names(vars) && nzchar(vars[[field]])) { | |||||
version <- vars[[field]] | |||||
break | |||||
} | |||||
} | |||||
# join together | |||||
paste(c(os, id, version), collapse = "-") | |||||
} | |||||
renv_bootstrap_platform_os_via_redhat_release <- function() { | |||||
# read /etc/redhat-release | |||||
contents <- readLines("/etc/redhat-release", warn = FALSE) | |||||
# infer id | |||||
id <- if (grepl("centos", contents, ignore.case = TRUE)) | |||||
"centos" | |||||
else if (grepl("redhat", contents, ignore.case = TRUE)) | |||||
"redhat" | |||||
else | |||||
"unknown" | |||||
# try to find a version component (very hacky) | |||||
version <- "unknown" | |||||
parts <- strsplit(contents, "[[:space:]]")[[1L]] | |||||
for (part in parts) { | |||||
nv <- tryCatch(numeric_version(part), error = identity) | |||||
if (inherits(nv, "error")) | |||||
next | |||||
version <- nv[1, 1] | |||||
break | |||||
} | |||||
paste(c("linux", id, version), collapse = "-") | |||||
} | |||||
renv_bootstrap_library_root_name <- function(project) { | |||||
# use project name as-is if requested | |||||
asis <- Sys.getenv("RENV_PATHS_LIBRARY_ROOT_ASIS", unset = "FALSE") | |||||
if (asis) | |||||
return(basename(project)) | |||||
# otherwise, disambiguate based on project's path | |||||
id <- substring(renv_bootstrap_hash_text(project), 1L, 8L) | |||||
paste(basename(project), id, sep = "-") | |||||
} | |||||
renv_bootstrap_library_root <- function(project) { | renv_bootstrap_library_root <- function(project) { | ||||
path <- Sys.getenv("RENV_PATHS_LIBRARY", unset = NA) | path <- Sys.getenv("RENV_PATHS_LIBRARY", unset = NA) | ||||
return(path) | return(path) | ||||
path <- Sys.getenv("RENV_PATHS_LIBRARY_ROOT", unset = NA) | path <- Sys.getenv("RENV_PATHS_LIBRARY_ROOT", unset = NA) | ||||
if (!is.na(path)) | |||||
return(file.path(path, basename(project))) | |||||
if (!is.na(path)) { | |||||
name <- renv_bootstrap_library_root_name(project) | |||||
return(file.path(path, name)) | |||||
} | |||||
file.path(project, "renv/library") | |||||
prefix <- renv_bootstrap_profile_prefix() | |||||
paste(c(project, prefix, "renv/library"), collapse = "/") | |||||
} | } | ||||
paste("renv", loadedversion, sep = "@") | paste("renv", loadedversion, sep = "@") | ||||
fmt <- paste( | 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.", | "Use `renv::restore(packages = \"renv\")` to install renv %2$s into the project library.", | ||||
sep = "\n" | sep = "\n" | ||||
) | ) | ||||
} | } | ||||
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) { | renv_bootstrap_load <- function(project, libpath, version) { | ||||
# try to load renv from the project library | # try to load renv from the project library | ||||
TRUE | TRUE | ||||
} | } | ||||
renv_bootstrap_profile_load <- function(project) { | |||||
# if RENV_PROFILE is already set, just use that | |||||
profile <- Sys.getenv("RENV_PROFILE", unset = NA) | |||||
if (!is.na(profile) && nzchar(profile)) | |||||
return(profile) | |||||
# check for a profile file (nothing to do if it doesn't exist) | |||||
path <- file.path(project, "renv/local/profile") | |||||
if (!file.exists(path)) | |||||
return(NULL) | |||||
# read the profile, and set it if it exists | |||||
contents <- readLines(path, warn = FALSE) | |||||
if (length(contents) == 0L) | |||||
return(NULL) | |||||
# set RENV_PROFILE | |||||
profile <- contents[[1L]] | |||||
if (nzchar(profile)) | |||||
Sys.setenv(RENV_PROFILE = profile) | |||||
profile | |||||
} | |||||
renv_bootstrap_profile_prefix <- function() { | |||||
profile <- renv_bootstrap_profile_get() | |||||
if (!is.null(profile)) | |||||
return(file.path("renv/profiles", profile)) | |||||
} | |||||
renv_bootstrap_profile_get <- function() { | |||||
profile <- Sys.getenv("RENV_PROFILE", unset = "") | |||||
renv_bootstrap_profile_normalize(profile) | |||||
} | |||||
renv_bootstrap_profile_set <- function(profile) { | |||||
profile <- renv_bootstrap_profile_normalize(profile) | |||||
if (is.null(profile)) | |||||
Sys.unsetenv("RENV_PROFILE") | |||||
else | |||||
Sys.setenv(RENV_PROFILE = profile) | |||||
} | |||||
renv_bootstrap_profile_normalize <- function(profile) { | |||||
if (is.null(profile) || profile %in% c("", "default")) | |||||
return(NULL) | |||||
profile | |||||
} | |||||
# load the renv profile, if any | |||||
renv_bootstrap_profile_load(project) | |||||
# construct path to library root | # construct path to library root | ||||
root <- renv_bootstrap_library_root(project) | root <- renv_bootstrap_library_root(project) | ||||
# construct library prefix for platform | # construct library prefix for platform | ||||
prefix <- renv_bootstrap_prefix() | |||||
prefix <- renv_bootstrap_platform_prefix() | |||||
# construct full libpath | # construct full libpath | ||||
libpath <- file.path(root, prefix) | libpath <- file.path(root, prefix) | ||||
if (renv_bootstrap_load(project, libpath, version)) | if (renv_bootstrap_load(project, libpath, version)) | ||||
return(TRUE) | 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) | bootstrap(version, libpath) | ||||
# exit early if we're just testing bootstrap | # exit early if we're just testing bootstrap | ||||
# try again to load | # try again to load | ||||
if (requireNamespace("renv", lib.loc = libpath, quietly = TRUE)) { | 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()) | return(renv::load()) | ||||
} | } | ||||
{ | |||||
"R": { | |||||
"Version": "3.6.3", | |||||
"Repositories": [ | |||||
{ | |||||
"Name": "CRAN", | |||||
"URL": "https://cloud.r-project.org" | |||||
} | |||||
] | |||||
}, | |||||
"Packages": { | |||||
"renv": { | |||||
"Package": "renv", | |||||
"Version": "0.13.0", | |||||
"Source": "Repository", | |||||
"Repository": "CRAN", | |||||
"Hash": "9f10d9db5b50400c348920c5c603385e" | |||||
} | |||||
} | |||||
} |