All this without having to write a DESCRIPTION file by hand. What if we are not writing an R package and wanted to combine the best of both approaches? – A loosely defined project with just strict-enough versioning requirements. This approach often leads to leaner installation. So what we have is a package-based workflow combined with a “no breaking changes” philosophy to version requirements. In this case, exact versions are managed only to the extent of avoiding breaking changes (given that testing can surface these). ![]() This is the main use case for dependency management-oriented packages, such as remotes and pak. On the other end of the spectrum, we have package-based development. In our previous post we covered how to manage dependencies with the renv package: A loosely defined project that is combined with strict versioning requirements, often erring on the side of “more dependencies are safer”. This information is registered in a lock file, which serves as the manifest for recreating the exact replica of the environment.įull reproducibility is often required for reports, markdown-based documents, and scripts. This requires knowing the exact package versions and the source where it was installed from (CRAN, remotes, local files). Tools like packrat, renv, and capsule let you go to great lengths to make your R projects perfectly reproducible. In this post, I show you where the deps package fits in and how this can be a great choice for dependency management for Docker-based workflows. Luckily, the tools have evolved quite a bit over the past few years. ![]() ![]() When building Docker images for your R-based applications, the biggest hurdle is knowing exactly which packages and system libraries your package depends on. The deps package gives you a lightweight option to manage package dependencies and you can install these inside containers.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |