From 4d4aa87e7475057e5a1c01e4dd4403f49cf27e64 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Thu, 4 Sep 2025 12:01:45 +0200 Subject: [PATCH 01/14] Add a job for no quarto installed on all OS --- .github/workflows/R-CMD-check.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index a045f7ff..ba28d6fa 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -27,15 +27,18 @@ jobs: config: - {os: macos-latest, r: 'release'} - {os: macos-latest, r: 'release', quarto: 'pre-release'} + - {os: macos-latest, r: 'release', quarto: false} - {os: windows-latest, r: 'release'} - {os: windows-latest, r: 'release', quarto: 'pre-release'} + - {os: windows-latest, r: 'release', quarto: false} # use 4.1 to check with rtools40's older compiler - {os: windows-latest, r: '4.1'} - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'} - {os: ubuntu-latest, r: 'release'} - {os: ubuntu-latest, r: 'release', quarto: 'pre-release'} + - {os: ubuntu-latest, r: 'release', quarto: false} - {os: ubuntu-latest, r: 'oldrel-1'} - {os: ubuntu-latest, r: 'oldrel-2'} - {os: ubuntu-latest, r: 'oldrel-3'} @@ -49,6 +52,7 @@ jobs: - uses: actions/checkout@v4 - uses: quarto-dev/quarto-actions/setup@v2 + if: matrix.config.quarto != false env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -70,6 +74,7 @@ jobs: # install the package itself as we register vignette engine extra-packages: any::rcmdcheck, local::. needs: check + install-quarto: false - uses: r-lib/actions/check-r-package@v2 with: From 28a5efc807a8446b56aba0688842e651fd79e56a Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Thu, 4 Sep 2025 12:16:22 +0200 Subject: [PATCH 02/14] don't install pandoc either it should not be needed --- .github/workflows/R-CMD-check.yaml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index ba28d6fa..489ab4c9 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -59,10 +59,6 @@ jobs: version: ${{ matrix.config.quarto || 'release' }} tinytex: true - - # replace with setting up QUARTO Pandoc for rmarkdown - - uses: r-lib/actions/setup-pandoc@v2 - - uses: r-lib/actions/setup-r@v2 with: r-version: ${{ matrix.config.r }} @@ -75,6 +71,7 @@ jobs: extra-packages: any::rcmdcheck, local::. needs: check install-quarto: false + install-pandoc: false - uses: r-lib/actions/check-r-package@v2 with: From 167a93aec13be63ab529e831db2d3d738b18b1f3 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Thu, 4 Sep 2025 12:30:52 +0200 Subject: [PATCH 03/14] Add no build vignette when quarto is not available --- .github/workflows/R-CMD-check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 489ab4c9..e58a8e69 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -76,4 +76,4 @@ jobs: - uses: r-lib/actions/check-r-package@v2 with: upload-snapshots: true - build_args: 'c("--no-manual","--compact-vignettes=gs+qpdf")' + build_args: ${{ format('c("--no-manual","--compact-vignettes=gs+qpdf"{0})', matrix.config.quarto == false && ',"--no-build-vignettes"' || '') }} From a33f876285a7b53e609a5e272f022300916d7eb0 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Thu, 4 Sep 2025 12:34:39 +0200 Subject: [PATCH 04/14] Indicate no quarto in job label --- .github/workflows/R-CMD-check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index e58a8e69..c0f9ec01 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -19,7 +19,7 @@ jobs: R-CMD-check: runs-on: ${{ matrix.config.os }} - name: ${{ matrix.config.os }} (${{ matrix.config.r }}) [Quarto ${{ matrix.config.quarto || 'release' }}] + name: ${{ matrix.config.os }} (${{ matrix.config.r }}) [${{ matrix.config.quarto == false && 'No'}}Quarto ${{ matrix.config.quarto || 'release' }}] strategy: fail-fast: false From fdfe8e262fbc97bd3ffb49becd08c74b5615545d Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Thu, 4 Sep 2025 12:38:51 +0200 Subject: [PATCH 05/14] correctly check for false only --- .github/workflows/R-CMD-check.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index c0f9ec01..6d9fa56e 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -19,7 +19,7 @@ jobs: R-CMD-check: runs-on: ${{ matrix.config.os }} - name: ${{ matrix.config.os }} (${{ matrix.config.r }}) [${{ matrix.config.quarto == false && 'No'}}Quarto ${{ matrix.config.quarto || 'release' }}] + name: ${{ matrix.config.os }} (${{ matrix.config.r }}) [${{ format('{0}', matrix.config.quarto) == 'false' && 'No'}}Quarto ${{ matrix.config.quarto || 'release' }}] strategy: fail-fast: false @@ -52,7 +52,7 @@ jobs: - uses: actions/checkout@v4 - uses: quarto-dev/quarto-actions/setup@v2 - if: matrix.config.quarto != false + if: format('{0}', matrix.config.quarto) == 'false' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -76,4 +76,4 @@ jobs: - uses: r-lib/actions/check-r-package@v2 with: upload-snapshots: true - build_args: ${{ format('c("--no-manual","--compact-vignettes=gs+qpdf"{0})', matrix.config.quarto == false && ',"--no-build-vignettes"' || '') }} + build_args: ${{ format('c("--no-manual","--compact-vignettes=gs+qpdf"{0})', format('{0}', matrix.config.quarto) == 'false' && ',"--no-build-vignettes"' || '') }} From 743203ea63be539c77c8e8c2ebc0dab24074d960 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Thu, 4 Sep 2025 12:40:23 +0200 Subject: [PATCH 06/14] correctly label job --- .github/workflows/R-CMD-check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 6d9fa56e..f8f1c039 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -19,7 +19,7 @@ jobs: R-CMD-check: runs-on: ${{ matrix.config.os }} - name: ${{ matrix.config.os }} (${{ matrix.config.r }}) [${{ format('{0}', matrix.config.quarto) == 'false' && 'No'}}Quarto ${{ matrix.config.quarto || 'release' }}] + name: ${{ matrix.config.os }} (${{ matrix.config.r }}) [${{ format('{0}', matrix.config.quarto) == 'false' && 'No ' || ''}}Quarto ${{ matrix.config.quarto || 'release' }}] strategy: fail-fast: false From 96564d8b9a8116945905d5b95c284d22f2d3fb47 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Thu, 4 Sep 2025 12:43:41 +0200 Subject: [PATCH 07/14] correctly install quarto except when false --- .github/workflows/R-CMD-check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index f8f1c039..6468bf7b 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -52,7 +52,7 @@ jobs: - uses: actions/checkout@v4 - uses: quarto-dev/quarto-actions/setup@v2 - if: format('{0}', matrix.config.quarto) == 'false' + if: format('{0}', matrix.config.quarto) != 'false' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: From 78475f8f2a61ecfe8ee38b2af13340383afdc6e7 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Thu, 4 Sep 2025 12:47:28 +0200 Subject: [PATCH 08/14] Add missing `skip_if_no_quarto()` --- tests/testthat/test-utils-extract.R | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/testthat/test-utils-extract.R b/tests/testthat/test-utils-extract.R index cd6c5aa2..4ffd3f43 100644 --- a/tests/testthat/test-utils-extract.R +++ b/tests/testthat/test-utils-extract.R @@ -47,6 +47,7 @@ test_that("qmd_to_r_script() writes R file that renders", { }) test_that("qmd_to_r_script() comment cells with eval = TRUE", { + skip_if_no_quarto() r_script <- withr::local_tempfile(pattern = "purl", fileext = ".R") qmd_to_r_script( @@ -67,6 +68,7 @@ test_that("qmd_to_r_script() comment cells with eval = TRUE", { }) test_that("qmd_to_r_script() ignore cells with purl = FALSE", { + skip_if_no_quarto() r_script <- withr::local_tempfile(pattern = "purl", fileext = ".R") qmd_to_r_script( From 42a9842ac28df78b048fe0898eaade04431e9d3c Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Thu, 4 Sep 2025 12:54:52 +0200 Subject: [PATCH 09/14] Add a missing no quarto --- tests/testthat/test-utils.R | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/testthat/test-utils.R b/tests/testthat/test-utils.R index 0bee0093..1996acbd 100644 --- a/tests/testthat/test-utils.R +++ b/tests/testthat/test-utils.R @@ -112,6 +112,7 @@ test_that("write_yaml allows clean data", { }) test_that("quarto_render uses write_yaml validation", { + skip_if_no_quarto() skip_on_cran() # Skip on CRAN as we current throw warning only on CRAN expect_snapshot( error = TRUE, From 92a8217120c65b2444f31f505c258697decc3fca Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Thu, 4 Sep 2025 12:57:19 +0200 Subject: [PATCH 10/14] use skip_if_not() for improved readibility --- tests/testthat/helpers.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/testthat/helpers.R b/tests/testthat/helpers.R index a5a79812..7e50a907 100644 --- a/tests/testthat/helpers.R +++ b/tests/testthat/helpers.R @@ -1,8 +1,8 @@ # Use to test quarto availability or version lower than skip_if_no_quarto <- function(ver = NULL) { skip_if(is.null(quarto_path()), message = "Quarto is not available") - skip_if( - !quarto_available(min = ver, error = FALSE), + skip_if_not( + quarto_available(min = ver, error = FALSE), message = sprintf( "Version of quarto is lower than %s: %s.", ver, From c9d8e4d2e35d50dd979c7a37f8cbc9de7a00eced Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Thu, 4 Sep 2025 13:01:45 +0200 Subject: [PATCH 11/14] Don't check vignette when no quarto --- .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 6468bf7b..5df4c725 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -76,4 +76,5 @@ jobs: - uses: r-lib/actions/check-r-package@v2 with: upload-snapshots: true + args: ${{ format('c("--no-manual", "--as-cran"{0})', format('{0}', matrix.config.quarto) == 'false' && ',"--no-vignettes"' || '') }} build_args: ${{ format('c("--no-manual","--compact-vignettes=gs+qpdf"{0})', format('{0}', matrix.config.quarto) == 'false' && ',"--no-build-vignettes"' || '') }} From f2c641be4a243f20c9474a329728f7f0341b2db7 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Thu, 4 Sep 2025 13:17:46 +0200 Subject: [PATCH 12/14] Try ignoring vignettes instead --- .github/workflows/R-CMD-check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 5df4c725..ac77d202 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -76,5 +76,5 @@ jobs: - uses: r-lib/actions/check-r-package@v2 with: upload-snapshots: true - args: ${{ format('c("--no-manual", "--as-cran"{0})', format('{0}', matrix.config.quarto) == 'false' && ',"--no-vignettes"' || '') }} + args: ${{ format('c("--no-manual", "--as-cran"{0})', format('{0}', matrix.config.quarto) == 'false' && ',"--ignore-vignettes"' || '') }} build_args: ${{ format('c("--no-manual","--compact-vignettes=gs+qpdf"{0})', format('{0}', matrix.config.quarto) == 'false' && ',"--no-build-vignettes"' || '') }} From 5fb6ba45429635d57643b72b77c248f5aa04bd5c Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Thu, 4 Sep 2025 13:33:30 +0200 Subject: [PATCH 13/14] Add NEWS --- NEWS.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NEWS.md b/NEWS.md index ee42c502..88bccfb5 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,8 @@ # quarto (development version) +- Make sure tests pass on CRAN checks even when Quarto is not installed by adding a gihub action to test when no quarto is available. Also fix tests that were +not skipping when quarto was not available which failed on CRAN checks for MacOS and no binary were built. (thanks, @jabenninghoff, #282) + # quarto 1.5.0 ## Breaking changes From 474d85fcb5952e4e3a164e57e556a826d78bbf18 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Thu, 4 Sep 2025 13:33:49 +0200 Subject: [PATCH 14/14] Increment version number to 1.5.0.9001 --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 31df9667..27e4cc79 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: quarto Title: R Interface to 'Quarto' Markdown Publishing System -Version: 1.5.0.9000 +Version: 1.5.0.9001 Authors@R: c( person("JJ", "Allaire", , "jj@posit.co", role = "aut", comment = c(ORCID = "0000-0003-0174-9868")),