This package simply aims to reproduce an issue encountered while working on a bigger project when using pipes (%>%).
GHA fails
to build on macOS and Ubuntu when pipes are used in more than one single file
when pipes do not start on a new line.
No errors locally (Linux).
On GHA, remember to install the package that you are testing by running
R CMD INSTALL .
on Linux and macOS systems.
Add this to your yaml file after 'Installing dependencies'
- name: Install package
if: runner.os == 'macOS' || runner.os == 'Linux'
run: R CMD INSTALL .
examples of breaking code according to lintr
Example of code that breaks on GHA:
data.frame(col1 = c1, col2 = c2) %>% stats::na.omit()
Everything on one line: lintr does not like this!
On GHA, lintr::expect_lint_free()
throws the following error:
Warning: no visible global function definition for ‘%>%’
examples of working code according to lintr
Example of code that builds without erros on GHA:
data.frame(col1 = c1,
col2 = c2) %>% stats::na.omit()
Each pipe is on a new line: lintr likes this! <3
After some digging, it seems that the object_usage_linter
is responsible for
breaking the code. This linter harnesses the codetools package.
This linter calls codetools::checkUsage
on closures.
In this specific case, this will look something like this:
codetools::checkUsage(function1 <- function(x) {
c1 <- as.numeric(x$col1)
c2 <- as.numeric(x$col2)
data.frame(col1 = c1, col2 = c2) %>% stats::na.omit()
})