[ 
https://issues.apache.org/jira/browse/ARROW-8880?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17113573#comment-17113573
 ] 

Neal Richardson commented on ARROW-8880:
----------------------------------------

C++ binaries for 0.17.1 now exist in the right place. Thanks again for the 
heads up about that.

> [R][Linux] Make R Binary Install Friendlier
> -------------------------------------------
>
>                 Key: ARROW-8880
>                 URL: https://issues.apache.org/jira/browse/ARROW-8880
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: R
>    Affects Versions: 0.17.1
>         Environment: Linux (Ubuntu)
>            Reporter: Brian Schultheiss
>            Priority: Minor
>
> When R install tries to run a binary install, it looks for an exact match on 
> the binary version, say "0.17.1.zip" from 
> [https://dl.bintray.com/ursalabs/arrow-r/libarrow/bin/ubuntu-18.04/].
> The problem is that even though "0.17.1" is pushed to CRAN as an official 
> release, there is a time period (like right now) where bintray does not have 
> an official binary build, just a date stamped build:
>  
> arrow-0.17.0.20200516.zip
>  arrow-0.17.0.20200517.zip
>  arrow-0.17.0.20200518.zip
>  arrow-0.17.0.zip
>  arrow-0.17.1.20200517.zip
>  arrow-0.17.1.20200519.zip
>  arrow-0.17.1.20200520.zip
>  
> I'd like to suggest adding a new environment variable trigger that would 
> allow for the scanning of bintray for a recent timestamped version, if the 
> specific release number is not present.
> I'd like to suggest enhancing the linux code:
> [https://github.com/apache/arrow/blob/02f7be33d1c32d1636323e6fb90c63cb01bf44af/r/tools/linuxlibs.R#L39-L47]
> with scanning functionality:
> {color:#c1c7d0}try_download <- function(from_url, to_file, scan_dates = 
> FALSE) {{color}
>  {color:#c1c7d0}    try({color}
>  {color:#c1c7d0}            suppressWarnings({color}
>  {color:#c1c7d0}                  download.file(from_url, to_file, quiet = 
> quietly){color}
>  {color:#c1c7d0}            ),{color}
>  {color:#c1c7d0}            silent = quietly{color}
>  {color:#c1c7d0}      ){color}
>  {color:#0747a6}{color:#c1c7d0}      if (!file.exists(to_file)) 
> {{color}{color}
> {color:#0747a6} {color:#c1c7d0}               {color}{color:#c1c7d0} if 
> (scan_dates) {{color}{color}
> {color:#0747a6} {color:#0747a6}                      scan_dates <- 
> format(Sys.Date()-(0:10),"%Y%m%d"){color}{color}
> {color:#0747a6} {color:#0747a6}                       for (scan_date in 
> scan_dates) {{color}{color}
> {color:#0747a6} {color:#0747a6}                              base_url <- 
> tools::file_path_sans_ext(from_url){color}{color}
> {color:#0747a6} {color:#0747a6}                              ext <- 
> tools::file_ext(from_url){color}{color}
> {color:#0747a6} {color:#0747a6}                              scan_url <- 
> sprintf("%s.%s.%s", base_url, scan_date, ext){color}{color}
> {color:#0747a6} {color:#0747a6}                              if 
> (try_download(from_url = scan_url, to_file, scan_dates = FALSE)) 
> {{color}{color}
> {color:#0747a6} {color:#0747a6}                                      
> return(TRUE){color}{color}
> {color:#0747a6} {color:#0747a6}                              }{color}{color}
> {color:#0747a6} {color:#0747a6}                        }{color}{color}
> {color:#0747a6} {color:#0747a6}                 }{color}{color}
> {color:#0747a6} {color:#0747a6}                 return(FALSE){color}{color}
> {color:#0747a6}{color:#c1c7d0}   } else {{color}{color}
> {color:#0747a6} {color:#c1c7d0}        return(TRUE){color}{color}
> {color:#0747a6} {color:#c1c7d0}   }{color}{color}
> }
> And then augment the calling function:
> [https://github.com/apache/arrow/blob/02f7be33d1c32d1636323e6fb90c63cb01bf44af/r/tools/linuxlibs.R#L55]
>  
> with:
> binary_scan_ok <- !identical(tolower(Sys.getenv("LIBARROW_BINARY_SCAN", 
> "false")), "false")
>  {color:#c1c7d0}if (try_download(binary_url, libfile, {color}scan_dates = 
> binary_scan_ok{color:#c1c7d0})) {{color}
>  
> This would allow automated builds to set the scan option, and then find and 
> install the most recent daily build in lieu of an official binary build being 
> in place.
>  
>  
>  
>  
>  
>  
>  
>  
>  
>  
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to