diff --git a/.github/dep-suggests-matrix.json b/.github/dep-suggests-matrix.json
new file mode 100644
index 000000000..3cc98e25f
--- /dev/null
+++ b/.github/dep-suggests-matrix.json
@@ -0,0 +1 @@
+{"package":["bit64","DBI","debugme","DiagrammeR","dplyr","formattable","ggplot2","lubridate","nanotime","nycflights13","palmerpenguins","scales","stringi","units","vdiffr"]}
diff --git a/.github/workflows/R-CMD-check-dev.yaml b/.github/workflows/R-CMD-check-dev.yaml
index 9b00903cf..700486fc2 100644
--- a/.github/workflows/R-CMD-check-dev.yaml
+++ b/.github/workflows/R-CMD-check-dev.yaml
@@ -101,7 +101,7 @@ jobs:
runs-on: ubuntu-22.04
- name: ${{ matrix.package }}
+ name: 'rcc-dev: ${{ matrix.package }}'
# Begin custom: services
# End custom: services
@@ -147,4 +147,4 @@ jobs:
- uses: ./.github/workflows/check
with:
- results: ${{ matrix.package }}
\ No newline at end of file
+ results: ${{ matrix.package }}
diff --git a/.github/workflows/R-CMD-check-status.yaml b/.github/workflows/R-CMD-check-status.yaml
new file mode 100644
index 000000000..b9bdf4e4a
--- /dev/null
+++ b/.github/workflows/R-CMD-check-status.yaml
@@ -0,0 +1,75 @@
+# Workflow to update the status of a commit for the R-CMD-check workflow
+# Necessary because remote PRs cannot update the status of the commit
+on:
+ workflow_run:
+ workflows:
+ - rcc
+ types:
+ - requested
+ - completed
+
+name: rcc-status
+
+jobs:
+ rcc-status:
+ runs-on: ubuntu-latest
+
+ name: "Update commit status"
+
+ steps:
+ - name: "Update commit status"
+ # Only run if triggered by rcc workflow
+ if: github.event.workflow_run.name == 'rcc'
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ set -x
+
+ if [ "${{ github.event.workflow_run.status }}" == "completed" ]; then
+ if [ "${{ github.event.workflow_run.conclusion }}" == "success" ]; then
+ state="success"
+ else
+ state="failure"
+ fi
+
+ # Read artifact ID
+ artifact_id=$(gh api \
+ -H "Accept: application/vnd.github+json" \
+ -H "X-GitHub-Api-Version: 2022-11-28" \
+ repos/${{ github.repository }}/actions/runs/${{ github.event.workflow_run.id }}/artifacts | jq -r '.artifacts[] | select(.name == "rcc-smoke-sha") | .id')
+
+ if [ -n "${artifact_id}" ]; then
+ # Download artifact
+ curl -L -o rcc-smoke-sha.zip \
+ -H "Accept: application/vnd.github+json" \
+ -H "Authorization: Bearer ${GH_TOKEN}" \
+ -H "X-GitHub-Api-Version: 2022-11-28" \
+ https://api.github.com/repos/${{ github.repository }}/actions/artifacts/${artifact_id}/zip
+
+ # Unzip artifact
+ unzip rcc-smoke-sha.zip
+
+ # Read artifact
+ sha=$(cat rcc-smoke-sha.txt)
+
+ # Clean up
+ rm rcc-smoke-sha.zip rcc-smoke-sha.txt
+ fi
+ else
+ state="pending"
+ fi
+
+ if [ -z "${sha}" ]; then
+ sha=${{ github.event.workflow_run.head_sha }}
+ fi
+
+ html_url=${{ github.event.workflow_run.html_url }}
+ description=${{ github.event.workflow_run.name }}
+
+ gh api \
+ --method POST \
+ -H "Accept: application/vnd.github+json" \
+ -H "X-GitHub-Api-Version: 2022-11-28" \
+ repos/${{ github.repository }}/statuses/${sha} \
+ -f "state=${state}" -f "target_url=${html_url}" -f "description=${description}" -f "context=rcc"
+ shell: bash
diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml
index baf5c5633..e2234cde6 100644
--- a/.github/workflows/R-CMD-check.yaml
+++ b/.github/workflows/R-CMD-check.yaml
@@ -1,4 +1,4 @@
-# Workflow derived from https://github.com/r-lib/actions/tree/master/examples
+# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
#
# NOTE: This workflow is overkill for most R packages and
@@ -9,24 +9,46 @@ on:
branches:
- main
- master
+ - release
+ - cran-*
pull_request:
branches:
- main
- master
+ workflow_dispatch:
+ inputs:
+ ref:
+ description: "Branch, tag, or commit to check out"
+ required: false
+ default: "main"
+ versions-matrix:
+ description: "Create a matrix of R versions"
+ type: boolean
+ default: false
+ dep-suggests-matrix:
+ description: "Create a matrix of suggested dependencies"
+ type: boolean
+ default: false
+ merge_group:
+ types:
+ - checks_requested
schedule:
- cron: "10 0 * * *"
concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || github.sha }}-${{ github.base_ref || '' }}
+ group: ${{ github.workflow }}-${{ github.ref }}-${{ inputs.ref || github.head_ref || github.sha }}-${{ github.base_ref || '' }}
cancel-in-progress: true
name: rcc
+
jobs:
rcc-smoke:
runs-on: ubuntu-latest
outputs:
sha: ${{ steps.commit.outputs.sha }}
+ versions-matrix: ${{ steps.versions-matrix.outputs.matrix }}
+ dep-suggests-matrix: ${{ steps.dep-suggests-matrix.outputs.matrix }}
name: "Smoke test: stock R"
@@ -35,6 +57,40 @@ jobs:
steps:
- uses: actions/checkout@v4
+ with:
+ ref: ${{ inputs.ref }}
+
+ - name: Update status for rcc
+ # FIXME: Wrap into action
+ if: github.event_name == 'workflow_dispatch'
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ # Check status of this workflow
+ state="pending"
+ sha=${{ inputs.ref }}
+ if [ -z "${sha}" ]; then
+ sha=${{ github.head_ref }}
+ fi
+ if [ -z "${sha}" ]; then
+ sha=${{ github.sha }}
+ fi
+ sha=$(git rev-parse ${sha})
+
+ html_url=$(gh api \
+ -H "Accept: application/vnd.github+json" \
+ -H "X-GitHub-Api-Version: 2022-11-28" \
+ repos/${{ github.repository }}/actions/runs/${{ github.run_id }} | jq -r .html_url)
+
+ description="${{ github.workflow }} / ${{ github.job }}"
+
+ gh api \
+ --method POST \
+ -H "Accept: application/vnd.github+json" \
+ -H "X-GitHub-Api-Version: 2022-11-28" \
+ repos/${{ github.repository }}/statuses/${sha} \
+ -f "state=${state}" -f "target_url=${html_url}" -f "description=${description}" -f "context=rcc"
+ shell: bash
- uses: ./.github/workflows/rate-limit
with:
@@ -48,71 +104,50 @@ jobs:
- uses: ./.github/workflows/install
with:
token: ${{ secrets.GITHUB_TOKEN }}
- install-r: false
cache-version: rcc-smoke-2
- needs: check
- extra-packages: any::rcmdcheck any::roxygen2 r-lib/styler
+ needs: check, website
+ # Beware of using dev pkgdown here, has brought in dev dependencies in the past
+ extra-packages: any::rcmdcheck r-lib/roxygen2 any::decor r-lib/styler r-lib/pkgdown@f-readme-tweak deps::.
+
+ - name: Install package
+ run: |
+ _R_SHLIB_STRIP_=true R CMD INSTALL .
+ shell: bash
- uses: ./.github/workflows/custom/after-install
if: hashFiles('.github/workflows/custom/after-install/action.yml') != ''
- - uses: ./.github/workflows/versions-matrix
- if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
+ - id: versions-matrix
+ # Only run for pull requests if the base repo is different from the head repo, not for workflow_dispatch if not requested, always run for other events
+ if: (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.repository) && (github.event_name != 'workflow_dispatch' || inputs.versions-matrix)
+ uses: ./.github/workflows/versions-matrix
+
+ - id: dep-suggests-matrix
+ # Not for workflow_dispatch if not requested, always run for other events
+ if: github.event_name != 'workflow_dispatch' || inputs.dep-suggests-matrix
+ uses: ./.github/workflows/dep-suggests-matrix
- uses: ./.github/workflows/update-snapshots
- if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
+ with:
+ base: ${{ inputs.ref || github.head_ref }}
- uses: ./.github/workflows/style
- if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
- uses: ./.github/workflows/roxygenize
- if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
+
+ - name: Remove config files from previous iteration
+ run: |
+ rm -f .github/dep-suggests-matrix.json .github/versions-matrix.json
+ shell: bash
- id: commit
- if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
uses: ./.github/workflows/commit
-
- - uses: ./.github/workflows/check
- with:
- results: ${{ runner.os }}-smoke-test
-
- # Runs in a separate workflow, because it's using dev pkgdown
- # which might bring in other dev dependencies
- pkgdown:
- needs: rcc-smoke
-
- runs-on: ubuntu-latest
-
- name: "pkgdown"
-
- # Begin custom: services
- # End custom: services
-
- steps:
- - uses: actions/checkout@v4
- with:
- ref: ${{ needs.rcc-smoke.outputs.sha }}
-
- - uses: ./.github/workflows/rate-limit
with:
token: ${{ secrets.GITHUB_TOKEN }}
- - uses: ./.github/workflows/git-identity
- if: github.event_name == 'push'
-
- - uses: ./.github/workflows/custom/before-install
- if: hashFiles('.github/workflows/custom/before-install/action.yml') != ''
-
- - uses: ./.github/workflows/install
+ - uses: ./.github/workflows/check
with:
- token: ${{ secrets.GITHUB_TOKEN }}
- install-r: false
- cache-version: pkgdown-1
- needs: website
- extra-packages: r-lib/pkgdown local::.
-
- - uses: ./.github/workflows/custom/after-install
- if: hashFiles('.github/workflows/custom/after-install/action.yml') != ''
+ results: ${{ runner.os }}-smoke-test
- uses: ./.github/workflows/pkgdown-build
if: github.event_name != 'push'
@@ -120,45 +155,93 @@ jobs:
- uses: ./.github/workflows/pkgdown-deploy
if: github.event_name == 'push'
- versions-matrix:
- runs-on: ubuntu-22.04
- outputs:
- matrix: ${{ steps.set-matrix.outputs.matrix }}
+ # Upload sha as artifact
+ - run: |
+ echo -n "${{ steps.commit.outputs.sha }}" > rcc-smoke-sha.txt
+ shell: bash
+
+ - uses: actions/upload-artifact@v4
+ with:
+ name: rcc-smoke-sha
+ path: rcc-smoke-sha.txt
+
+ - name: Update status for rcc
+ # FIXME: Wrap into action
+ if: always() && github.event_name == 'workflow_dispatch'
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ # Check status of this workflow
+ if [ "${{ job.status }}" == "success" ]; then
+ state="success"
+ else
+ state="failure"
+ fi
+
+ sha=${{ steps.commit.outputs.sha }}
+ if [ -z "${sha}" ]; then
+ sha=${{ inputs.ref }}
+ fi
+ if [ -z "${sha}" ]; then
+ sha=${{ github.head_ref }}
+ fi
+ if [ -z "${sha}" ]; then
+ sha=${{ github.sha }}
+ fi
+ sha=$(git rev-parse ${sha})
+
+ html_url=$(gh api \
+ -H "Accept: application/vnd.github+json" \
+ -H "X-GitHub-Api-Version: 2022-11-28" \
+ repos/${{ github.repository }}/actions/runs/${{ github.run_id }} | jq -r .html_url)
+
+ description="${{ github.workflow }} / ${{ github.job }}"
+
+ gh api \
+ --method POST \
+ -H "Accept: application/vnd.github+json" \
+ -H "X-GitHub-Api-Version: 2022-11-28" \
+ repos/${{ github.repository }}/statuses/${sha} \
+ -f "state=${state}" -f "target_url=${html_url}" -f "description=${description}" -f "context=rcc"
+ shell: bash
+
+ rcc-smoke-check-matrix:
+ runs-on: ubuntu-latest
+
+ name: "Check matrix"
- name: Collect versions
+ needs:
+ - rcc-smoke
steps:
- uses: actions/checkout@v4
with:
- fetch-depth: 0
+ ref: ${{ needs.rcc-smoke.outputs.sha }}
- - uses: ./.github/workflows/rate-limit
+ - uses: ./.github/workflows/matrix-check
with:
- token: ${{ secrets.GITHUB_TOKEN }}
+ matrix: ${{ needs.rcc-smoke.outputs.versions-matrix }}
- - uses: r-lib/actions/setup-r@v2
+ - uses: ./.github/workflows/matrix-check
with:
- install-r: false
- use-public-rspm: true
-
- - id: set-matrix
- uses: ./.github/workflows/versions-matrix-read
+ matrix: ${{ needs.rcc-smoke.outputs.dep-suggests-matrix }}
rcc-full:
needs:
- rcc-smoke
- - versions-matrix
runs-on: ${{ matrix.os }}
- name: ${{ matrix.os }} (${{ matrix.r }}) ${{ matrix.desc }}
+ if: ${{ needs.rcc-smoke.outputs.versions-matrix != '' }}
+
+ name: 'rcc: ${{ matrix.os }} (${{ matrix.r }}) ${{ matrix.desc }}'
# Begin custom: services
# End custom: services
strategy:
fail-fast: false
- matrix: ${{fromJson(needs.versions-matrix.outputs.matrix)}}
+ matrix: ${{fromJson(needs.rcc-smoke.outputs.versions-matrix)}}
steps:
- uses: actions/checkout@v4
@@ -185,72 +268,22 @@ jobs:
with:
results: ${{ runner.os }}-r${{ matrix.r }}
- - uses: ./.github/workflows/update-status
- if: always()
- with:
- sha: ${{ needs.rcc-smoke.outputs.sha }}
-
- suggests-matrix:
- runs-on: ubuntu-22.04
- outputs:
- matrix: ${{ steps.set-matrix.outputs.matrix }}
-
- name: Collect suggests deps
-
- steps:
- - uses: actions/checkout@v4
- with:
- fetch-depth: 0
-
- - uses: ./.github/workflows/rate-limit
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
-
- - uses: r-lib/actions/setup-r@v2
- with:
- install-r: false
- use-public-rspm: true
-
- - id: set-matrix
- uses: ./.github/workflows/dep-matrix-suggests
-
- check-suggests-matrix:
- runs-on: ubuntu-22.04
- needs: suggests-matrix
-
- name: Check suggests deps
-
- if: ${{ needs.suggests-matrix.outputs.matrix != '' }}
-
- steps:
- - name: Install json2yaml
- run: |
- sudo npm install -g json2yaml
-
- - name: Check matrix definition
- run: |
- matrix='${{ needs.suggests-matrix.outputs.matrix }}'
- echo $matrix
- echo $matrix | jq .
- echo $matrix | json2yaml
-
rcc-suggests:
needs:
- rcc-smoke
- - suggests-matrix
runs-on: ubuntu-22.04
- name: Without ${{ matrix.package }}
+ if: ${{ needs.rcc-smoke.outputs.dep-suggests-matrix != '' }}
- if: ${{ needs.suggests-matrix.outputs.matrix != '' }}
+ name: Without ${{ matrix.package }}
# Begin custom: services
# End custom: services
strategy:
fail-fast: false
- matrix: ${{fromJson(needs.suggests-matrix.outputs.matrix)}}
+ matrix: ${{fromJson(needs.rcc-smoke.outputs.dep-suggests-matrix)}}
steps:
- uses: actions/checkout@v4
diff --git a/.github/workflows/commit/action.yml b/.github/workflows/commit/action.yml
index bd375d3dd..ed6f9b896 100644
--- a/.github/workflows/commit/action.yml
+++ b/.github/workflows/commit/action.yml
@@ -1,4 +1,8 @@
name: "Action to commit changes to the repository"
+inputs:
+ token:
+ description: "GitHub token"
+ required: true
outputs:
sha:
description: "SHA of generated commit"
@@ -7,23 +11,53 @@ outputs:
runs:
using: "composite"
steps:
- - name: Commit if changed
+ - name: Commit if changed, create a PR if protected
id: commit
+ env:
+ GITHUB_TOKEN: ${{ inputs.token }}
run: |
set -x
if [ -n "$(git status --porcelain)" ]; then
echo "Changed"
- git fetch
- if [ -n "${GITHUB_HEAD_REF}" ]; then
+ protected=${{ github.ref_protected }}
+ foreign=${{ github.event.pull_request.head.repo.full_name != github.repository }}
+ if [ "${foreign}" = "true" ]; then
+ # https://github.com/krlmlr/actions-sync/issues/44
+ echo "Can't push to foreign branch"
+ elif [ "${protected}" = "true" ]; then
+ current_branch=$(git branch --show-current)
+ new_branch=gha-commit-$(git rev-parse --short HEAD)
+ git checkout -b ${new_branch}
git add .
- git stash save
- git switch ${GITHUB_HEAD_REF}
- git merge origin/${GITHUB_BASE_REF} --no-edit
- git stash pop
+ git commit -m "chore: Auto-update from GitHub Actions"$'\n'$'\n'"Run: ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}"
+ # Force-push, used in only one place
+ # Alternative: separate branch names for each usage
+ git push -u origin HEAD -f
+
+ existing_pr=$(gh pr list --state open --base main --head ${new_branch} --json number --jq '.[] | .number')
+ if [ -n "${existing_pr}" ]; then
+ echo "Existing PR: ${existing_pr}"
+ else
+ gh pr create --base main --head ${new_branch} --title "chore: Auto-update from GitHub Actions" --body "Run: ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}"
+ fi
+
+ gh workflow run rcc -f ref=$(git rev-parse HEAD)
+ gh pr merge --merge --auto
+ else
+ git fetch
+ if [ -n "${GITHUB_HEAD_REF}" ]; then
+ git add .
+ git stash save
+ git switch ${GITHUB_HEAD_REF}
+ git merge origin/${GITHUB_BASE_REF} --no-edit
+ git stash pop
+ fi
+ git add .
+ git commit -m "chore: Auto-update from GitHub Actions"$'\n'$'\n'"Run: ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}"
+ git push -u origin HEAD
+
+ # Only set output if changed
+ echo sha=$(git rev-parse HEAD) >> $GITHUB_OUTPUT
fi
- git add .
- git commit -m "chore: Auto-update from GitHub Actions"$'\n'$'\n'"Run: ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}"
- git push -u origin HEAD
- echo sha=$(git rev-parse HEAD) >> $GITHUB_OUTPUT
fi
shell: bash
diff --git a/.github/workflows/dep-matrix-suggests/action.yml b/.github/workflows/dep-matrix-suggests/action.yml
deleted file mode 100644
index deafab932..000000000
--- a/.github/workflows/dep-matrix-suggests/action.yml
+++ /dev/null
@@ -1,56 +0,0 @@
-name: "Actions to compute a matrix with all suggested packages"
-outputs:
- matrix:
- description: "Generated matrix"
- value: ${{ steps.set-matrix.outputs.matrix }}
-
-runs:
- using: "composite"
- steps:
- - id: set-matrix
- run: |
- get_deps <- function() {
- # Determine package dependencies
- if (!requireNamespace("desc", quietly = TRUE)) {
- install.packages("desc")
- }
-
- deps_df <- desc::desc_get_deps()
- deps_df_optional <- deps_df$package[deps_df$type %in% c("Suggests", "Enhances")]
- deps_df_hard <- deps_df$package[deps_df$type %in% c("Depends", "Imports", "LinkingTo")]
-
- packages <- sort(deps_df_optional)
- packages <- intersect(packages, rownames(available.packages()))
-
- # Too big to fail, or can't be avoided:
- off_limits <- c("testthat", "rmarkdown", "rcmdcheck", deps_df_hard)
- off_limits_dep <- unlist(tools::package_dependencies(off_limits, recursive = TRUE, which = "strong"))
- setdiff(packages, c(off_limits, off_limits_dep))
- }
-
- if (Sys.getenv("GITHUB_BASE_REF") != "") {
- print(Sys.getenv("GITHUB_BASE_REF"))
- has_diff <- (system("git diff ${{ github.event.pull_request.base.sha }}... | egrep '^[+][^+]' | grep -q ::") == 0)
- if (has_diff) {
- system("git diff ${{ github.event.pull_request.base.sha }}... | egrep '^[+][^+]' | grep -q ::")
- packages <- get_deps()
- } else {
- writeLines("No changes using :: found, not checking without suggested packages")
- packages <- character()
- }
- } else {
- packages <- get_deps()
- }
-
- if (length(packages) > 0) {
- json <- paste0(
- '{"package":[',
- paste0('"', packages, '"', collapse = ","),
- ']}'
- )
- writeLines(json)
- writeLines(paste0("matrix=", json), Sys.getenv("GITHUB_OUTPUT"))
- } else {
- writeLines("Package list empty!")
- }
- shell: Rscript {0}
diff --git a/.github/workflows/dep-suggests-matrix/action.R b/.github/workflows/dep-suggests-matrix/action.R
new file mode 100644
index 000000000..eff3a502c
--- /dev/null
+++ b/.github/workflows/dep-suggests-matrix/action.R
@@ -0,0 +1,49 @@
+# FIXME: Dynamic lookup by parsing https://svn.r-project.org/R/tags/
+get_deps <- function() {
+ # Determine package dependencies
+ if (!requireNamespace("desc", quietly = TRUE)) {
+ install.packages("desc")
+ }
+
+ deps_df <- desc::desc_get_deps()
+ deps_df_optional <- deps_df$package[deps_df$type %in% c("Suggests", "Enhances")]
+ deps_df_hard <- deps_df$package[deps_df$type %in% c("Depends", "Imports", "LinkingTo")]
+ deps_df_base <- unlist(tools::standard_package_names(), use.names = FALSE)
+
+ packages <- sort(deps_df_optional)
+ packages <- intersect(packages, rownames(available.packages()))
+
+ # Too big to fail, or can't be avoided:
+ off_limits <- c("testthat", "rmarkdown", "rcmdcheck", deps_df_hard, deps_df_base)
+ off_limits_dep <- unlist(tools::package_dependencies(off_limits, recursive = TRUE, which = "strong"))
+ setdiff(packages, c(off_limits, off_limits_dep))
+}
+
+if (Sys.getenv("GITHUB_BASE_REF") != "") {
+ print(Sys.getenv("GITHUB_BASE_REF"))
+ system("git fetch origin ${GITHUB_BASE_REF}")
+ # Use .. to avoid having to fetch the entire history
+ # https://github.com/krlmlr/actions-sync/issues/45
+ has_diff <- (system("git diff origin/${GITHUB_BASE_REF}.. | egrep '^[+][^+]' | grep -q ::") == 0)
+ if (has_diff) {
+ system("git diff origin/${GITHUB_BASE_REF}.. | egrep '^[+][^+]' | grep -q ::")
+ packages <- get_deps()
+ } else {
+ writeLines("No changes using :: found, not checking without suggested packages")
+ packages <- character()
+ }
+} else {
+ packages <- get_deps()
+}
+
+if (length(packages) > 0) {
+ json <- paste0(
+ '{"package":[',
+ paste0('"', packages, '"', collapse = ","),
+ ']}'
+ )
+ writeLines(paste0("matrix=", json), Sys.getenv("GITHUB_OUTPUT"))
+ writeLines(json)
+} else {
+ writeLines("No suggested packages found.")
+}
diff --git a/.github/workflows/dep-suggests-matrix/action.yml b/.github/workflows/dep-suggests-matrix/action.yml
new file mode 100644
index 000000000..0f5e64951
--- /dev/null
+++ b/.github/workflows/dep-suggests-matrix/action.yml
@@ -0,0 +1,13 @@
+name: "Actions to compute a matrix with all suggested packages"
+outputs:
+ matrix:
+ description: "Generated matrix"
+ value: ${{ steps.set-matrix.outputs.matrix }}
+
+runs:
+ using: "composite"
+ steps:
+ - id: set-matrix
+ run: |
+ Rscript ./.github/workflows/dep-suggests-matrix/action.R
+ shell: bash
diff --git a/.github/workflows/fledge.yaml b/.github/workflows/fledge.yaml
index 81c2d0c0a..d880c55d7 100644
--- a/.github/workflows/fledge.yaml
+++ b/.github/workflows/fledge.yaml
@@ -3,12 +3,18 @@ name: fledge
on:
# for manual triggers
workflow_dispatch:
+ inputs:
+ pr:
+ description: "Create PR"
+ required: false
+ type: boolean
+ default: false
# daily run
schedule:
- cron: "30 0 * * *"
concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || github.sha }}-${{ github.base_ref || '' }}
+ group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || '' }}-${{ github.base_ref || '' }}
cancel-in-progress: true
jobs:
@@ -19,8 +25,12 @@ jobs:
steps:
- name: Check if the repo is forked
id: check
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
- echo "is_forked=$(curl -s -H "Accept: application/vnd.github+json" -H 'Authorization: Bearer ${{ github.token }}' -H "X-GitHub-Api-Version: 2022-11-28" ${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY} | jq .fork)" >> $GITHUB_OUTPUT
+ is_forked=$(gh api repos/${{ github.repository }} | jq .fork)
+ echo "is_forked=${is_forked}" >> $GITHUB_OUTPUT
+ shell: bash
fledge:
runs-on: ubuntu-latest
@@ -28,31 +38,71 @@ jobs:
if: needs.check_fork.outputs.is_forked == 'false'
permissions:
contents: write
+ pull-requests: write
+ actions: write
env:
- GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
FLEDGE_GHA_CI: true
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v2
with:
fetch-depth: 0
- - uses: ./.github/workflows/git-identity
+ - name: Configure Git identity
+ run: |
+ env | sort
+ git config --local user.name "$GITHUB_ACTOR"
+ git config --local user.email "$GITHUB_ACTOR@users.noreply.github.com"
+ shell: bash
+
+ - name: Update apt
+ run: |
+ sudo apt-get update
+ shell: bash
- - uses: ./.github/workflows/install
+ - uses: r-lib/actions/setup-r@v2
with:
- token: ${{ secrets.GITHUB_TOKEN }}
install-r: false
- cache-version: fledge-1
+ use-public-rspm: true
+
+ - uses: r-lib/actions/setup-r-dependencies@v2
+ env:
+ GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ pak-version: devel
packages: cynkra/fledge
+ cache-version: fledge-1
+
+ - name: Switch to branch if branch protection is enabled
+ if: github.ref_protected == 'true' || inputs.pr == 'true'
+ run: |
+ git checkout -b fledge
+ git push -f -u origin HEAD
+ shell: bash
- name: Bump version
+ env:
+ GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
run: |
- if (fledge::bump_version(which = "dev", no_change_behavior = "noop")) {
+ check_default_branch <- ("${{ github.ref_protected == 'true' || inputs.pr == 'true' }}" != "true")
+ if (fledge::bump_version(which = "dev", no_change_behavior = "noop", check_default_branch = check_default_branch)) {
fledge::finalize_version(push = TRUE)
}
shell: Rscript {0}
+ - name: Create and merge PR if branch protection is enabled
+ if: github.ref_protected == 'true' || inputs.pr == 'true'
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ set -x
+ gh pr create --base main --head fledge --fill-first
+ gh workflow run rcc -f ref=$(git rev-parse HEAD)
+ gh pr merge --merge --auto
+ shell: bash
+
- name: Check release
+ env:
+ GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
run: |
fledge:::release_after_cran_built_binaries()
shell: Rscript {0}
diff --git a/.github/workflows/install/action.yml b/.github/workflows/install/action.yml
index cf9eda067..702aedabd 100644
--- a/.github/workflows/install/action.yml
+++ b/.github/workflows/install/action.yml
@@ -82,7 +82,11 @@ runs:
use-public-rspm: true
- id: get-extra
- uses: ./.github/workflows/get-extra
+ run: |
+ set -x
+ packages=$( ( grep Config/gha/extra-packages DESCRIPTION || true ) | cut -d " " -f 2)
+ echo packages=$packages >> $GITHUB_OUTPUT
+ shell: bash
- uses: r-lib/actions/setup-r-dependencies@v2
env:
diff --git a/.github/workflows/matrix-check/action.yml b/.github/workflows/matrix-check/action.yml
new file mode 100644
index 000000000..b94304819
--- /dev/null
+++ b/.github/workflows/matrix-check/action.yml
@@ -0,0 +1,23 @@
+name: "Actions to check a matrix with all R and OS versions, computed with the versions-matrix action"
+inputs:
+ matrix:
+ description: "Generated matrix"
+ required: true
+
+runs:
+ using: "composite"
+ steps:
+ - name: Install json2yaml
+ run: |
+ sudo npm install -g json2yaml
+ shell: bash
+
+ - run: |
+ matrix='${{ inputs.matrix }}'
+ if [ -n "${matrix}" ]; then
+ echo $matrix | jq .
+ echo $matrix | json2yaml
+ else
+ echo "No matrix found"
+ fi
+ shell: bash
diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml
index 740004087..6afddb16f 100644
--- a/.github/workflows/pkgdown.yaml
+++ b/.github/workflows/pkgdown.yaml
@@ -1,4 +1,4 @@
-# Workflow derived from https://github.com/r-lib/actions/tree/master/examples
+# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
# Also included in R-CMD-check.yaml, this workflow only listens to pushes to branches
# that start with "docs*"
on:
@@ -42,7 +42,7 @@ jobs:
install-r: false
cache-version: pkgdown-2
needs: website
- extra-packages: r-lib/pkgdown local::.
+ extra-packages: r-lib/pkgdown@f-readme-tweak local::.
- uses: ./.github/workflows/custom/after-install
if: hashFiles('.github/workflows/custom/after-install/action.yml') != ''
diff --git a/.github/workflows/pr-commands.yaml b/.github/workflows/pr-commands.yaml
index 3ce95aaf2..a11f4d390 100644
--- a/.github/workflows/pr-commands.yaml
+++ b/.github/workflows/pr-commands.yaml
@@ -12,10 +12,10 @@ jobs:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v4
- - uses: r-lib/actions/pr-fetch@master
+ - uses: r-lib/actions/pr-fetch@v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- - uses: r-lib/actions/setup-r@master
+ - uses: r-lib/actions/setup-r@v2
with:
install-r: false
- name: Configure Git identity
@@ -39,7 +39,7 @@ jobs:
git add man/ NAMESPACE
git commit -m 'Document'
fi
- - uses: r-lib/actions/pr-push@master
+ - uses: r-lib/actions/pr-push@v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
style:
@@ -51,10 +51,10 @@ jobs:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v4
- - uses: r-lib/actions/pr-fetch@master
+ - uses: r-lib/actions/pr-fetch@v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- - uses: r-lib/actions/setup-r@master
+ - uses: r-lib/actions/setup-r@v2
with:
install-r: false
- name: Configure Git identity
@@ -77,7 +77,7 @@ jobs:
git add '*.R' '*.Rmd'
git commit -m 'Style'
fi
- - uses: r-lib/actions/pr-push@master
+ - uses: r-lib/actions/pr-push@v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
merge:
diff --git a/.github/workflows/revdep.yaml b/.github/workflows/revdep.yaml
index 4a0d511ae..0fa67dce8 100644
--- a/.github/workflows/revdep.yaml
+++ b/.github/workflows/revdep.yaml
@@ -67,7 +67,7 @@ jobs:
runs-on: ubuntu-22.04
- name: ${{ matrix.package }}
+ name: 'revdep: ${{ matrix.package }}'
# Begin custom: services
# End custom: services
diff --git a/.github/workflows/update-snapshots/action.yml b/.github/workflows/update-snapshots/action.yml
index 6322dc156..5ee7e3ecc 100644
--- a/.github/workflows/update-snapshots/action.yml
+++ b/.github/workflows/update-snapshots/action.yml
@@ -3,6 +3,11 @@ description: >
This action will run `testthat::test_local()` for tests that seem to use snapshots,
this is determined by reading and grepping the test files.
If the tests are failing, snapshots are updated, and a pull request is opened.
+inputs:
+ base:
+ description: "The base branch to create the pull request against."
+ required: false
+ default: "main"
runs:
using: "composite"
@@ -67,8 +72,8 @@ runs:
id: cpr
uses: peter-evans/create-pull-request@v6
with:
- base: ${{ github.head_ref }}
- branch: snapshot-${{ github.ref_name }}-${{ github.job }}-${{ steps.matrix-desc.outputs.branch }}
+ base: ${{ inputs.base }}
+ branch: snapshot-${{ inputs.base }}-${{ github.job }}-${{ steps.matrix-desc.outputs.branch }}
delete-branch: true
title: "test: Snapshot updates for ${{ github.job }} (${{ steps.matrix-desc.outputs.text }})"
body: "Automated changes by [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action${{ github.event.number && format(' for #{0}', github.event.number) || '' }}."
diff --git a/.github/workflows/update-status/action.yml b/.github/workflows/update-status/action.yml
deleted file mode 100644
index 881217088..000000000
--- a/.github/workflows/update-status/action.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-name: 'Update status'
-description: 'Update status'
-inputs:
- sha:
- description: 'SHA to update'
- required: true
- state:
- description: 'state to update'
- required: true
-
-runs:
- using: "composite"
- steps:
- # It's difficult to get the URL of the current job.
- # The /jobs API and/or the `github` context are misaligned.
- # The duckdbneo repository contains several failed attempts.
- - run: |
- set -x
- if [ -n '${{ inputs.sha }}' ]; then
- export GH_TOKEN=${{ github.token }}
-
- html_url=$(gh api \
- -H "Accept: application/vnd.github+json" \
- -H "X-GitHub-Api-Version: 2022-11-28" \
- repos/${{ github.repository }}/actions/runs/${{ github.run_id }} | jq -r .html_url)
-
- gh api \
- --method POST \
- -H "Accept: application/vnd.github+json" \
- -H "X-GitHub-Api-Version: 2022-11-28" \
- repos/${{ github.repository }}/statuses/${{ inputs.sha }} \
- -f "state=${{ job.status }}" -f "target_url=$html_url" -f "description=${{ github.workflow }} / ${{ github.job }}" -f "context=actions-sync"
- fi
- shell: bash
diff --git a/.github/workflows/versions-matrix-read/action.yml b/.github/workflows/versions-matrix-read/action.yml
deleted file mode 100644
index 4aa463975..000000000
--- a/.github/workflows/versions-matrix-read/action.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-name: "Actions to read a matrix with all R and OS versions, computed with the versions-matrix action"
-outputs:
- matrix:
- description: "Generated matrix"
- value: ${{ steps.set-matrix.outputs.matrix }}
-
-runs:
- using: "composite"
- steps:
- - name: Install json2yaml
- run: |
- sudo npm install -g json2yaml
- shell: bash
-
- - id: set-matrix
- run: |
- matrix=$(cat .github/versions-matrix.json || echo '{"include":[{"os":"macos-latest","r":"release"}]}')
- echo $matrix | jq .
- echo $matrix | json2yaml
- echo "matrix=$matrix" | tee -a $GITHUB_OUTPUT
- shell: bash
diff --git a/.github/workflows/versions-matrix/action.R b/.github/workflows/versions-matrix/action.R
index 4a59fe66b..b8e2dcfb1 100644
--- a/.github/workflows/versions-matrix/action.R
+++ b/.github/workflows/versions-matrix/action.R
@@ -1,5 +1,25 @@
-# FIXME: Dynamic lookup by parsing https://svn.r-project.org/R/tags/
-r_versions <- c("devel", paste0("4.", 4:0))
+# Determine active versions of R to test against
+tags <- xml2::read_html("https://svn.r-project.org/R/tags/")
+
+bullets <-
+ tags |>
+ xml2::xml_find_all("//li") |>
+ xml2::xml_text()
+
+version_bullets <- grep("^R-([0-9]+-[0-9]+-[0-9]+)/$", bullets, value = TRUE)
+versions <- unique(gsub("^R-([0-9]+)-([0-9]+)-[0-9]+/$", "\\1.\\2", version_bullets))
+
+r_release <- head(sort(as.package_version(versions), decreasing = TRUE), 5)
+
+deps <- desc::desc_get_deps()
+r_crit <- deps$version[deps$package == "R"]
+if (length(r_crit) == 1) {
+ min_r <- as.package_version(gsub("^>= ([0-9]+[.][0-9]+)(?:.*)$", "\\1", r_crit))
+ r_release <- r_release[r_release >= min_r]
+}
+
+r_versions <- c("devel", as.character(r_release))
+
macos <- data.frame(os = "macos-latest", r = r_versions[2:3])
windows <- data.frame(os = "windows-latest", r = r_versions[1:3])
linux_devel <- data.frame(os = "ubuntu-22.04", r = r_versions[1], `http-user-agent` = "release", check.names = FALSE)
@@ -36,5 +56,5 @@ to_json <- function(x) {
configs <- unlist(lapply(include_list, to_json))
json <- paste0('{"include":[', paste(configs, collapse = ","), ']}')
-writeLines(json, ".github/versions-matrix.json")
+writeLines(paste0("matrix=", json), Sys.getenv("GITHUB_OUTPUT"))
writeLines(json)
diff --git a/.github/workflows/versions-matrix/action.yml b/.github/workflows/versions-matrix/action.yml
index 6ac164b8f..af7378a1b 100644
--- a/.github/workflows/versions-matrix/action.yml
+++ b/.github/workflows/versions-matrix/action.yml
@@ -1,8 +1,18 @@
name: "Actions to compute a matrix with all R and OS versions"
+outputs:
+ matrix:
+ description: "Generated matrix"
+ value: ${{ steps.set-matrix.outputs.matrix }}
+
runs:
using: "composite"
steps:
+ - name: Install json2yaml
+ run: |
+ sudo npm install -g json2yaml
+ shell: bash
+
- id: set-matrix
run: |
Rscript ./.github/workflows/versions-matrix/action.R
diff --git a/DESCRIPTION b/DESCRIPTION
index ac5f0b66a..20429ae09 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,6 +1,6 @@
Package: pillar
Title: Coloured Formatting for Columns
-Version: 1.9.0.9015
+Version: 1.9.0.9025
Authors@R:
c(person(given = "Kirill",
family = "M\u00fcller",
@@ -52,7 +52,7 @@ VignetteBuilder:
knitr
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
-RoxygenNote: 7.3.2
+RoxygenNote: 7.3.2.9000
Config/testthat/edition: 3
Config/testthat/parallel: true
Config/testthat/start-first:
diff --git a/NEWS.md b/NEWS.md
index ebf96b1ae..b52d20d26 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,5 +1,103 @@
+# pillar 1.9.0.9025
+
+## Continuous integration
+
+ - Trigger run (#675).
+
+ - Use pkgdown branch (#674).
+
+ - ci: Use pkgdown branch
+
+ - ci: Updates from duckdb
+
+
+# pillar 1.9.0.9024
+
+## Chore
+
+ - Revdepcheck results.
+
+
+# pillar 1.9.0.9023
+
+## Continuous integration
+
+ - Install via R CMD INSTALL ., not pak (#672).
+
+ - ci: Install via R CMD INSTALL ., not pak
+
+ - ci: Bump version of upload-artifact action
+
+
+# pillar 1.9.0.9022
+
+## Continuous integration
+
+ - Install local package for pkgdown builds.
+
+ - Improve support for protected branches with fledge.
+
+ - Improve support for protected branches, without fledge.
+
+
+# pillar 1.9.0.9021
+
+## Continuous integration
+
+- Sync with latest developments.
+
+
+# pillar 1.9.0.9020
+
+## Continuous integration
+
+- Fix edge case of no suggested packages.
+
+- Use v2 instead of master.
+
+
+# pillar 1.9.0.9019
+
+## Continuous integration
+
+- Inline action.
+
+
+# pillar 1.9.0.9018
+
+## Chore
+
+- Auto-update from GitHub Actions.
+
+ Run: https://github.com/r-lib/pillar/actions/runs/10224241696
+
+## Continuous integration
+
+- Refactor dep-suggests-matrix, avoid killing base and recommended packages.
+
+
+# pillar 1.9.0.9017
+
+## Chore
+
+- Auto-update from GitHub Actions.
+
+ Run: https://github.com/r-lib/pillar/actions/runs/10200114378
+
+## Continuous integration
+
+- Use dev roxygen2 and decor.
+
+
+# pillar 1.9.0.9016
+
+## Documentation
+
+- Update \_pkgdown.yml to bring back search bar (@olivroy, #667).
+
+
# pillar 1.9.0.9015
## Testing
diff --git a/_pkgdown.yml b/_pkgdown.yml
index a8ce03928..6d062d5d5 100644
--- a/_pkgdown.yml
+++ b/_pkgdown.yml
@@ -71,7 +71,6 @@ navbar:
- articles
- tutorials
- news
- right: github
components:
options:
text: Options
diff --git a/man/ctl_new_pillar.Rd b/man/ctl_new_pillar.Rd
index c80660971..f4c27d33b 100644
--- a/man/ctl_new_pillar.Rd
+++ b/man/ctl_new_pillar.Rd
@@ -49,7 +49,7 @@ Implementations should return \code{NULL} if none of the data
fits the available width.
}
\examples{
-\dontshow{if (rlang::is_installed("palmerpenguins") && requireNamespace("tibble")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf}
+\dontshow{if (rlang::is_installed("palmerpenguins") && requireNamespace("tibble")) withAutoprint(\{ # examplesIf}
# Create pillar objects
ctl_new_pillar(
palmerpenguins::penguins,
diff --git a/man/ctl_new_pillar_list.Rd b/man/ctl_new_pillar_list.Rd
index e7464f088..bfa947db3 100644
--- a/man/ctl_new_pillar_list.Rd
+++ b/man/ctl_new_pillar_list.Rd
@@ -65,7 +65,7 @@ and with \code{first_pillar} set to the pillar object constructed in the
first call.
}
\examples{
-\dontshow{if (rlang::is_installed("palmerpenguins") && requireNamespace("tibble")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf}
+\dontshow{if (rlang::is_installed("palmerpenguins") && requireNamespace("tibble")) withAutoprint(\{ # examplesIf}
# Simple column
ctl_new_pillar_list(
tibble::tibble(),
diff --git a/man/glimpse.Rd b/man/glimpse.Rd
index e5f306f11..0cce4e27c 100644
--- a/man/glimpse.Rd
+++ b/man/glimpse.Rd
@@ -39,7 +39,7 @@ See \code{\link[=format_glimpse]{format_glimpse()}} for details on the formattin
\examples{
glimpse(mtcars)
-\dontshow{if (rlang::is_installed("nycflights13")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf}
+\dontshow{if (rlang::is_installed("nycflights13")) withAutoprint(\{ # examplesIf}
glimpse(nycflights13::flights)
\dontshow{\}) # examplesIf}
}
diff --git a/man/tbl_format_body.Rd b/man/tbl_format_body.Rd
index 46b0a58ea..c5f890482 100644
--- a/man/tbl_format_body.Rd
+++ b/man/tbl_format_body.Rd
@@ -30,7 +30,7 @@ If you only need to change the appearance of a single data type,
override \code{\link[vctrs:vec_ptype_full]{vctrs::vec_ptype_abbr()}} and \code{\link[=pillar_shaft]{pillar_shaft()}} for this data type.
}
\examples{
-\dontshow{if (rlang::is_installed("palmerpenguins")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf}
+\dontshow{if (rlang::is_installed("palmerpenguins")) withAutoprint(\{ # examplesIf}
setup <- tbl_format_setup(palmerpenguins::penguins)
tbl_format_body(palmerpenguins::penguins, setup)
diff --git a/man/tbl_format_footer.Rd b/man/tbl_format_footer.Rd
index d2230e4fe..51d1e9263 100644
--- a/man/tbl_format_footer.Rd
+++ b/man/tbl_format_footer.Rd
@@ -30,7 +30,7 @@ The default implementation adds information about rows and columns
that are not shown in the body.
}
\examples{
-\dontshow{if (rlang::is_installed("palmerpenguins")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf}
+\dontshow{if (rlang::is_installed("palmerpenguins")) withAutoprint(\{ # examplesIf}
setup <- tbl_format_setup(palmerpenguins::penguins)
tbl_format_footer(palmerpenguins::penguins, setup)
diff --git a/man/tbl_format_header.Rd b/man/tbl_format_header.Rd
index 0d980c730..43fcf2b19 100644
--- a/man/tbl_format_header.Rd
+++ b/man/tbl_format_header.Rd
@@ -31,7 +31,7 @@ override or extend \code{\link[=tbl_sum]{tbl_sum()}} for your class which is cal
default method.
}
\examples{
-\dontshow{if (rlang::is_installed("palmerpenguins")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf}
+\dontshow{if (rlang::is_installed("palmerpenguins")) withAutoprint(\{ # examplesIf}
setup <- tbl_format_setup(palmerpenguins::penguins)
tbl_format_header(palmerpenguins::penguins, setup)
diff --git a/man/tbl_format_setup.Rd b/man/tbl_format_setup.Rd
index cd73667ed..2af0f4f3b 100644
--- a/man/tbl_format_setup.Rd
+++ b/man/tbl_format_setup.Rd
@@ -86,7 +86,7 @@ standard printing for tibbles.
See \code{\link[=new_tbl_format_setup]{new_tbl_format_setup()}} for details on the returned object.
}
\examples{
-\dontshow{if (rlang::is_installed("palmerpenguins")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf}
+\dontshow{if (rlang::is_installed("palmerpenguins")) withAutoprint(\{ # examplesIf}
tbl_format_setup(palmerpenguins::penguins)
\dontshow{\}) # examplesIf}
}
diff --git a/revdep/README.md b/revdep/README.md
index 8da62ac3d..5377f304a 100644
--- a/revdep/README.md
+++ b/revdep/README.md
@@ -4,11 +4,5 @@
|package |version |error |warning |note |
|:----------|:-------|:-----|:-------|:----|
-|incidence2 |1.2.3 |1 | | |
-
-## New problems (1)
-
-|package |version |error |warning |note |
-|:-------|:-------|:------|:-------|:----|
-|[prt](problems.md#prt)|0.1.5 |__+2__ |__+1__ | |
+|tidyseurat |0.8.0 |1 | | |
diff --git a/revdep/cran.md b/revdep/cran.md
index f9b3f6301..95a78e658 100644
--- a/revdep/cran.md
+++ b/revdep/cran.md
@@ -1,20 +1,12 @@
## revdepcheck results
-We checked 100 reverse dependencies, comparing R CMD check results across CRAN and dev versions of this package.
+We checked 122 reverse dependencies, comparing R CMD check results across CRAN and dev versions of this package.
- * We saw 1 new problems
+ * We saw 0 new problems
* We failed to check 1 packages
Issues with CRAN packages are summarised below.
-### New problems
-(This reports the first line of each new failure)
-
-* prt
- checking examples ... ERROR
- checking tests ... ERROR
- checking re-building of vignette outputs ... WARNING
-
### Failed to check
-* incidence2 (NA)
+* tidyseurat (NA)
diff --git a/revdep/failures.md b/revdep/failures.md
index 4097552ba..a49456a4a 100644
--- a/revdep/failures.md
+++ b/revdep/failures.md
@@ -1,23 +1,23 @@
-# incidence2
+# tidyseurat
-* Version: 1.2.3
-* GitHub: https://github.com/reconverse/incidence2
-* Source code: https://github.com/cran/incidence2
-* Date/Publication: 2021-11-07 22:00:02 UTC
-* Number of recursive dependencies: 87
+* Version: 0.8.0
+* GitHub: https://github.com/stemangiola/tidyseurat
+* Source code: https://github.com/cran/tidyseurat
+* Date/Publication: 2024-01-10 04:50:02 UTC
+* Number of recursive dependencies: 195
-Run `revdepcheck::cloud_details(, "incidence2")` for more info
+Run `revdepcheck::cloud_details(, "tidyseurat")` for more info
## In both
-* checking whether package ‘incidence2’ can be installed ... ERROR
+* checking whether package ‘tidyseurat’ can be installed ... ERROR
```
Installation failed.
- See ‘/tmp/workdir/incidence2/new/incidence2.Rcheck/00install.out’ for details.
+ See ‘/tmp/workdir/tidyseurat/new/tidyseurat.Rcheck/00install.out’ for details.
```
## Installation
@@ -25,38 +25,38 @@ Run `revdepcheck::cloud_details(, "incidence2")` for more info
### Devel
```
-* installing *source* package ‘incidence2’ ...
-** package ‘incidence2’ successfully unpacked and MD5 sums checked
+* installing *source* package ‘tidyseurat’ ...
+** package ‘tidyseurat’ successfully unpacked and MD5 sums checked
** using staged installation
** R
** data
*** moving datasets to lazyload DB
** inst
** byte-compile and prepare package for lazy loading
-Error : The `x` argument of `as_tibble()` can't be missing as of tibble 3.0.0.
-Error: unable to load R code in package ‘incidence2’
+Error: package or namespace load failed for ‘SeuratObject’ in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]):
+ namespace ‘Matrix’ 1.5-4.1 is already loaded, but >= 1.6.4 is required
Execution halted
-ERROR: lazy loading failed for package ‘incidence2’
-* removing ‘/tmp/workdir/incidence2/new/incidence2.Rcheck/incidence2’
+ERROR: lazy loading failed for package ‘tidyseurat’
+* removing ‘/tmp/workdir/tidyseurat/new/tidyseurat.Rcheck/tidyseurat’
```
### CRAN
```
-* installing *source* package ‘incidence2’ ...
-** package ‘incidence2’ successfully unpacked and MD5 sums checked
+* installing *source* package ‘tidyseurat’ ...
+** package ‘tidyseurat’ successfully unpacked and MD5 sums checked
** using staged installation
** R
** data
*** moving datasets to lazyload DB
** inst
** byte-compile and prepare package for lazy loading
-Error : The `x` argument of `as_tibble()` can't be missing as of tibble 3.0.0.
-Error: unable to load R code in package ‘incidence2’
+Error: package or namespace load failed for ‘SeuratObject’ in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]):
+ namespace ‘Matrix’ 1.5-4.1 is already loaded, but >= 1.6.4 is required
Execution halted
-ERROR: lazy loading failed for package ‘incidence2’
-* removing ‘/tmp/workdir/incidence2/old/incidence2.Rcheck/incidence2’
+ERROR: lazy loading failed for package ‘tidyseurat’
+* removing ‘/tmp/workdir/tidyseurat/old/tidyseurat.Rcheck/tidyseurat’
```
diff --git a/revdep/problems.md b/revdep/problems.md
index db8ee8a0a..9a2073633 100644
--- a/revdep/problems.md
+++ b/revdep/problems.md
@@ -1,81 +1 @@
-# prt
-
-
-
-* Version: 0.1.5
-* GitHub: https://github.com/nbenn/prt
-* Source code: https://github.com/cran/prt
-* Date/Publication: 2022-07-18 09:40:02 UTC
-* Number of recursive dependencies: 67
-
-Run `revdepcheck::cloud_details(, "prt")` for more info
-
-
-
-## Newly broken
-
-* checking examples ... ERROR
- ```
- Running examples in ‘prt-Ex.R’ failed
- The error most likely occurred in:
-
- > ### Name: print.prt
- > ### Title: Printing prt
- > ### Aliases: print.prt format.prt trunc_dt
- >
- > ### ** Examples
- >
- > cars <- as_prt(mtcars)
- ...
- 9. ├─base::format(x, ..., n = n, width = width, max_extra_cols = max_extra_cols)
- 10. └─prt:::format.prt(x, ..., n = n, width = width, max_extra_cols = max_extra_cols)
- 11. ├─base::format(trunc_dt(x, n = n, width = width, max_extra_cols = max_extra_cols))
- 12. └─prt::trunc_dt(x, n = n, width = width, max_extra_cols = max_extra_cols)
- 13. └─prt:::shrink_dt(df, rows)
- 14. └─pillar::colonnade(df, has_row_id = FALSE)
- 15. └─lifecycle::deprecate_stop("1.9.0", "pillar::colonnade()", "pillar::tbl_format_setup()")
- 16. └─lifecycle:::deprecate_stop0(msg)
- 17. └─rlang::cnd_signal(...)
- Execution halted
- ```
-
-* checking tests ... ERROR
- ```
- Running ‘testthat.R’
- Running the tests in ‘tests/testthat.R’ failed.
- Last 13 lines of output:
- 16. │ │ └─base::is.factor(x)
- 17. │ └─base::paste0(...)
- 18. ├─base::format(x, ..., n = n, width = width, max_extra_cols = max_extra_cols)
- 19. └─prt:::format.prt(x, ..., n = n, width = width, max_extra_cols = max_extra_cols)
- 20. ├─base::format(trunc_dt(x, n = n, width = width, max_extra_cols = max_extra_cols))
- 21. └─prt::trunc_dt(x, n = n, width = width, max_extra_cols = max_extra_cols)
- 22. └─prt:::shrink_dt(df, rows)
- 23. └─pillar::colonnade(df, has_row_id = FALSE)
- 24. └─lifecycle::deprecate_stop("1.9.0", "pillar::colonnade()", "pillar::tbl_format_setup()")
- 25. └─lifecycle:::deprecate_stop0(msg)
- 26. └─rlang::cnd_signal(...)
-
- [ FAIL 4 | WARN 0 | SKIP 0 | PASS 257 ]
- Error: Test failures
- Execution halted
- ```
-
-* checking re-building of vignette outputs ... WARNING
- ```
- Error(s) in re-building vignettes:
- ...
- --- re-building ‘prt.Rmd’ using rmarkdown
- Quitting from lines 35-37 (prt.Rmd)
- Error: processing vignette 'prt.Rmd' failed with diagnostics:
- `colonnade()` was deprecated in pillar 1.9.0 and is now defunct.
- ℹ Please use `tbl_format_setup()` instead.
- --- failed re-building ‘prt.Rmd’
-
- SUMMARY: processing the following file failed:
- ‘prt.Rmd’
-
- Error: Vignette re-building failed.
- Execution halted
- ```
-
+*Wow, no problems at all. :)*
\ No newline at end of file