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