-
-
Notifications
You must be signed in to change notification settings - Fork 8.8k
Description
I tried to pick up part of #5779 tonight, and realized something...I believe that the R linting tests are not being run in CI.
I confirmed this by copying those linters used in test_lint.R
into the following script
lintr script (click me)
library(lintr)
args <- commandArgs(
trailingOnly = TRUE
)
SOURCE_DIR <- args[[1L]]
FILES_TO_LINT <- list.files(
path = SOURCE_DIR
, pattern = "\\.r$"
, all.files = TRUE
, ignore.case = TRUE
, full.names = TRUE
, recursive = TRUE
, include.dirs = FALSE
)
LINTERS_TO_USE <- list(
absolute_paths_linter=lintr::absolute_paths_linter
, assignment_linter=lintr::assignment_linter
, closed_curly_linter=lintr::closed_curly_linter
, commas_linter=lintr::commas_linter
, infix_spaces_linter=lintr::infix_spaces_linter
, line_length_linter=lintr::line_length_linter
, no_tab_linter=lintr::no_tab_linter
, object_usage_linter=lintr::object_usage_linter
, object_length_linter=lintr::object_length_linter
, open_curly_linter=lintr::open_curly_linter
, spaces_inside_linter=lintr::spaces_inside_linter
, spaces_left_parentheses_linter=lintr::spaces_left_parentheses_linter
, trailing_blank_lines_linter=lintr::trailing_blank_lines_linter
, trailing_whitespace_linter=lintr::trailing_whitespace_linter
, true_false=lintr::T_and_F_symbol_linter
)
cat(sprintf("Found %i R files to lint\n", length(FILES_TO_LINT)))
results <- NULL
for (r_file in FILES_TO_LINT) {
this_result <- lintr::lint(
filename = r_file
, linters = LINTERS_TO_USE
, cache = FALSE
)
print(
sprintf(
"Found %i linting errors in %s"
, length(this_result)
, r_file
)
, quote = FALSE
)
results <- c(results, this_result)
}
issues_found <- length(results)
if (issues_found > 0L) {
print(results)
}
quit(save = "no", status = issues_found)
And then running it like this
Rscript lintr_r_code.R $(pwd)/R-package
I think the issue is that test_lint.R
includes a skip_on_cran()
skip_on_cran() |
And R tests are run by building a package and using R CMD check --as-cran
xgboost/tests/ci_build/build_test_rpkg.sh
Line 22 in b47b5ac
--as-cran \ |
Line 106 in b47b5ac
R.exe CMD check xgboost*.tar.gz --no-manual --no-build-vignettes --as-cran --install-args=--build |
When I run the script above, it finds 900+ linting issues.
First 100 R linter issues (click me)
Found 55 R files to lint
[1] Found 30 linting errors in R-package//demo/basic_walkthrough.R
[1] Found 7 linting errors in R-package//demo/boost_from_prediction.R
[1] Found 9 linting errors in R-package//demo/caret_wrapper.R
[1] Found 21 linting errors in R-package//demo/create_sparse_matrix.R
[1] Found 15 linting errors in R-package//demo/cross_validation.R
[1] Found 21 linting errors in R-package//demo/custom_objective.R
[1] Found 9 linting errors in R-package//demo/early_stopping.R
[1] Found 8 linting errors in R-package//demo/generalized_linear_model.R
[1] Found 5 linting errors in R-package//demo/gpu_accelerated.R
[1] Found 73 linting errors in R-package//demo/interaction_constraints.R
[1] Found 15 linting errors in R-package//demo/poisson_regression.R
[1] Found 17 linting errors in R-package//demo/predict_first_ntree.R
[1] Found 13 linting errors in R-package//demo/predict_leaf_indices.R
[1] Found 0 linting errors in R-package//demo/runall.R
[1] Found 7 linting errors in R-package//demo/tweedie_regression.R
[1] Found 0 linting errors in R-package//inst/make-r-def.R
[1] Found 22 linting errors in R-package//R/callbacks.R
[1] Found 14 linting errors in R-package//R/utils.R
[1] Found 23 linting errors in R-package//R/xgb.Booster.R
[1] Found 26 linting errors in R-package//R/xgb.create.features.R
[1] Found 13 linting errors in R-package//R/xgb.cv.R
[1] Found 4 linting errors in R-package//R/xgb.DMatrix.R
[1] Found 4 linting errors in R-package//R/xgb.DMatrix.save.R
[1] Found 14 linting errors in R-package//R/xgb.dump.R
[1] Found 33 linting errors in R-package//R/xgb.ggplot.R
[1] Found 37 linting errors in R-package//R/xgb.importance.R
[1] Found 0 linting errors in R-package//R/xgb.load.R
[1] Found 0 linting errors in R-package//R/xgb.load.raw.R
[1] Found 48 linting errors in R-package//R/xgb.model.dt.tree.R
[1] Found 31 linting errors in R-package//R/xgb.plot.deepness.R
[1] Found 2 linting errors in R-package//R/xgb.plot.importance.R
[1] Found 21 linting errors in R-package//R/xgb.plot.multi.trees.R
[1] Found 9 linting errors in R-package//R/xgb.plot.shap.R
[1] Found 26 linting errors in R-package//R/xgb.plot.tree.R
[1] Found 14 linting errors in R-package//R/xgb.save.R
[1] Found 0 linting errors in R-package//R/xgb.save.raw.R
[1] Found 1 linting errors in R-package//R/xgb.serialize.R
[1] Found 6 linting errors in R-package//R/xgb.train.R
[1] Found 1 linting errors in R-package//R/xgb.unserialize.R
[1] Found 0 linting errors in R-package//R/xgboost.R
[1] Found 0 linting errors in R-package//tests/testthat.R
[1] Found 61 linting errors in R-package//tests/testthat/test_basic.R
[1] Found 44 linting errors in R-package//tests/testthat/test_callbacks.R
[1] Found 13 linting errors in R-package//tests/testthat/test_custom_objective.R
[1] Found 22 linting errors in R-package//tests/testthat/test_dmatrix.R
[1] Found 2 linting errors in R-package//tests/testthat/test_gc_safety.R
[1] Found 4 linting errors in R-package//tests/testthat/test_glm.R
[1] Found 38 linting errors in R-package//tests/testthat/test_helpers.R
[1] Found 29 linting errors in R-package//tests/testthat/test_interaction_constraints.R
[1] Found 57 linting errors in R-package//tests/testthat/test_interactions.R
[1] Found 16 linting errors in R-package//tests/testthat/test_lint.R
[1] Found 13 linting errors in R-package//tests/testthat/test_monotone.R
[1] Found 2 linting errors in R-package//tests/testthat/test_parameter_exposure.R
[1] Found 7 linting errors in R-package//tests/testthat/test_poisson_regression.R
[1] Found 11 linting errors in R-package//tests/testthat/test_update.R
[[1]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:6:29: style: Put spaces around all infix operators.
data(agaricus.train, package='xgboost')
~^~
[[2]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:7:28: style: Put spaces around all infix operators.
data(agaricus.test, package='xgboost')
~^~
[[3]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:29:80: style: Trailing whitespace is superfluous.
bst <- xgboost(data = dtrain, max_depth = 2, eta = 1, nrounds = 2, nthread = 2,
^
[[4]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:49:54: style: Trailing whitespace is superfluous.
# you can put in Matrix, sparseMatrix, or xgb.DMatrix
^
[[5]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:61:51: style: Put spaces around all infix operators.
print(paste("sum(abs(pred2-pred))=", sum(abs(pred2-pred))))
~^~
[[6]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:64:5: style: Use <-, not =, for assignment.
raw = xgb.save.raw(bst)
^
[[7]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:69:51: style: Put spaces around all infix operators.
print(paste("sum(abs(pred3-pred))=", sum(abs(pred3-pred))))
~^~
[[8]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:73:47: style: Put spaces around all infix operators.
dtrain <- xgb.DMatrix(data = train$data, label=train$label)
~^~
[[9]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:74:45: style: Put spaces around all infix operators.
dtest <- xgb.DMatrix(data = test$data, label=test$label)
~^~
[[10]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:77:24: style: Put spaces around all infix operators.
watchlist <- list(train=dtrain, test=dtest)
~^~
[[11]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:77:37: style: Put spaces around all infix operators.
watchlist <- list(train=dtrain, test=dtest)
~^~
[[12]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:79:79: style: Trailing whitespace is superfluous.
# watchlist allows us to monitor the evaluation result on all data in the list
^
[[13]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:81:22: style: Put spaces around all infix operators.
bst <- xgb.train(data=dtrain, max_depth=2, eta=1, nrounds=2, watchlist=watchlist,
~^~
[[14]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:81:40: style: Put spaces around all infix operators.
bst <- xgb.train(data=dtrain, max_depth=2, eta=1, nrounds=2, watchlist=watchlist,
~^~
[[15]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:81:47: style: Put spaces around all infix operators.
bst <- xgb.train(data=dtrain, max_depth=2, eta=1, nrounds=2, watchlist=watchlist,
~^~
[[16]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:81:58: style: Put spaces around all infix operators.
bst <- xgb.train(data=dtrain, max_depth=2, eta=1, nrounds=2, watchlist=watchlist,
~^~
[[17]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:81:71: style: Put spaces around all infix operators.
bst <- xgb.train(data=dtrain, max_depth=2, eta=1, nrounds=2, watchlist=watchlist,
~^~
[[18]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:85:22: style: Put spaces around all infix operators.
bst <- xgb.train(data=dtrain, max_depth=2, eta=1, nrounds=2, watchlist=watchlist,
~^~
[[19]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:85:40: style: Put spaces around all infix operators.
bst <- xgb.train(data=dtrain, max_depth=2, eta=1, nrounds=2, watchlist=watchlist,
~^~
[[20]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:85:47: style: Put spaces around all infix operators.
bst <- xgb.train(data=dtrain, max_depth=2, eta=1, nrounds=2, watchlist=watchlist,
~^~
[[21]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:85:58: style: Put spaces around all infix operators.
bst <- xgb.train(data=dtrain, max_depth=2, eta=1, nrounds=2, watchlist=watchlist,
~^~
[[22]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:85:71: style: Put spaces around all infix operators.
bst <- xgb.train(data=dtrain, max_depth=2, eta=1, nrounds=2, watchlist=watchlist,
~^~
[[23]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:93:22: style: Put spaces around all infix operators.
bst <- xgb.train(data=dtrain2, max_depth=2, eta=1, nrounds=2, watchlist=watchlist,
~^~
[[24]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:93:41: style: Put spaces around all infix operators.
bst <- xgb.train(data=dtrain2, max_depth=2, eta=1, nrounds=2, watchlist=watchlist,
~^~
[[25]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:93:48: style: Put spaces around all infix operators.
bst <- xgb.train(data=dtrain2, max_depth=2, eta=1, nrounds=2, watchlist=watchlist,
~^~
[[26]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:93:59: style: Put spaces around all infix operators.
bst <- xgb.train(data=dtrain2, max_depth=2, eta=1, nrounds=2, watchlist=watchlist,
~^~
[[27]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:93:72: style: Put spaces around all infix operators.
bst <- xgb.train(data=dtrain2, max_depth=2, eta=1, nrounds=2, watchlist=watchlist,
~^~
[[28]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:96:7: style: Use <-, not =, for assignment.
label = getinfo(dtest, "label")
^
[[29]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:98:56: style: Put spaces around all infix operators.
err <- as.numeric(sum(as.integer(pred > 0.5) != label))/length(label)
~^~
[[30]]
/Users/jlamb/repos/xgboost/R-package/demo/basic_walkthrough.R:102:11: style: Use <-, not =, for assignment.
dump_path = file.path(tempdir(), 'dump.raw.txt')
^
[[31]]
/Users/jlamb/repos/xgboost/R-package/demo/boost_from_prediction.R:3:29: style: Put spaces around all infix operators.
data(agaricus.train, package='xgboost')
~^~
[[32]]
/Users/jlamb/repos/xgboost/R-package/demo/boost_from_prediction.R:4:28: style: Put spaces around all infix operators.
data(agaricus.test, package='xgboost')
~^~
[[33]]
/Users/jlamb/repos/xgboost/R-package/demo/boost_from_prediction.R:14:24: style: Put spaces around all infix operators.
param <- list(max_depth=2, eta=1, nthread = 2, objective='binary:logistic')
~^~
[[34]]
/Users/jlamb/repos/xgboost/R-package/demo/boost_from_prediction.R:14:31: style: Put spaces around all infix operators.
param <- list(max_depth=2, eta=1, nthread = 2, objective='binary:logistic')
~^~
[[35]]
/Users/jlamb/repos/xgboost/R-package/demo/boost_from_prediction.R:14:57: style: Put spaces around all infix operators.
param <- list(max_depth=2, eta=1, nthread = 2, objective='binary:logistic')
~^~
[[36]]
/Users/jlamb/repos/xgboost/R-package/demo/boost_from_prediction.R:18:44: style: Put spaces around all infix operators.
ptrain <- predict(bst, dtrain, outputmargin=TRUE)
~^~
[[37]]
/Users/jlamb/repos/xgboost/R-package/demo/boost_from_prediction.R:19:43: style: Put spaces around all infix operators.
ptest <- predict(bst, dtest, outputmargin=TRUE)
~^~
[[38]]
/Users/jlamb/repos/xgboost/R-package/demo/caret_wrapper.R:2:51: style: Trailing whitespace is superfluous.
devtools::install_github("topepo/caret/pkg/caret")
^
[[39]]
/Users/jlamb/repos/xgboost/R-package/demo/caret_wrapper.R:16:5: style: Commas should always have a space after.
df[,AgeDiscret:= as.factor(round(Age/10,0))]
^
[[40]]
/Users/jlamb/repos/xgboost/R-package/demo/caret_wrapper.R:16:15: style: Put spaces around all infix operators.
df[,AgeDiscret:= as.factor(round(Age/10,0))]
~^
[[41]]
/Users/jlamb/repos/xgboost/R-package/demo/caret_wrapper.R:16:37: style: Put spaces around all infix operators.
df[,AgeDiscret:= as.factor(round(Age/10,0))]
~^~
[[42]]
/Users/jlamb/repos/xgboost/R-package/demo/caret_wrapper.R:16:41: style: Commas should always have a space after.
df[,AgeDiscret:= as.factor(round(Age/10,0))]
^
[[43]]
/Users/jlamb/repos/xgboost/R-package/demo/caret_wrapper.R:19:5: style: Commas should always have a space after.
df[,AgeCat:= as.factor(ifelse(Age > 30, "Old", "Young"))]
^
[[44]]
/Users/jlamb/repos/xgboost/R-package/demo/caret_wrapper.R:19:11: style: Put spaces around all infix operators.
df[,AgeCat:= as.factor(ifelse(Age > 30, "Old", "Young"))]
~^
[[45]]
/Users/jlamb/repos/xgboost/R-package/demo/caret_wrapper.R:22:5: style: Commas should always have a space after.
df[,ID:=NULL]
^
[[46]]
/Users/jlamb/repos/xgboost/R-package/demo/caret_wrapper.R:22:7: style: Put spaces around all infix operators.
df[,ID:=NULL]
~^~~
[[47]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:9:66: style: Trailing whitespace is superfluous.
# Sometimes the dataset we have to work on have categorical data.
^
[[48]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:12:47: style: Trailing whitespace is superfluous.
# In R, categorical variable is called Factor.
^
[[49]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:35:5: style: Commas should always have a space after.
df[,AgeDiscret:= as.factor(round(Age/10,0))]
^
[[50]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:35:15: style: Put spaces around all infix operators.
df[,AgeDiscret:= as.factor(round(Age/10,0))]
~^
[[51]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:35:37: style: Put spaces around all infix operators.
df[,AgeDiscret:= as.factor(round(Age/10,0))]
~^~
[[52]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:35:41: style: Commas should always have a space after.
df[,AgeDiscret:= as.factor(round(Age/10,0))]
^
[[53]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:38:5: style: Commas should always have a space after.
df[,AgeCat:= as.factor(ifelse(Age > 30, "Old", "Young"))]
^
[[54]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:38:11: style: Put spaces around all infix operators.
df[,AgeCat:= as.factor(ifelse(Age > 30, "Old", "Young"))]
~^
[[55]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:41:5: style: Commas should always have a space after.
df[,ID:=NULL]
^
[[56]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:41:7: style: Put spaces around all infix operators.
df[,ID:=NULL]
~^~~
[[57]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:45:18: style: Commas should always have a space after.
print(levels(df[,Treatment]))
^
[[58]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:55:15: style: Use <-, not =, for assignment.
sparse_matrix = sparse.model.matrix(Improved~.-1, data = df)
^
[[59]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:55:47: style: Put spaces around all infix operators.
sparse_matrix = sparse.model.matrix(Improved~.-1, data = df)
~^~
[[60]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:61:48: style: Trailing whitespace is superfluous.
# 1. Set, for all rows, field in Y column to 0;
^
[[61]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:62:41: style: Trailing whitespace is superfluous.
# 2. set Y to 1 when Improved == Marked;
^
[[62]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:64:15: style: Use <-, not =, for assignment.
output_vector = df[,Y:=0][Improved == "Marked",Y:=1][,Y]
^
[[63]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:64:21: style: Commas should always have a space after.
output_vector = df[,Y:=0][Improved == "Marked",Y:=1][,Y]
^
[[64]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:64:22: style: Put spaces around all infix operators.
output_vector = df[,Y:=0][Improved == "Marked",Y:=1][,Y]
~^~~
[[65]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:64:48: style: Commas should always have a space after.
output_vector = df[,Y:=0][Improved == "Marked",Y:=1][,Y]
^
[[66]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:64:49: style: Put spaces around all infix operators.
output_vector = df[,Y:=0][Improved == "Marked",Y:=1][,Y]
~^~~
[[67]]
/Users/jlamb/repos/xgboost/R-package/demo/create_sparse_matrix.R:64:55: style: Commas should always have a space after.
output_vector = df[,Y:=0][Improved == "Marked",Y:=1][,Y]
^
[[68]]
/Users/jlamb/repos/xgboost/R-package/demo/cross_validation.R:3:29: style: Put spaces around all infix operators.
data(agaricus.train, package='xgboost')
~^~
[[69]]
/Users/jlamb/repos/xgboost/R-package/demo/cross_validation.R:4:28: style: Put spaces around all infix operators.
data(agaricus.test, package='xgboost')
~^~
[[70]]
/Users/jlamb/repos/xgboost/R-package/demo/cross_validation.R:9:24: style: Put spaces around all infix operators.
param <- list(max_depth=2, eta=1, nthread=2, objective='binary:logistic')
~^~
[[71]]
/Users/jlamb/repos/xgboost/R-package/demo/cross_validation.R:9:31: style: Put spaces around all infix operators.
param <- list(max_depth=2, eta=1, nthread=2, objective='binary:logistic')
~^~
[[72]]
/Users/jlamb/repos/xgboost/R-package/demo/cross_validation.R:9:42: style: Put spaces around all infix operators.
param <- list(max_depth=2, eta=1, nthread=2, objective='binary:logistic')
~^~
[[73]]
/Users/jlamb/repos/xgboost/R-package/demo/cross_validation.R:9:55: style: Put spaces around all infix operators.
param <- list(max_depth=2, eta=1, nthread=2, objective='binary:logistic')
~^~
[[74]]
/Users/jlamb/repos/xgboost/R-package/demo/cross_validation.R:15:37: style: Put spaces around all infix operators.
xgb.cv(param, dtrain, nrounds, nfold=5, metrics={'error'})
~^~
[[75]]
/Users/jlamb/repos/xgboost/R-package/demo/cross_validation.R:15:48: style: Put spaces around all infix operators.
xgb.cv(param, dtrain, nrounds, nfold=5, metrics={'error'})
~^~
[[76]]
/Users/jlamb/repos/xgboost/R-package/demo/cross_validation.R:21:37: style: Put spaces around all infix operators.
xgb.cv(param, dtrain, nrounds, nfold=5,
~^~
[[77]]
/Users/jlamb/repos/xgboost/R-package/demo/cross_validation.R:22:15: style: Put spaces around all infix operators.
metrics='error', showsd = FALSE)
~^~
[[78]]
/Users/jlamb/repos/xgboost/R-package/demo/cross_validation.R:32:13: style: Put spaces around all infix operators.
preds <- 1/(1 + exp(-preds))
~^~
[[79]]
/Users/jlamb/repos/xgboost/R-package/demo/cross_validation.R:32:14: style: Place a space before left parenthesis, except in a function call.
preds <- 1/(1 + exp(-preds))
^
[[80]]
/Users/jlamb/repos/xgboost/R-package/demo/cross_validation.R:39:48: style: Put spaces around all infix operators.
err <- as.numeric(sum(labels != (preds > 0)))/length(labels)
~^~
[[81]]
/Users/jlamb/repos/xgboost/R-package/demo/cross_validation.R:43:24: style: Put spaces around all infix operators.
param <- list(max_depth=2, eta=1,
~^~
[[82]]
/Users/jlamb/repos/xgboost/R-package/demo/cross_validation.R:43:31: style: Put spaces around all infix operators.
param <- list(max_depth=2, eta=1,
~^~
[[83]]
/Users/jlamb/repos/xgboost/R-package/demo/custom_objective.R:3:29: style: Put spaces around all infix operators.
data(agaricus.train, package='xgboost')
~^~
[[84]]
/Users/jlamb/repos/xgboost/R-package/demo/custom_objective.R:4:28: style: Put spaces around all infix operators.
data(agaricus.test, package='xgboost')
~^~
[[85]]
/Users/jlamb/repos/xgboost/R-package/demo/custom_objective.R:18:13: style: Put spaces around all infix operators.
preds <- 1/(1 + exp(-preds))
~^~
[[86]]
/Users/jlamb/repos/xgboost/R-package/demo/custom_objective.R:18:14: style: Place a space before left parenthesis, except in a function call.
preds <- 1/(1 + exp(-preds))
^
[[87]]
/Users/jlamb/repos/xgboost/R-package/demo/custom_objective.R:32:48: style: Put spaces around all infix operators.
err <- as.numeric(sum(labels != (preds > 0)))/length(labels)
~^~
[[88]]
/Users/jlamb/repos/xgboost/R-package/demo/custom_objective.R:36:24: style: Put spaces around all infix operators.
param <- list(max_depth=2, eta=1, nthread = 2, verbosity=0,
~^~
[[89]]
/Users/jlamb/repos/xgboost/R-package/demo/custom_objective.R:36:31: style: Put spaces around all infix operators.
param <- list(max_depth=2, eta=1, nthread = 2, verbosity=0,
~^~
[[90]]
/Users/jlamb/repos/xgboost/R-package/demo/custom_objective.R:36:57: style: Put spaces around all infix operators.
param <- list(max_depth=2, eta=1, nthread = 2, verbosity=0,
~^~
[[91]]
/Users/jlamb/repos/xgboost/R-package/demo/custom_objective.R:36:60: style: Trailing whitespace is superfluous.
param <- list(max_depth=2, eta=1, nthread = 2, verbosity=0,
^
[[92]]
/Users/jlamb/repos/xgboost/R-package/demo/custom_objective.R:37:24: style: Put spaces around all infix operators.
objective=logregobj, eval_metric=evalerror)
~^~
[[93]]
/Users/jlamb/repos/xgboost/R-package/demo/custom_objective.R:37:47: style: Put spaces around all infix operators.
objective=logregobj, eval_metric=evalerror)
~^~
[[94]]
/Users/jlamb/repos/xgboost/R-package/demo/custom_objective.R:44:59: style: Trailing whitespace is superfluous.
# there can be cases where you want additional information
^
[[95]]
/Users/jlamb/repos/xgboost/R-package/demo/custom_objective.R:48:92: style: Trailing whitespace is superfluous.
# set label attribute of dtrain to be label, we use label as an example, it can be anything
^
[[96]]
/Users/jlamb/repos/xgboost/R-package/demo/custom_objective.R:55:13: style: Put spaces around all infix operators.
preds <- 1/(1 + exp(-preds))
~^~
[[97]]
/Users/jlamb/repos/xgboost/R-package/demo/custom_objective.R:55:14: style: Place a space before left parenthesis, except in a function call.
preds <- 1/(1 + exp(-preds))
^
[[98]]
/Users/jlamb/repos/xgboost/R-package/demo/custom_objective.R:60:24: style: Put spaces around all infix operators.
param <- list(max_depth=2, eta=1, nthread = 2, verbosity=0,
~^~
[[99]]
/Users/jlamb/repos/xgboost/R-package/demo/custom_objective.R:60:31: style: Put spaces around all infix operators.
param <- list(max_depth=2, eta=1, nthread = 2, verbosity=0,
~^~
[[100]]
/Users/jlamb/repos/xgboost/R-package/demo/custom_objective.R:60:57: style: Put spaces around all infix operators.
param <- list(max_depth=2, eta=1, nthread = 2, verbosity=0,
~^~
Proposal for fixing this issue
I think it would be beneficial to move linting out of the R unit tests into a standalone script, like the approach we use in LightGBM
https://github.com/microsoft/LightGBM/blob/4d43e96bbc10de2937aa70a5829977d46bdb1852/.ci/test.sh#L57
If you do that, all skip_*
logic can be removed, and it will be really obvious if the tests are not passing.