[Rd] Checking package on Windows (and seemingly irreproducible errors in CRAN checks)

Uwe Ligges ligges at statistik.tu-dortmund.de
Fri Jul 31 13:39:46 CEST 2009



Carlos J. Gil Bellosta wrote:
> Hello,
> 
> The issue is no longer an issue concerning my package as I have
> changed the part that drives the error (for unrelated reasons).
> 
> It is true that I might have done a greater effort to make the package
> fully cross-platform. I did R-CMD-checks on Unbuntu and CentOS but
> never on Windows. But I did install the package on Windows and
> successfully run, among other, the examples that fail on CRAN servers.
> 
> What makes me curious about Windows is how can it be that the checks
> pass on some machines (r-forge´s) but fail on CRAN´s. If there were
> any blunt violation of cross-platform implementation practices, all
> Windows checks would fail. However, some succeed.
> 
> Perhaps this is an idle intellectual exercise. But one can probably
> ask himself the following two questions:
> 
> 1) If I R-CMD-check my package on _my_ Windows box, how can I be sure
> that the check will also succeed in other Windows box?


You cannot (same as for any other OS where some settings are different 
between machines). It might also be related to the fact that my Server 
runs Windows Server 2008 64bit, due to permission problems, or due to 
third party requirements (Java / Phyton that are not correctly 
satisfied) - which is why I asked you to specify the requirements that 
makes it work under your machine.

Best,
Uwe Ligges



> 2) Is there any lesson to learn concerning cross-platform
> implementation to learn from this case (there seems to be and I am
> learning it, by the way).
> 
> Best regards and thank you for your comments on this issue.
> 
> Carlos J. Gil Bellosta
> http://www.datanalytics.com
> 
> 
> 2009/7/30 Simon Urbanek <simon.urbanek at r-project.org>:
>> On Jul 30, 2009, at 7:33 , Carlos J. Gil Bellosta wrote:
>>
>>> Dear Uwe,
>>>
>>> The thing that I find funny is that the check of the package on
>>> Windows for R 2.10.x works on r-forge as you can see here:
>>>
>>>
>>> http://r-forge.r-project.org/R/?group_id=426&log=check_x86_32_windows&pkg=colbycol&flavor=devel
>>>
>>> May I be facing some kind of Windows configuration specific issue
>>> here? I am sorry that I am very Windows-illiterate...
>>>
>> Just from the plain output I suspect that the problem is handling of paths
>> in the 3rd party system used (Python) is different from R's on Windows and
>> the package author is not converting them properly. It seems as if Python is
>> trying to use the path 'd:/temp/Rtmp1mB6qg/dir72ae2cd6' literally instead of
>> using 'd:\temp\Rtmp1mB6qg\dir72ae2cd6'. I'm a bit surprised, because Java
>> does the right thing: System.out.println("'"+(new File("z:/foo/bar"))+"'");
>> will print correctly 'z:\foo\bar'.
>>
>> I would suspect that the difference between R-Forge and CRAN may probably be
>> just the setting of TMP/TEMP... [just a guess ;)]
>>
>> Cheers,
>> Simon
>>
>>
>>> This is not something that worries me much "per se", as I am implementing
>>> some changes in the package and the new version does not resemble the
>>> current one too much, but intrigues me quite a lot.
>>>
>>> Best regards,
>>>
>>> Carlos J. Gil Bellosta
>>> http://www.datanalytics.com
>>>
>>>
>>> 2009/7/29 Uwe Ligges <ligges at statistik.tu-dortmund.de>:
>>>>
>>>> Mathieu Ribatet wrote:
>>>>> Dear Carlos,
>>>>>
>>>>>> From your check results:
>>>>>       cbc.data <- cbc.read.table( system.file("data",
>>>>>       "cbc.test.data.txt", package = "colbycol"), sep = "\t" )
>>>>>               Warning in file(file, "r") :
>>>>>               cannot open file '0001': No such file or directory
>>>>>       I think you're trying to read the file "cbc.test.data.txt" located
>>>>> in
>>>>> the folder "data" of your package skeleton. Is that right? If so, maybe
>>>>> using
>>>>>
>>>>>       paste(system.file(package = "colbycol"),
>>>>>       "data/cbc.test.data.txt", sep="/")
>>>>>       will solve your issue - although I didn't try.
>>>>
>>>> It won't slve it, because reading that file works, but reading file
>>>> "0001"
>>>> does ot which is handled within cbc.read.table() in the lines
>>>>
>>>> ....
>>>>  for( column in names(columns) ){
>>>>       tmp <- read.table( columns[[column]]$filename, sep = sep,
>>>> na.strings
>>>> = "", comment.char = "", quote = "", header = FALSE, ... )[,1]
>>>> ....
>>>>
>>>>
>>>> I guess the problem happens before during the Java stuff where the 0001
>>>> file
>>>> is never created (at least not in the location you expect).
>>>>
>>>>
>>>> On the console I see error messages like
>>>>
>>>>
>>>> Exception in thread "main" Traceback (most recent call last):
>>>>  File "d:/temp/colbycol/python/colbycol.py", line 6, in <module>
>>>>   os.chdir( work_dir )
>>>>  File "D:\RCompile\CRANpkg\lib\2.9\rSymPy\jython\Lib\os.py", line 261, in
>>>> chdir
>>>>   raise OSError(errno.ENOENT, strerror(errno.ENOENT), path)
>>>> OSError: [Errno 2] No such file or directory:
>>>> 'd:/temp/Rtmp1mB6qg/dir72ae2cd6'
>>>>
>>>>
>>>> Best,
>>>> Uwe Ligges
>>>>
>>>>
>>> ______________________________________________
>>> R-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>>
>>>
>>
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list