Skip to content

ci: Check Bioconductor reverse dependencies in revdep4 - #2994

Open
krlmlr wants to merge 2 commits into
mainfrom
claude/revdep-bioconductor
Open

krlmlr wants to merge 2 commits into
mainfrom
claude/revdep-bioconductor

Conversation

@krlmlr

@krlmlr krlmlr commented Oct 18, 2026

Copy link
Copy Markdown
Contributor

Until now, revdep4 checked CRAN reverse dependencies only. The shared revdepx kit in cynkra/cynkratemplate builds its package universe from CRAN's available.packages() (plan.R), drops every package that is not on CRAN (even when named in packages:), and downloads sources from CRAN only (shard.R). Bioconductor was used only to install dependencies of CRAN packages. A CRAN-only walk with which = most, depth 2 gives 3,593 packages today, which matches the 3,595 of the last most/depth-2 run, and none of igraph's 222 strong direct Bioconductor reverse dependencies appears in revdep/manifest.json.

This PR makes Bioconductor reverse dependencies part of a revdep4 run by default, in rigraph's own workflow; consolidating the change into cynkra/cynkratemplate comes later.

  • .github/revdepx/bioconductor.patch patches the kit's plan.R, shard.R, util.R and collect.R: the reverse walk runs over CRAN and Bioconductor (a CRAN row wins on a name clash), at every level (all) or at the first level only (direct); packages: accepts Bioconductor names; sources of Bioconductor packages come from the Bioconductor repositories; report links for them point to bioconductor.org. The plan records which packages are from Bioconductor.
  • revdep4.yaml pins the 16 cynkra/cynkratemplate action references from @main to e45daecc565a10e0624769f868a680e147d2920c, the kit commit the patch is written against, and applies the patch right after the scripts step in the plan, test and collect jobs. The patch is read from the workflow's own commit, so a ref: input pointing at a tree without the patch still works.
  • A new bioconductor input (all, direct, none; default all) maps to REVDEPX_BIOC; none reproduces the previous CRAN-only behaviour.
  • handbook/testing/revdep/README.md says what a run covers.

The Bioconductor release follows the host R, as the kit's dependency database already did: R 4.6 gives Bioconductor 3.23. For which = most, depth 2, a run now enumerates 4,345 packages instead of 3,593: 275 direct and 429 depth-2 Bioconductor packages, plus 48 CRAN packages that reach igraph only through a Bioconductor package. Expect roughly 10 to 15 percent more check time for such a run, and mis-sized shards on the first run, since Bioconductor has no CRAN check timings to plan with.

Verified locally: the patch applies byte-identically to e45daec, the patched scripts parse, and a dry run of plan.R with R_BIOC_VERSION=3.23 reproduces the counts above with bioconductor = all and the old 3,593 with none; packages: "BioNAR ggraph notapkg" keeps BioNAR and ggraph and drops the unknown name. actionlint reports nothing new. Not yet run end to end on Actions: a Bioconductor-only most/depth-2 run of the series tip is being started from the fork.

Prepared with Claude Code, an LLM coding agent: the change in a subsession, this PR by the coordinator session.

  • By submitting this pull request, I assign the copyright of my contribution to The igraph development team.

Generated by Claude Code

Pin every cynkra/cynkratemplate action in revdep4 to e45daec
and apply .github/revdepx/bioconductor.patch to its revdepx scripts
in the plan, test and collect jobs.
The patch is read from the workflow's own commit,
so a `ref` input that lacks it still gets it.

The patch adds REVDEPX_BIOC (none, direct or all):
plan.R enumerates reverse dependencies over CRAN and Bioconductor metadata
and accepts Bioconductor names in `packages:`,
shard.R downloads those sources from Bioconductor,
and collect.R links them to bioconductor.org.
The new `bioconductor` input defaults to all.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015o4YxHfzPsnTZ9fUBQABDV
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015o4YxHfzPsnTZ9fUBQABDV

This branch has not been deployed

No deployments
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.

2 participants