From 83d6c7d4cde2f7e8bed4ffb552d60653a79e8acd Mon Sep 17 00:00:00 2001 From: Bruno Rodrigues Date: Sat, 15 Jul 2023 23:16:06 +0200 Subject: [PATCH] readme --- DESCRIPTION | 2 +- NAMESPACE | 4 +- NEWS.md | 2 +- R/my_fun.R | 12 --- R/rix-package.R | 6 -- R/utils-pipe.R | 14 --- R/zzz.R | 7 ++ README.Rmd | 105 ++++++++++++++++++++- README.md | 150 ++++++++++++++++++++++++++++++ dev/0-dev_history.Rmd | 8 +- dev/build_envs.Rmd | 2 +- dev/config_fusen.yaml | 26 +++--- dev/config_not_registered.csv | 2 + dev/save_r_nix_revs.Rmd | 2 +- dev/zzz.Rmd | 16 ++++ man/figures/README-pressure-1.png | Bin 0 -> 7161 bytes man/my_fun.Rd | 17 ---- man/pipe.Rd | 20 ---- man/rix-package.Rd | 15 --- tests/testthat/test-my_fun.R | 5 - vignettes/minimal.Rmd | 33 ------- 21 files changed, 303 insertions(+), 145 deletions(-) delete mode 100644 R/my_fun.R delete mode 100644 R/rix-package.R delete mode 100644 R/utils-pipe.R create mode 100644 R/zzz.R create mode 100644 README.md create mode 100644 dev/config_not_registered.csv create mode 100644 dev/zzz.Rmd create mode 100644 man/figures/README-pressure-1.png delete mode 100644 man/my_fun.Rd delete mode 100644 man/pipe.Rd delete mode 100644 man/rix-package.Rd delete mode 100644 tests/testthat/test-my_fun.R delete mode 100644 vignettes/minimal.Rmd diff --git a/DESCRIPTION b/DESCRIPTION index 14e86e89..393411e4 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -10,7 +10,7 @@ License: GPL (>= 3) Depends: R (>= 2.10) Imports: - magrittr + utils Suggests: dplyr, janitor, diff --git a/NAMESPACE b/NAMESPACE index 5da41b13..acff3b04 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,8 +1,6 @@ # Generated by roxygen2: do not edit by hand -export("%>%") export(available_r) export(find_rev) -export(my_fun) export(rix) -importFrom(magrittr,"%>%") +importFrom(utils,data) diff --git a/NEWS.md b/NEWS.md index 2f98f1a1..a6e1d8bc 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,3 @@ # rix (development version) -* Initial CRAN submission. +* Basic functionality added. diff --git a/R/my_fun.R b/R/my_fun.R deleted file mode 100644 index eededa75..00000000 --- a/R/my_fun.R +++ /dev/null @@ -1,12 +0,0 @@ -# WARNING - Generated by {fusen} from dev/flat_minimal_package.Rmd: do not edit by hand - -#' my_fun Title -#' -#' @return 1 -#' @export -#' -#' @examples -#' my_fun() -my_fun <- function() { - 1 -} diff --git a/R/rix-package.R b/R/rix-package.R deleted file mode 100644 index a65cf643..00000000 --- a/R/rix-package.R +++ /dev/null @@ -1,6 +0,0 @@ -#' @keywords internal -"_PACKAGE" - -## usethis namespace: start -## usethis namespace: end -NULL diff --git a/R/utils-pipe.R b/R/utils-pipe.R deleted file mode 100644 index fd0b1d13..00000000 --- a/R/utils-pipe.R +++ /dev/null @@ -1,14 +0,0 @@ -#' Pipe operator -#' -#' See \code{magrittr::\link[magrittr:pipe]{\%>\%}} for details. -#' -#' @name %>% -#' @rdname pipe -#' @keywords internal -#' @export -#' @importFrom magrittr %>% -#' @usage lhs \%>\% rhs -#' @param lhs A value or the magrittr placeholder. -#' @param rhs A function call using the magrittr semantics. -#' @return The result of calling `rhs(lhs)`. -NULL diff --git a/R/zzz.R b/R/zzz.R new file mode 100644 index 00000000..8b1be328 --- /dev/null +++ b/R/zzz.R @@ -0,0 +1,7 @@ +# WARNING - Generated by {fusen} from dev/zzz.Rmd: do not edit by hand + +#' zzz +#' +#' Global imports +#' @importFrom utils data +utils::globalVariables(c("r_nix_revs")) diff --git a/README.Rmd b/README.Rmd index 7ffffdd5..b105fcf4 100644 --- a/README.Rmd +++ b/README.Rmd @@ -13,13 +13,114 @@ knitr::opts_chunk$set( ) ``` -# rix +# Rix: Reproducible Environments with Nix + +## Introduction [![R-CMD-check](https://github.com/b-rodrigues/rix/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/b-rodrigues/rix/actions/workflows/R-CMD-check.yaml) -The goal of rix is to ... +**WARNING: This package is in very early development. I've literally have only +worked 4 hours on it. DO NOT USE IT!** + +`{rix}` is an R package that provides helper functions to help you setup +development environments that contain all the required packages that you need +for your project. This is achieved by using the Nix package manager that you +must install separately. The Nix package manager is extremely powerful: with it, +it is possible to work on totally reproducible development environments, and +even install old releases of R and R packages. With Nix, it is essentially +possible to replace `{renv}` and Docker combined. Nix is available for Linux, +macOS and Windows. + +## The Nix package manager + +Nix is a piece of software that can be installed on your computer (regardless of +OS) and can be used to install software like with any other package manager. If +you're familiar with the Ubuntu Linux distribution, you likely have used +`apt-get` to install software. On macOS, you may have used `homebrew` for +similar purposes. Nix functions in a similar way, but has many advantages over +classic package managers. The main advantage of Nix, at least for our purposes, +is that its repository of software is huge. As of writing, it contains more than +80'000 packages, and the entirety of CRAN is available through Nix's +repositories. This means that using Nix, it is possible to install not only R, +but also all the packages required for your project. The obvious question is why +use Nix instead of simply installing R and R packages as usual. The answer is +that Nix makes sure to install every dependency of any package, up to required +system libraries. For example, the `{xlsx}` package requires the Java +programming language to be installed on your computer to successfully install. +This can be difficult to achieve, and `{xlsx}` bullied many R developers +throughout the years (especially those using a Linux distribution, `sudo R CMD +javareconf` still plagues my nightmares). But with Nix, it suffices to declare +that we want the `{xlsx}` package for our project, and Nix figures out +automatically that Java is required and installs and configures it. It all just +happens without any required intervention from the user. The second advantage of +Nix is that it is possible to *pin* a certain *revision* for our project. +Pinning a revision ensures that every package that Nix installs will always be +at exactly the same versions, regardless of when in the future the packages get +installed. + +## Rix workflow + +The idea of `{rix}` is for you to declare the environment you need, and then +continue working on that isolated environment. It is possible to have as many +environments as projects. Each environment is isolated (or not, it's up to you). + +The main function of `{rix}` is called `rix()`. `rix()` has 4 arguments: + +- the R version you need for your project +- a list of R packages that your project needs +- whether you want to use RStudio as an IDE for your project +- a path to save a file called `default.nix`. + +### default.nix + +The Nix package manager can be used to build reproducible development +environments according to the specifications found in a file called +`default.nix`. To make it easier for R programmers to use Nix, `{rix}` can be +used to write this file for you. Once this file has been written, go to where +you chose to write it (ideally in a new, empty folder that will be the root +folder of your project) and use the Nix package manager to build the environment. +Call the following function in a terminal: + +``` +nix-build +``` + +Once Nix done building the environment, you can start working on it interactively +by using the following command: + +``` +nix-shell +``` + +You will *drop* in a Nix shell. You can now call the IDE of your choice. For +RStudio, simply call: + +``` +rstudio +``` + +This will start RStudio. RStudio will use the version of R and library of packages +from that environment. + +### Running programs from an environment + +You could create a bash script that you put in the path to make this process +more streamlined. For example, if your project is called `housing`, you could +create this script and execute it to start your project: + +``` +!#/bin/bash +nix-shell /absolute/path/to/housing/default.nix --run rstudio +``` + +This will execute RStudio in the environment for the `housing` project. If you +use `{targets}` you could execute the pipeline in the environment by running: + +``` +nix-shell /absolute/path/to/housing/default.nix --run Rscript -e 'targets::tar_make()' +``` ## Installation diff --git a/README.md b/README.md new file mode 100644 index 00000000..7819fe35 --- /dev/null +++ b/README.md @@ -0,0 +1,150 @@ + + + +# Rix: Reproducible Environments with Nix + +## Introduction + + + +[![R-CMD-check](https://github.com/b-rodrigues/rix/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/b-rodrigues/rix/actions/workflows/R-CMD-check.yaml) + + +**WARNING: This package is in very early development. I’ve literally +have only worked 4 hours on it. DO NOT USE IT\!** + +`{rix}` is an R package that provides helper functions to help you setup +development environments that contain all the required packages that you +need for your project. This is achieved by using the Nix package manager +that you must install separately. The Nix package manager is extremely +powerful: with it, it is possible to work on totally reproducible +development environments, and even install old releases of R and R +packages. With Nix, it is essentially possible to replace `{renv}` and +Docker combined. Nix is available for Linux, macOS and Windows. + +## The Nix package manager + +Nix is a piece of software that can be installed on your computer +(regardless of OS) and can be used to install software like with any +other package manager. If you’re familiar with the Ubuntu Linux +distribution, you likely have used `apt-get` to install software. On +macOS, you may have used `homebrew` for similar purposes. Nix functions +in a similar way, but has many advantages over classic package managers. +The main advantage of Nix, at least for our purposes, is that its +repository of software is huge. As of writing, it contains more than +80’000 packages, and the entirety of CRAN is available through Nix’s +repositories. This means that using Nix, it is possible to install not +only R, but also all the packages required for your project. The obvious +question is why use Nix instead of simply installing R and R packages as +usual. The answer is that Nix makes sure to install every dependency of +any package, up to required system libraries. For example, the `{xlsx}` +package requires the Java programming language to be installed on your +computer to successfully install. This can be difficult to achieve, and +`{xlsx}` bullied many R developers throughout the years (especially +those using a Linux distribution, `sudo R CMD javareconf` still plagues +my nightmares). But with Nix, it suffices to declare that we want the +`{xlsx}` package for our project, and Nix figures out automatically that +Java is required and installs and configures it. It all just happens +without any required intervention from the user. The second advantage of +Nix is that it is possible to *pin* a certain *revision* for our +project. Pinning a revision ensures that every package that Nix installs +will always be at exactly the same versions, regardless of when in the +future the packages get installed. + +## Rix workflow + +The idea of `{rix}` is for you to declare the environment you need, and +then continue working on that isolated environment. It is possible to +have as many environments as projects. Each environment is isolated (or +not, it’s up to you). + +The main function of `{rix}` is called `rix()`. `rix()` has 4 arguments: + + - the R version you need for your project + - a list of R packages that your project needs + - whether you want to use RStudio as an IDE for your project + - a path to save a file called `default.nix`. + +### default.nix + +The Nix package manager can be used to build reproducible development +environments according to the specifications found in a file called +`default.nix`. To make it easier for R programmers to use Nix, `{rix}` +can be used to write this file for you. Once this file has been written, +go to where you chose to write it (ideally in a new, empty folder that +will be the root folder of your project) and use the Nix package manager +to build the environment. Call the following function in a terminal: + + nix-build + +Once Nix done building the environment, you can start working on it +interactively by using the following command: + + nix-shell + +You will *drop* in a Nix shell. You can now call the IDE of your choice. +For RStudio, simply call: + + rstudio + +This will start RStudio. RStudio will use the version of R and library +of packages from that environment. + +### Running programs from an environment + +You could create a bash script that you put in the path to make this +process more streamlined. For example, if your project is called +`housing`, you could create this script and execute it to start your +project: + + !#/bin/bash + nix-shell /absolute/path/to/housing/default.nix --run rstudio + +This will execute RStudio in the environment for the `housing` project. +If you use `{targets}` you could execute the pipeline in the environment +by running: + + nix-shell /absolute/path/to/housing/default.nix --run Rscript -e 'targets::tar_make()' + +## Installation + +You can install the development version of rix from +[GitHub](https://github.com/) with: + +``` r +# install.packages("devtools") +devtools::install_github("b-rodrigues/rix") +``` + +## Example + +This is a basic example which shows you how to solve a common problem: + +``` r +library(rix) +## basic example code +``` + +What is special about using `README.Rmd` instead of just `README.md`? +You can include R chunks like so: + +``` r +summary(cars) +#> speed dist +#> Min. : 4.0 Min. : 2.00 +#> 1st Qu.:12.0 1st Qu.: 26.00 +#> Median :15.0 Median : 36.00 +#> Mean :15.4 Mean : 42.98 +#> 3rd Qu.:19.0 3rd Qu.: 56.00 +#> Max. :25.0 Max. :120.00 +``` + +You’ll still need to render `README.Rmd` regularly, to keep `README.md` +up-to-date. `devtools::build_readme()` is handy for this. + +You can also embed plots, for example: + + + +In that case, don’t forget to commit and push the resulting figure +files, so they display on GitHub and CRAN. diff --git a/dev/0-dev_history.Rmd b/dev/0-dev_history.Rmd index 12616f2f..d9b89bf7 100755 --- a/dev/0-dev_history.Rmd +++ b/dev/0-dev_history.Rmd @@ -19,7 +19,7 @@ fusen::fill_description( Title = "Rix: Reproducible Environments with Nix", Description = "Provides helper functions to create reproducible development environments using the Nix package manager.", `Authors@R` = c( - person("Bruno", "Rodrigues", email = "brodriguesco@protonmail.com", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-3211-3689")) + person("Bruno", "Rodrigues", email = "bruno@brodrigues.co", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-3211-3689")) ) ) ) @@ -94,6 +94,12 @@ fusen::inflate(flat_file = "dev/data_doc.Rmd", overwrite = TRUE) ``` +```{r} +fusen::inflate(flat_file = "dev/zzz.Rmd", + vignette_name = NA, + overwrite = TRUE) +``` + # Package development tools ## Use once diff --git a/dev/build_envs.Rmd b/dev/build_envs.Rmd index fdea6db6..3147ecaf 100644 --- a/dev/build_envs.Rmd +++ b/dev/build_envs.Rmd @@ -1,5 +1,5 @@ --- -title: "RIX: functions" +title: "Build envs" output: html_document editor_options: chunk_output_type: console diff --git a/dev/config_fusen.yaml b/dev/config_fusen.yaml index 413db6da..1e06abc7 100644 --- a/dev/config_fusen.yaml +++ b/dev/config_fusen.yaml @@ -24,19 +24,6 @@ data_doc.Rmd: check: true document: true overwrite: 'yes' -flat_minimal_package.Rmd: - path: dev/flat_minimal_package.Rmd - state: active - R: R/my_fun.R - tests: tests/testthat/test-my_fun.R - vignettes: vignettes/minimal.Rmd - inflate: - flat_file: dev/flat_minimal_package.Rmd - vignette_name: Minimal - open_vignette: true - check: true - document: true - overwrite: ask save_r_nix_revs.Rmd: path: dev/save_r_nix_revs.Rmd state: active @@ -50,3 +37,16 @@ save_r_nix_revs.Rmd: check: true document: true overwrite: 'yes' +zzz.Rmd: + path: dev/zzz.Rmd + state: active + R: R/zzz.R + tests: [] + vignettes: [] + inflate: + flat_file: dev/zzz.Rmd + vignette_name: .na + open_vignette: true + check: true + document: true + overwrite: 'yes' diff --git a/dev/config_not_registered.csv b/dev/config_not_registered.csv new file mode 100644 index 00000000..6482d100 --- /dev/null +++ b/dev/config_not_registered.csv @@ -0,0 +1,2 @@ +"type","path","origin" +"R","R/zzz.R","Possibly deprecated file. Please check its link with detected flat source: dev/zzz.Rmd" diff --git a/dev/save_r_nix_revs.Rmd b/dev/save_r_nix_revs.Rmd index 175caebc..df829853 100644 --- a/dev/save_r_nix_revs.Rmd +++ b/dev/save_r_nix_revs.Rmd @@ -1,5 +1,5 @@ --- -title: "Get the Nix revisions for old releases of R" +title: "Save the Nix Package Versions data" output: html_document editor_options: chunk_output_type: console diff --git a/dev/zzz.Rmd b/dev/zzz.Rmd new file mode 100644 index 00000000..2998fc7d --- /dev/null +++ b/dev/zzz.Rmd @@ -0,0 +1,16 @@ +--- +title: "ZZZ" +output: html_document +editor_options: + chunk_output_type: console +--- + +## zzz + +```{r function-zzz, eval = F} +#' zzz +#' +#' Global imports +#' @importFrom utils data +utils::globalVariables(c("r_nix_revs")) +``` diff --git a/man/figures/README-pressure-1.png b/man/figures/README-pressure-1.png new file mode 100644 index 0000000000000000000000000000000000000000..b1318d48a916a864190f138cb93136f1dea0e980 GIT binary patch literal 7161 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\%} -\alias{\%>\%} -\title{Pipe operator} -\usage{ -lhs \%>\% rhs -} -\arguments{ -\item{lhs}{A value or the magrittr placeholder.} - -\item{rhs}{A function call using the magrittr semantics.} -} -\value{ -The result of calling \code{rhs(lhs)}. -} -\description{ -See \code{magrittr::\link[magrittr:pipe]{\%>\%}} for details. -} -\keyword{internal} diff --git a/man/rix-package.Rd b/man/rix-package.Rd deleted file mode 100644 index ac35ecd7..00000000 --- a/man/rix-package.Rd +++ /dev/null @@ -1,15 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/rix-package.R -\docType{package} -\name{rix-package} -\alias{rix} -\alias{rix-package} -\title{rix: Rix: Reproducible Environments With Nix} -\description{ -Provides helper functions to create reproducible development environments using the Nix package manager. -} -\author{ -\strong{Maintainer}: Bruno Rodrigues \email{brodriguesco@protonmail.com} (\href{https://orcid.org/0000-0002-3211-3689}{ORCID}) - -} -\keyword{internal} diff --git a/tests/testthat/test-my_fun.R b/tests/testthat/test-my_fun.R deleted file mode 100644 index e650303d..00000000 --- a/tests/testthat/test-my_fun.R +++ /dev/null @@ -1,5 +0,0 @@ -# WARNING - Generated by {fusen} from dev/flat_minimal_package.Rmd: do not edit by hand - -test_that("my_fun works", { - -}) diff --git a/vignettes/minimal.Rmd b/vignettes/minimal.Rmd deleted file mode 100644 index f593393c..00000000 --- a/vignettes/minimal.Rmd +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Minimal" -output: rmarkdown::html_vignette -vignette: > - %\VignetteIndexEntry{minimal} - %\VignetteEngine{knitr::rmarkdown} - %\VignetteEncoding{UTF-8} ---- - -```{r, include = FALSE} -knitr::opts_chunk$set( - collapse = TRUE, - comment = "#>" -) -``` - -```{r setup} -library(rix) -``` - - - - - - -# my_fun - -```{r examples-my_fun} -my_fun() -``` -