You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tools to run a reverse dependency check similar to CRAN.
4
-
3
+
Run a reverse dependency check similar to CRAN.
5
4
6
5
## How to use with GitHub Actions
7
6
8
-
To use this on GitHub Actions you can simply call the [reusable workflow](https://docs.github.com/en/actions/using-workflows/reusing-workflows). To do this, create a new workflow in your package git repo named `.github/workflows/recheck.yml` which contains the following:
7
+
We prepared a [reusable workflow](https://docs.github.com/en/actions/using-workflows/reusing-workflows) that you can easily run for free on GitHub Actions. To do this, create a new workflow file in your package git repo named `.github/workflows/recheck.yml` which contains the following:
subdirectory: ''#if your package is in a git subdir
28
+
subdirectory: ''# set if your R package is in a subdir of the git repo
29
+
repo: ''# set to recheck an R package from another git repo
30
+
ref: ''# set to recheck a custom tag/branch from another repo
30
31
```
31
32
32
-
Then trigger it manually using the 'run workflow' button under the actions tab. Note that you can pick a branch to test, so you can perform reverse dependency checks on a feature branch before merging into main.
33
+
After committing this file, you can trigger it using the 'run workflow' button under the actions tab. Note that you can pick a target branch in this UI, so you can perform the reverse dependency checks on a feature branch.
33
34
34
35
A summary of the results can be seen in the GHA webUI. Upon completion, the full install/check logs for all packages are available in the 'artifacts' section.
35
36
36
-
See [Advanced Usage](#advanced-usage) for information on additional workflow arguments recheck supports.
37
+
The `repo` and `ref` parameters are only needed if you want to recheck a package from another git repository than the one that has the workflow.
37
38
38
39
## Real world example
39
40
@@ -45,9 +46,9 @@ See here for an example using the V8 package: https://github.com/jeroen/V8/actio
45
46
46
47
## Recheck goals and limitations
47
48
48
-
A reverse dependency check can be a useful diagnostic tool to identify potential regressions that may need further investigation. However it is often impractical to use as a red/green CI test: checks from other packages that depend on yours can be influenced by all sorts of factors specific to the platform, hardware, network, system setup, or just random failures.
49
+
A reverse dependency check can be a helpful diagnostic tool to identify potential regressions that may need investigation. However it is typically too volatile to use as an automatic pass/fail CI test: checks results from other packages can be influenced by all sorts of factors specific to the platform, hardware, network, system setup, or just random failures.
49
50
50
-
The goal of this repo is to provide a simple tool that can run on free infrastructure to discover potential problems with reverse dependencies of your package. However it is still up to you to interpret the results, and possibly investigate them to identify problems. We try to create a setup similar to CRAN, but we need to make trade offs to keep this practical (see below).
51
+
The goal of this repo is to provide a simple tool that can run on free infrastructure to discover potential problems with reverse dependencies of your package. It is still up to you to interpret the results. We try to create a setup similar to CRAN, but we need to make trade offs to keep this practical (see below).
51
52
52
53
## Important caveats
53
54
@@ -57,45 +58,9 @@ Hence even if your package only has a handful of dependents, you may need to ins
57
58
58
59
CRAN runs revdep checks on `r-devel` on a server with `debian:testing` but there are currently no R binary packages available for this platform. Instead our containers are based on `ubuntu:latest` and run `r-release`, for which public binary packages are available via https://p3m.dev and https://r-universe.dev. This is one reason results might be slighlty different from what CRAN would show, though in practice it is usually irrelevant.
59
60
61
+
It is also not the goal of this repo to support every possible flag in `CMD check`
62
+
60
63
## On rcheckserver
61
64
62
65
On GitHub actions we run the check inside the [rcheckserver](https://github.com/r-devel/rcheckserver)
63
66
container. This container has the same system libraries installed as the CRAN Debian server.
64
-
65
-
## Advanced Usage
66
-
67
-
By default, recheck runs against the package in the current repository.
68
-
For some use cases, it may be useful to run recheck against a repository other than the current one and/or against a branch other than the default.
69
-
70
-
This can be achieved through a combination of the `repo` and `ref` parameters:
71
-
72
-
- `repo`: Repository to checkout (as `owner/repo`)
73
-
- `ref`: The branch, tag or SHA to checkout
74
-
75
-
See the following example to get an idea of what this can look like:
0 commit comments