From 6f76de4e61e75acfc4817f7fc04e29fe38e5ded9 Mon Sep 17 00:00:00 2001 From: richelbilderbeek Date: Fri, 4 Feb 2022 09:44:32 +0100 Subject: [PATCH 1/9] Test package --- .github/workflows/R-CMD-check.yaml | 34 ++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/R-CMD-check.yaml diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml new file mode 100644 index 0000000..efbf037 --- /dev/null +++ b/.github/workflows/R-CMD-check.yaml @@ -0,0 +1,34 @@ +on: + push: + pull_request: + +name: R-CMD-check + +jobs: + R-CMD-check: + + runs-on: ubuntu-latest + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + + steps: + - uses: actions/checkout@v2 + + - uses: r-lib/actions/setup-r@v1 + + - uses: r-lib/actions/setup-pandoc@v1 + + - name: Install libcurl4-openssl-dev + run: sudo apt install -qq libcurl4-openssl-dev + + - name: Install dependencies + run: | + install.packages(c("remotes", "rcmdcheck")) + remotes::install_deps(dependencies = TRUE) + remotes::install_cran("rcmdcheck") + shell: Rscript {0} + + - name: Check + run: rcmdcheck::rcmdcheck(args = "--no-manual", error_on = "error") + shell: Rscript {0} + From 7f5b58421ea50cae8a8855917f7fc557d2831afd Mon Sep 17 00:00:00 2001 From: richelbilderbeek Date: Fri, 4 Feb 2022 09:47:46 +0100 Subject: [PATCH 2/9] Run code from https://github.com/OchoaLab/genio/issues/6 --- .github/workflows/run_issue_6.yaml | 33 ++++++++++++++ scripts/issue_6.R | 73 ++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 .github/workflows/run_issue_6.yaml create mode 100644 scripts/issue_6.R diff --git a/.github/workflows/run_issue_6.yaml b/.github/workflows/run_issue_6.yaml new file mode 100644 index 0000000..a1d17a3 --- /dev/null +++ b/.github/workflows/run_issue_6.yaml @@ -0,0 +1,33 @@ +on: + push: + pull_request: + +name: R-CMD-check + +jobs: + R-CMD-check: + + runs-on: ubuntu-latest + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + + steps: + - uses: actions/checkout@v2 + + - uses: r-lib/actions/setup-r@v1 + + - uses: r-lib/actions/setup-pandoc@v1 + + - name: Install libcurl4-openssl-dev + run: sudo apt install -qq libcurl4-openssl-dev + + - name: Install dependencies + run: | + install.packages(c("remotes", "rcmdcheck")) + remotes::install_deps(dependencies = TRUE) + remotes::install_github("OchoaLab/genio") + shell: Rscript {0} + + - name: Run the code from https://github.com/OchoaLab/genio/issues/6 + run: Rscript scripts/issue_6.R + diff --git a/scripts/issue_6.R b/scripts/issue_6.R new file mode 100644 index 0000000..10d6c91 --- /dev/null +++ b/scripts/issue_6.R @@ -0,0 +1,73 @@ +# Code from https://github.com/OchoaLab/genio/issues/6 + +################################################################################ +# +# 1. `write_bed` works as expected, from documentation example code +# +################################################################################ +file_out <- tempfile('delete-me-example', fileext = '.bed') # will also work without extension +X <- rbinom(10, 2, 0.5) +X[sample(10, 3)] <- NA +X <- matrix(X, nrow = 5, ncol = 2) +genio::write_bed(file_out, X) # WORKS + +################################################################################ +# +# 2. `write_bed` works as expected, when saving +# * in a normalized path +# * in a sub-folder that exists +# +################################################################################ +file_out <- file.path( + rappdirs::user_cache_dir(appname = "my_r_package_name"), + "sub_folder_2", "my_filename" +) +dir.create(dirname(file_out), recursive = TRUE) +file_out <- normalizePath(file_out, mustWork = FALSE) +# +# On my computer: +# file_out == "/home/richel/.cache/my_r_package_name/sub_folder/my_filename" +# +X <- rbinom(10, 2, 0.5) +X[sample(10, 3)] <- NA +X <- matrix(X, nrow = 5, ncol = 2) +genio::write_bed(file_out, X) # WORKS + +################################################################################ +# +# 3. `write_bed` crashes ruthlessly, when saving +# * in a normalized path +# * in a sub-folder that does not exist +# +################################################################################ +file_out <- file.path( + rappdirs::user_cache_dir(appname = "my_r_package_name"), + "sub_folder_3", "my_filename" +) +file_out <- normalizePath(file_out, mustWork = FALSE) +# +# On my computer: +# file_out == "/home/richel/.cache/my_r_package_name/sub_folder/my_filename" +# +X <- rbinom(10, 2, 0.5) +X[sample(10, 3)] <- NA +X <- matrix(X, nrow = 5, ncol = 2) +genio::write_bed(file_out, X) # CAUSES ABORT + +################################################################################ +# +# 4. `write_bed` crashes ruthlessly, when saving +# * in an un-normalized path +# * in a sub-folder that does exist +# +################################################################################ +file_out <- file.path( + rappdirs::user_cache_dir(appname = "my_r_package_name"), + "sub_folder_4", "my_filename" +) +dir.create(dirname(file_out), recursive = TRUE) +testthat::expect_equal(file_out, "~/.cache/my_r_package_name/sub_folder_4/my_filename") +X <- rbinom(10, 2, 0.5) +X[sample(10, 3)] <- NA +X <- matrix(X, nrow = 5, ncol = 2) +genio::write_bed(file_out, X) # CAUSES ABORT From 4de1b33ca6c3d19af7708fee3a4726b14a290920 Mon Sep 17 00:00:00 2001 From: richelbilderbeek Date: Fri, 4 Feb 2022 10:02:40 +0100 Subject: [PATCH 3/9] Install snpStats from Bioconductor --- .github/workflows/R-CMD-check.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index efbf037..b16442f 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -24,6 +24,7 @@ jobs: - name: Install dependencies run: | install.packages(c("remotes", "rcmdcheck")) + remotes::install_bioc("snpStats") remotes::install_deps(dependencies = TRUE) remotes::install_cran("rcmdcheck") shell: Rscript {0} From 325c7c16d60a0ab40f8e330f1bfaa90f3cd75c88 Mon Sep 17 00:00:00 2001 From: richelbilderbeek Date: Fri, 4 Feb 2022 10:02:57 +0100 Subject: [PATCH 4/9] Use correct name for Action --- .github/workflows/run_issue_6.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/run_issue_6.yaml b/.github/workflows/run_issue_6.yaml index a1d17a3..e4c0c66 100644 --- a/.github/workflows/run_issue_6.yaml +++ b/.github/workflows/run_issue_6.yaml @@ -2,10 +2,10 @@ on: push: pull_request: -name: R-CMD-check +name: run_issue_6 jobs: - R-CMD-check: + run_issue_6: runs-on: ubuntu-latest env: @@ -16,8 +16,6 @@ jobs: - uses: r-lib/actions/setup-r@v1 - - uses: r-lib/actions/setup-pandoc@v1 - - name: Install libcurl4-openssl-dev run: sudo apt install -qq libcurl4-openssl-dev @@ -25,6 +23,7 @@ jobs: run: | install.packages(c("remotes", "rcmdcheck")) remotes::install_deps(dependencies = TRUE) + remotes::install_bioc("snpStats") remotes::install_github("OchoaLab/genio") shell: Rscript {0} From 174e74299dbac11a0bedb3988e82a132785f2e27 Mon Sep 17 00:00:00 2001 From: richelbilderbeek Date: Fri, 4 Feb 2022 10:04:30 +0100 Subject: [PATCH 5/9] No need to install suggested packages --- .github/workflows/run_issue_6.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/run_issue_6.yaml b/.github/workflows/run_issue_6.yaml index e4c0c66..81a4377 100644 --- a/.github/workflows/run_issue_6.yaml +++ b/.github/workflows/run_issue_6.yaml @@ -23,7 +23,6 @@ jobs: run: | install.packages(c("remotes", "rcmdcheck")) remotes::install_deps(dependencies = TRUE) - remotes::install_bioc("snpStats") remotes::install_github("OchoaLab/genio") shell: Rscript {0} From 23cbb3b9b949d69b08dbfb4acf8aaa77abc21d0b Mon Sep 17 00:00:00 2001 From: richelbilderbeek Date: Fri, 4 Feb 2022 10:38:36 +0100 Subject: [PATCH 6/9] '.github' is not an R folder --- .Rbuildignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.Rbuildignore b/.Rbuildignore index 630afe2..ca717ac 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -6,3 +6,4 @@ unpub ^Meta$ ^cran-comments\.md$ ^CRAN-RELEASE$ +^\.github$ From a3e83680b5cc0123e9a06d128e7fe70373ee1ed5 Mon Sep 17 00:00:00 2001 From: richelbilderbeek Date: Fri, 4 Feb 2022 10:39:20 +0100 Subject: [PATCH 7/9] Need 'rappdirs' for #6 --- .github/workflows/run_issue_6.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run_issue_6.yaml b/.github/workflows/run_issue_6.yaml index 81a4377..3584af4 100644 --- a/.github/workflows/run_issue_6.yaml +++ b/.github/workflows/run_issue_6.yaml @@ -21,7 +21,7 @@ jobs: - name: Install dependencies run: | - install.packages(c("remotes", "rcmdcheck")) + install.packages(c("remotes", "rcmdcheck", "rappdirs")) remotes::install_deps(dependencies = TRUE) remotes::install_github("OchoaLab/genio") shell: Rscript {0} From 36215e6f7bf982b986535305e32470affcb27e3c Mon Sep 17 00:00:00 2001 From: richelbilderbeek Date: Fri, 4 Feb 2022 11:03:50 +0100 Subject: [PATCH 8/9] Confirm #6 that genio gives a friendly R error message when folder is absent --- scripts/issue_6.R | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/scripts/issue_6.R b/scripts/issue_6.R index 10d6c91..94ecebc 100644 --- a/scripts/issue_6.R +++ b/scripts/issue_6.R @@ -52,7 +52,16 @@ file_out <- normalizePath(file_out, mustWork = FALSE) X <- rbinom(10, 2, 0.5) X[sample(10, 3)] <- NA X <- matrix(X, nrow = 5, ncol = 2) -genio::write_bed(file_out, X) # CAUSES ABORT + +# The original problem: +# +# genio::write_bed(file_out, X) # CAUSES ABORT +# +# This is fixed now: it is handled with an R error message +# (i.e. no system crash) +testthat::expect_error( + genio::write_bed(file_out, X) +) ################################################################################ # From 9bd8e8b6b425851ab94e90ad9e345eaa2d6e7c25 Mon Sep 17 00:00:00 2001 From: richelbilderbeek Date: Fri, 29 Apr 2022 11:55:44 +0200 Subject: [PATCH 9/9] Add GitHub Actions, fix #11 --- .github/workflows/R-CMD-check.yaml | 35 ++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/R-CMD-check.yaml diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml new file mode 100644 index 0000000..b16442f --- /dev/null +++ b/.github/workflows/R-CMD-check.yaml @@ -0,0 +1,35 @@ +on: + push: + pull_request: + +name: R-CMD-check + +jobs: + R-CMD-check: + + runs-on: ubuntu-latest + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + + steps: + - uses: actions/checkout@v2 + + - uses: r-lib/actions/setup-r@v1 + + - uses: r-lib/actions/setup-pandoc@v1 + + - name: Install libcurl4-openssl-dev + run: sudo apt install -qq libcurl4-openssl-dev + + - name: Install dependencies + run: | + install.packages(c("remotes", "rcmdcheck")) + remotes::install_bioc("snpStats") + remotes::install_deps(dependencies = TRUE) + remotes::install_cran("rcmdcheck") + shell: Rscript {0} + + - name: Check + run: rcmdcheck::rcmdcheck(args = "--no-manual", error_on = "error") + shell: Rscript {0} +