Skip to content

Fix CI: add missing Remotes for ccflowR + presto (dependency-resolution failure) - #3

Merged
Huangy57 merged 1 commit into
mainfrom
huangy57/ci-fix-description-remotes
May 20, 2026
Merged

Huangy57 merged 1 commit into
mainfrom
huangy57/ci-fix-description-remotes

Conversation

@Huangy57

Copy link
Copy Markdown
Collaborator

Problem

R-CMD-check (all 7 platform/version jobs) and lint have been failing on
main
— since the package was first set up — at the "Setup R dependencies"
step, before any checking runs:

! Could not solve package dependencies:
  * Can't install dependency ccflowR
  * Can't install dependency presto
  * ccflowR: Can't find package called ccflowR, presto.

DESCRIPTION declares ccflowR and presto under Suggests:, but Remotes:
only listed nichenetr and multinichenetr. Both ccflowR and presto are
GitHub-only (not on CRAN/Bioconductor), so pak can't resolve them and the
dependency solve aborts — taking down R-CMD-check and lint together.

This is independent of the tutorials work in #2; it fails on a clean main.

Fix

Add the two missing remotes, using the same sources/pins already in
inst/bootstrap.R and the install docs:

Remotes:
    saeyslab/nichenetr,
    saeyslab/multinichenetr,
    immunogenomics/presto,
    settylab/ccflowR@6056c0fe1d1cecfc68aa059bacfbe6bd16725231
  • presto → immunogenomics/presto (public) — resolves with CI's default
    token.
  • ccflowR → settylab/ccflowR at the audited commit
    6056c0fe1d1cecfc68aa059bacfbe6bd16725231 (the SHA pinned in
    inst/bootstrap.R).

⚠️ Remaining CI step — needs a maintainer action (private repo)

settylab/ccflowR is a private repository. The CI workflow
(.github/workflows/R-CMD-check.yaml) authenticates setup-r-dependencies with
the default GITHUB_TOKEN, which can only read this repo — not other private
repos in the org. So with this PR alone, pak will get past presto but still
fail to clone the private ccflowR, and CI will stay red.

To fully green CI, one of:

  1. Give CI a PAT with read access to settylab/ccflowR (recommended). Create
    a repo/org secret (e.g. CCFLOWR_PAT) holding a PAT (classic repo scope, or
    a fine-grained token with read access to settylab/ccflowR), then pass it to
    each setup-r-dependencies step:

    - name: Setup R dependencies
      uses: r-lib/actions/setup-r-dependencies@v2
      with:
        extra-packages: any::rcmdcheck
        needs: check
        github-token: ${{ secrets.CCFLOWR_PAT }}

    (and likewise for the lint and test-coverage jobs). I did not add this
    because it depends on a secret only a maintainer can create; happy to push the
    workflow edit once the secret name is decided.

  2. Or stop CI from installing the private optional dep — e.g. set
    dependencies: '"hard"' on the setup-r-dependencies steps so only
    Imports/Depends are installed. This greens CI without a PAT but skips all
    Suggests-based example/test coverage (Seurat, nichenetr, …), so it's a
    coverage tradeoff worth a maintainer's call.

Verification

After this change, CI dependency resolution should no longer complain about
presto; the remaining failure (if the PAT secret isn't yet configured) will be
on cloning the private ccflowR, confirming the isolation above. Posting the
check results in a comment.

R-CMD-check and lint have failed on main at the "Setup R dependencies"
step since the package was set up: DESCRIPTION declares `ccflowR` and
`presto` under Suggests, but `Remotes:` only covered nichenetr and
multinichenetr, so pak could not locate these GitHub-only packages
("Could not solve package dependencies: Can't find package called
ccflowR, presto") and aborted before any checking ran.

Add the two missing remotes, matching the pins already used by
inst/bootstrap.R and the install docs:
- immunogenomics/presto (public)
- settylab/ccflowR@6056c0f (audited SHA)

Note: settylab/ccflowR is a PRIVATE repository. CI's default GITHUB_TOKEN
cannot read other private repos, so dependency setup will still fail to
clone ccflowR until the workflow is given a PAT secret with read access
to settylab/ccflowR (see PR description). presto resolves with the
default token.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Huangy57
Huangy57 merged commit 82b56ed into main May 20, 2026
1 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant