Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SPARK-22063][R] Fixes lint check failures in R by latest commit sha1 ID of lint-r #19290

Closed
wants to merge 7 commits into from

Conversation

HyukjinKwon
Copy link
Member

@HyukjinKwon HyukjinKwon commented Sep 20, 2017

What changes were proposed in this pull request?

Currently, we set lintr to r-lib/lintr@a769c0b (see this and SPARK-14074).

I first tested and checked lintr-1.0.1 but it looks many important fixes are missing (for example, checking 100 length). So, I instead tried the latest commit, r-lib/lintr@5431140, in my local and fixed the check failures.

It looks it has fixed many bugs and now finds many instances that I have observed and thought should be caught time to time, here I filed the results.

The downside looks it now takes about 7ish mins, (it was 2ish mins before) in my local.

How was this patch tested?

Manually, ./dev/lint-r after manually updating the lintr package.

@@ -1,2 +1,2 @@
linters: with_defaults(line_length_linter(100), multiple_dots_linter = NULL, camel_case_linter = NULL, open_curly_linter(allow_single_line = TRUE), closed_curly_linter(allow_single_line = TRUE))
linters: with_defaults(line_length_linter(100), multiple_dots_linter = NULL, object_name_linter = NULL, camel_case_linter = NULL, open_curly_linter(allow_single_line = TRUE), closed_curly_linter(allow_single_line = TRUE))
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

object_name_linter = NULL looks required. Otherwise, it complains about inconsistent naming styles.

@@ -2649,15 +2651,15 @@ setMethod("merge",
#' @return list of columns
#'
#' @note generateAliasesForIntersectedCols since 1.6.0
generateAliasesForIntersectedCols <- function (x, intersectedColNames, suffix) {
generateAliasesForIntersectedCols <- function(x, intersectedColNames, suffix) { # nolint
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks this hits 30 length identifier limit but we can't change as exposed in the doc.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wait... this isn't public though; it's not in https://github.com/apache/spark/blob/master/R/pkg/NAMESPACE
looks like this shouldn't be in the doc (@noRd or # instead of #')

R/pkg/R/column.R Outdated
#' \href{https://spark.apache.org/docs/latest/sparkr.html#data-type-mapping-between-r-and-spark}{
#' Spark Data Types} for available data types.
#' \href{https://spark.apache.org/docs/latest/sparkr.html#data-type-mapping-between-
#' r-and-spark}{Spark Data Types} for available data types.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I checked this link is not broken for sure.

@@ -329,7 +329,7 @@ spark.addFile <- function(path, recursive = FALSE) {
#' spark.getSparkFilesRootDirectory()
#'}
#' @note spark.getSparkFilesRootDirectory since 2.1.0
spark.getSparkFilesRootDirectory <- function() {
spark.getSparkFilesRootDirectory <- function() { # nolint
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto: 30 length identifier limit but exposed in the doc

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this one is an API...

#' \href{http://spark.apache.org/docs/latest/ml-classification-regression.html#random-forest-
#' regression}{Random Forest Regression} and
#' \href{http://spark.apache.org/docs/latest/ml-classification-regression.html#random-forest-
#' classifier}{Random Forest Classification}
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

links were checked

#' \href{http://spark.apache.org/docs/latest/ml-classification-regression.html#gradient-boosted-
#' tree-regression}{GBT Regression} and
#' \href{http://spark.apache.org/docs/latest/ml-classification-regression.html#gradient-boosted-
#' tree-classifier}{GBT Classification}
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

links were checked

#' \href{http://spark.apache.org/docs/latest/ml-classification-regression.html#decision-tree-
#' regression}{Decision Tree Regression} and
#' \href{http://spark.apache.org/docs/latest/ml-classification-regression.html#decision-tree-
#' classifier}{Decision Tree Classification}
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

links were checked

dev/lint-r.R Outdated
@@ -28,6 +28,7 @@ if (! library(SparkR, lib.loc = LOCAL_LIB_LOC, logical.return = TRUE)) {
# NOTE: The CRAN's version is too old to adapt to our rules.
if ("lintr" %in% row.names(installed.packages()) == FALSE) {
devtools::install_github("jimhester/lintr@a769c0b")
# devtools::install_github("jimhester/lintr@5431140")
Copy link
Member Author

@HyukjinKwon HyukjinKwon Sep 20, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here, I didn't yet change this. Up to my knowledge, this doesn't actually try to install this package if already installed though.. just in case.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

because of if ("lintr" %in% row.names(installed.packages()) == FALSE) {
?
it might be the case the Jenkins boxes already have a version installed and this won't update it

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes .. I think I should add few more changes here if we are going to update this package.

Copy link
Member

@viirya viirya Sep 21, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like the commented is an old code. Maybe a comment to explain it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, just to be clear, I didn't change this yet but just commented this for now ... Actually, devtools::install_github("jimhester/lintr@5431140") is new one but I didn't change this yet just in case.

Will add some comments around this when I add few more changes and clean up soon in any event.

@HyukjinKwon
Copy link
Member Author

@felixcheung and @shivaram,

Should we upgrade this to the latest commit? it increases the time by 5ish mins.

If there is any worry about upgrading, I am willing to leave the script as was. The other fixes look reasonable and I have wondered why these are not being caught. Does this make sense to both of you too?

@SparkQA
Copy link

SparkQA commented Sep 20, 2017

Test build #81988 has finished for PR 19290 at commit 6e41eff.

  • This patch fails SparkR unit tests.
  • This patch merges cleanly.
  • This patch adds the following public classes (experimental):
  • #' equivalent to setting thresholds c(1-p, p). In multiclass (or binary)

@SparkQA
Copy link

SparkQA commented Sep 20, 2017

Test build #82000 has finished for PR 19290 at commit 2baefd9.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@shivaram
Copy link
Contributor

@HyukjinKwon Thanks for looking at this. The 5 min addition seems unfortunate though -- does that also happen with lintr-1.0.1 ? I wonder if we are seeing some specific performance slowdown because of not using a release (it might be good to follow up with lint-r authors if that is the case ?)

Copy link
Member

@felixcheung felixcheung left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we should use the git tag of the 1.0.1 release
https://github.com/jimhester/lintr/releases

colsX <- generateAliasesForIntersectedCols(x, by, suffixes[1])
colsY <- generateAliasesForIntersectedCols(y, by, suffixes[2])
colsX <- generateAliasesForIntersectedCols(x, by, suffixes[1]) # nolint
colsY <- generateAliasesForIntersectedCols(y, by, suffixes[2]) # nolint
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what's the problem here? name too long I think?

@@ -2649,15 +2651,15 @@ setMethod("merge",
#' @return list of columns
#'
#' @note generateAliasesForIntersectedCols since 1.6.0
generateAliasesForIntersectedCols <- function (x, intersectedColNames, suffix) {
generateAliasesForIntersectedCols <- function(x, intersectedColNames, suffix) { # nolint
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wait... this isn't public though; it's not in https://github.com/apache/spark/blob/master/R/pkg/NAMESPACE
looks like this shouldn't be in the doc (@noRd or # instead of #')

@@ -329,7 +329,7 @@ spark.addFile <- function(path, recursive = FALSE) {
#' spark.getSparkFilesRootDirectory()
#'}
#' @note spark.getSparkFilesRootDirectory since 2.1.0
spark.getSparkFilesRootDirectory <- function() {
spark.getSparkFilesRootDirectory <- function() { # nolint
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this one is an API...

dev/lint-r.R Outdated
@@ -28,6 +28,7 @@ if (! library(SparkR, lib.loc = LOCAL_LIB_LOC, logical.return = TRUE)) {
# NOTE: The CRAN's version is too old to adapt to our rules.
if ("lintr" %in% row.names(installed.packages()) == FALSE) {
devtools::install_github("jimhester/lintr@a769c0b")
# devtools::install_github("jimhester/lintr@5431140")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

because of if ("lintr" %in% row.names(installed.packages()) == FALSE) {
?
it might be the case the Jenkins boxes already have a version installed and this won't update it

@felixcheung
Copy link
Member

I think this is great to have, thanks for solving the mystery.

  • 5 min: this is mildly concerning, is it possible this is caused by new checks in lintr? perhaps we could exclude them or something?
  • lintr version: I see what you say about 1.0.1. According this commit list https://github.com/jimhester/lintr/commits/master the tag for 1.0.1 vs the latest (the git tag you are using) are different only by some insignificant changes?

@HyukjinKwon
Copy link
Member Author

HyukjinKwon commented Sep 21, 2017

To @shivaram:

does that also happen with lintr-1.0.1 ? I wonder if we are seeing some specific performance slowdown because of not using a release (it might be good to follow up with lint-r authors if that is the case ?)

I just ran it with lintr-1.0.1. This took 2ish mins in my local, which is almost identical with the current, r-lib/lintr@a769c0b. I opened an issue here - https://github.com/jimhester/lintr/issues/270.



To @felixcheung:

5 min: this is mildly concerning, is it possible this is caused by new checks in lintr? perhaps we could exclude them or something?

I tried to disable all the linters documented in https://github.com/jimhester/lintr/blob/master/README.md#available-linters:

diff --git a/R/pkg/.lintr b/R/pkg/.lintr
index ae50b28ec61..ca1efcfacc7 100644
--- a/R/pkg/.lintr
+++ b/R/pkg/.lintr
@@ -1,2 +1,2 @@
-linters: with_defaults(line_length_linter(100), multiple_dots_linter = NULL, camel_case_linter = NULL, open_curly_linter(allow_single_line = TRUE), closed_curly_linter(allow_single_line = TRUE))
+linters: with_defaults(commas_linter = NULL, object_usage_linter = NULL, absolute_path_linter = NULL, nonportable_path_linter = NULL, pipe_continuation_linter = NULL, assignment_linter = NULL, closed_curly_linter = NULL, extraction_operator_linter = NULL, implicit_integer_linter = NULL, infix_spaces_linter = NULL, line_length_linter = NULL, no_tab_linter = NULL, object_length_linter = NULL, object_name_linter = NULL, open_curly_linter = NULL, semicolon_terminator_linter = NULL, single_quotes_linter = NULL, spaces_inside_linter = NULL, spaces_left_parentheses_linter = NULL, todo_comment_linter = NULL, trailing_blank_lines_linter = NULL, trailing_whitespace_linter = NULL, T_and_F_symbol_linter = NULL, undesirable_function_linter = NULL, undesirable_operator_linter = NULL, unneeded_concatenation_linter = NULL)
 exclusions: list("inst/profile/general.R" = 1, "inst/profile/shell.R")

and this took 1.5 mins. Looks we could identify some linters that we might not need.

lintr version: I see what you say about 1.0.1. According this commit list https://github.com/jimhester/lintr/commits/master the tag for 1.0.1 vs the latest (the git tag you are using) are different only by some insignificant changes?

Diff looks 122 commits - r-lib/lintr@v1.0.1...master . Will take a look though the commit logs (pending ..)

@SparkQA
Copy link

SparkQA commented Sep 21, 2017

Test build #82034 has finished for PR 19290 at commit 49a166d.

  • This patch fails PySpark unit tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@felixcheung
Copy link
Member

felixcheung commented Sep 21, 2017

isn't it the other way around?
https://github.com/jimhester/lintr/compare/v1.0.1?expand=1

anyway I mean if we use the git tag 9951084 it should match v1.0.1 release exactly.
the one you listed r-lib/lintr@5431140 is in master I think and perhaps you are saying there are more changes in master (which is true from the diff)?

@felixcheung
Copy link
Member

btw, could you check if haven't already, if nolint around the http link, roxygen is going to handle that correctly?

@HyukjinKwon
Copy link
Member Author

HyukjinKwon commented Sep 22, 2017

Yes, I checked already.

@SparkQA
Copy link

SparkQA commented Sep 22, 2017

Test build #82081 has started for PR 19290 at commit 7e6c2c5.

@HyukjinKwon
Copy link
Member Author

Will update the comment tomorrow.

@HyukjinKwon
Copy link
Member Author

HyukjinKwon commented Sep 23, 2017

anyway I mean if we use the git tag 9951084 it should match v1.0.1 release exactly.
the one you listed r-lib/lintr@5431140 is in master I think and perhaps you are saying there are more changes in master (which is true from the diff)?

Ah, yes. It looks some changes are intendedly not into v1.0.1 (vs the master), and given the results from the linter in my local, v1.0.1 missed some important changes. Although I am not used to the policy there, I see the large diff in the commit logs (master vs tag v1.0.1).

@HyukjinKwon
Copy link
Member Author

HyukjinKwon commented Sep 23, 2017

5 min: this is mildly concerning, is it possible this is caused by new checks in lintr? perhaps we could exclude them or something?

Assuming from the doc, 1.0.1 looks missing the linters below (vs master):

nonportable_path_linter: check that file.path() is used to construct safe and portable paths.
pipe_continuation_linter: Check that each step in a pipeline is on a new line, or the entire pipe fits on one line.
extraction_operator_linter: check that the [[ operator is used when extracting a single element from an object, not [ (subsetting) nor $ (interactive use).
implicit_integer_linter: check that integers are explicitly typed using the form 1L instead of 1.
object_name_linter: check that object names conform to a single naming style, e.g. snake_case or lowerCamelCase.
semicolon_terminator_linter: check that no semicolons terminate statements.
todo_comment_linter: check that the source contains no TODO comments (case-insensitive).
T_and_F_symbol_linter: avoid the symbols T and F (for TRUE and FALSE).
undesirable_function_linter: report the use of undesirable functions, e.g. options or sapply and suggest an alternative.
undesirable_operator_linter: report the use of undesirable operators, e.g. ::: or <<- and suggest an alternative.
unneeded_concatenation_linter: check that the c function is not used without arguments nor with a single constant

I manually disabled the linters above but the elapsed time looks almost the same. So, I think some existing linters were slowed down in the master.

I tried to disable everything except for each linter, https://gist.github.com/HyukjinKwon/1f852bcdcc2a13f396dfd2d6a88bea16

@HyukjinKwon
Copy link
Member Author

I also tried v1.0.1 against the master; however, it looks not detecting many instances this PR fixes. It only detected 3 extra instances:

R/DataFrame.R:2615:22: style: Variable and function names should not be longer than 30 characters.
            colsX <- generateAliasesForIntersectedCols(x, by, suffixes[1])
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
R/DataFrame.R:2616:22: style: Variable and function names should not be longer than 30 characters.
            colsY <- generateAliasesForIntersectedCols(y, by, suffixes[2])
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
R/DataFrame.R:2666:1: style: Variable and function names should not be longer than 30 characters.
generateAliasesForIntersectedCols <- function (x, intersectedColNames, suffix) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lintr checks failed.

So, I would like to propose to use r-lib/lintr@5431140 if possible.

I opened an issue to ask a question about this slowdown - https://github.com/jimhester/lintr/issues/270. Probably, we could wait for few days. if nothing could be done for now, I guess we could consider just use r-lib/lintr@5431140 as is ...

@HyukjinKwon
Copy link
Member Author

retest this please

@SparkQA
Copy link

SparkQA commented Sep 23, 2017

Test build #82120 has finished for PR 19290 at commit 7e6c2c5.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@@ -2650,8 +2650,9 @@ setMethod("merge",
#' @param suffix a suffix for the column name
#' @return list of columns
#'
#' @note generateAliasesForIntersectedCols since 1.6.0
generateAliasesForIntersectedCols <- function(x, intersectedColNames, suffix) { # nolint
#' @note genAliasesForIntersectedCols since 1.6.0
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: I'd remove this @note too

@felixcheung
Copy link
Member

oh, remember to remove WIP and update this line https://github.com/apache/spark/pull/19290/files#diff-74ca2b618d236bbd6faa23e13bff1403R30 before merging in?

dev/lint-r.R Outdated
# The current latest is jimhester/lintr@5431140 (see SPARK-22063), the dev version,
# '1.0.1.9000'.
if ("lintr" %in% row.names(installed.packages()) == FALSE ||
packageVersion("lintr") != "1.0.1.9000") {
Copy link
Member Author

@HyukjinKwon HyukjinKwon Sep 24, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I checked this - when downgrading, upgrading and not installed in my local.

@@ -238,8 +238,10 @@ setMethod("between", signature(x = "Column"),
#' @param x a Column.
#' @param dataType a character object describing the target data type.
#' See
# nolint start
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just double checked the links.

@HyukjinKwon HyukjinKwon changed the title [WIP][SPARK-22063][R] Upgrades lintr to latest commit sha1 ID [SPARK-22063][R] Upgrades lintr to latest commit sha1 ID Sep 24, 2017
@HyukjinKwon
Copy link
Member Author

HyukjinKwon commented Sep 24, 2017

Ugh.. it looks failed to install due to permission issue ...

Downloading GitHub repo jimhester/lintr@5431140
from URL https://api.github.com/repos/jimhester/lintr/zipball/5431140
Installing lintr
Downloading GitHub repo hadley/xml2@master
from URL https://api.github.com/repos/hadley/xml2/zipball/master
Installing xml2
'/usr/lib64/R/bin/R' --no-site-file --no-environ --no-save --no-restore  \
  --quiet CMD INSTALL  \
  '/tmp/RtmprFnaBu/devtools438c516b7717/r-lib-xml2-5799cd9'  \
  --library='/usr/lib64/R/library' --install-tests 

Error: ERROR: no permission to install to directory '/usr/lib64/R/library'
Installation failed: Command failed (1)
'/usr/lib64/R/bin/R' --no-site-file --no-environ --no-save --no-restore  \
  --quiet CMD INSTALL  \
  '/tmp/RtmprFnaBu/devtools438c286c3792/jimhester-lintr-5431140'  \
  --library='/usr/lib64/R/library' --install-tests 

Error: ERROR: no permission to install to directory '/usr/lib64/R/library'
Installation failed: Command failed (1)

@HyukjinKwon
Copy link
Member Author

HyukjinKwon commented Sep 24, 2017

Hi @shaneknapp. I am sorry but it's me again ...

Here, this PR tries to upgrade an R package, lintr for static code analysis for R, which is ran via ./dev/lint-r -> dev/lint-r.R as a part of Jenkins PR build.

This upgrade catches many meaningful instances that should have been caught before in SparkR codes and if I understood correctly, we decided to upgrade this if it does not cause a problem.

I tried to fix the dev/lint-r.R script so that lintr can be upgraded if this package is not installed or not the specific version (1.0.1.9000) after testing this in my local, but looks failed to upgrade in Jenkins due to a permission issue.

I believe the bash command below installs upgrades the package correctly (tested in my local):

Rscript -e "devtools::install_github('jimhester/lintr@5431140')"

Maybe, I should have cc'ed you here first before trying this one. I apologise and I will cc you first in such cases in the future.

@SparkQA
Copy link

SparkQA commented Sep 24, 2017

Test build #82128 has finished for PR 19290 at commit 387228d.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@SparkQA
Copy link

SparkQA commented Sep 24, 2017

Test build #82129 has finished for PR 19290 at commit ee7eb9d.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@shaneknapp
Copy link
Contributor

@HyukjinKwon -- you will absolutely not have builds install packages on the build system. this is a really bad idea.

is this absolutely required, or just to fix a warning in the build output?

@HyukjinKwon
Copy link
Member Author

I just double checked the newer lintr, lintr@5431140, passes on the top of the master with the current change.

@SparkQA
Copy link

SparkQA commented Sep 29, 2017

Test build #82308 has finished for PR 19290 at commit 550750e.

  • This patch fails due to an unknown error code, -9.
  • This patch merges cleanly.
  • This patch adds no public classes.

@HyukjinKwon
Copy link
Member Author

retest this please

Copy link
Member

@felixcheung felixcheung left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yap, let's update the PR title too

@SparkQA
Copy link

SparkQA commented Sep 29, 2017

Test build #82312 has finished for PR 19290 at commit 550750e.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@shaneknapp
Copy link
Contributor

shaneknapp commented Sep 29, 2017 via email

@HyukjinKwon
Copy link
Member Author

Ah, thank you @shaneknapp. The command below:

Rscript -e "devtools::install_github('jimhester/lintr@5431140')"

should upgrades lintr to the desired version here.

Actually, looks we should merge this one first before upgrading lintr in Jenkins. I realised upgrading it first could make R lintr check failures in other PRs up to my knowledge ..

I updated the change here back to not try to upgrade lintr. So, merging this one would not cause a problem on the build system. Let me go ahead with this one first and then I guess we could upgrade.

Thanks again and I am sorry for this, @shaneknapp.

@HyukjinKwon HyukjinKwon changed the title [SPARK-22063][R] Upgrades lintr to latest commit sha1 ID [SPARK-22063][R] Fixes lint check failures in R by latest commit sha1 ID of lint-r Sep 30, 2017
@felixcheung
Copy link
Member

btw, lintr once upgraded will run on all builds on all branches right? wouldn't the upgrade break other branches?

@shaneknapp
Copy link
Contributor

@felixcheung -- yes, this is the system default lintr, meaning all calls to lintr will be against this version.

as for other branches, i think it could possibly break them.

@shivaram thoughts?

@HyukjinKwon
Copy link
Member Author

Let me merge this one first. This shouldn't cause any problem to built system for now.

@asfgit asfgit closed this in 02c91e0 Oct 1, 2017
@HyukjinKwon
Copy link
Member Author

Merged to master.

@HyukjinKwon
Copy link
Member Author

So, @felixcheung, @shaneknapp and @shivaram, looks we have comments, #19290 (comment) and #19290 (comment), to discuss further.

The problem looks upgrading lintr to jimhester/lintr@5431140 could break other builds in other branches.

Should I rather try to install this for each build, for example, via checking the environment variables as a workaround? I checked those before - #17669 (comment)

@shaneknapp
Copy link
Contributor

i filed a bug about this on the spark jira:
https://issues.apache.org/jira/browse/SPARK-22996

as we're about to move all the spark builds to new ubuntu machines, w/much more up2date package installs (especially R packages), we need to fix the lint problems and help make builds green again.

@felixcheung
Copy link
Member

felixcheung commented Jan 9, 2018 via email

@shaneknapp
Copy link
Contributor

shaneknapp commented Jan 9, 2018 via email

@felixcheung
Copy link
Member

Given that we are forking 2.3 and locking down the branch any time now, it might make sense to stay with the "current version running on old centos workers", even though they are old.

@HyukjinKwon
Copy link
Member Author

BTW, I believe we are testing it with R 3.4.1 via AppVeyor too. I have been thinking it's good to test both old and new versions ... I think we have a weak promise for R 3.1+ - http://spark.apache.org/docs/latest/index.html#downloading

@shaneknapp
Copy link
Contributor

ok sounds good -- we'll keep things 'old' for now.

@shivaram
Copy link
Contributor

shivaram commented Jan 9, 2018

The minimum R version supported is something that we can revisit though. I think we do this for Python, Java versions as well in the project

@felixcheung
Copy link
Member

felixcheung commented Jan 9, 2018 via email

@HyukjinKwon
Copy link
Member Author

I believe the issue with testthat he meatn is, it fails to run tests with testthat 2.0.0 is released. Just for a reminder, I rushed to update appveyor.yml to use a fixed version #20003 as it broke the tests. There are some details there to remember back.

@felixcheung
Copy link
Member

argh, thanks for the reminder and the fix.
I knew calling internal method is going to bite us ... :(

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.

6 participants