-
Notifications
You must be signed in to change notification settings - Fork 97
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
CRAN: Additional issues #282
Comments
I had Additional issues in the past for my opticut package related to dummy examples leading to perfect fit in
It seems like a wise precaution to remove the responsible tests. |
I don't know the amount of work involved, and therefore it may be expedient to remove them to get 2.5-2 out the door, but I am not generally in favour of removing tests from the released version (if we can help it). (I currently have my R compiled against OpenBLAS, so I may run into issues with these tests just when we are developing and checking the package.) Ideally, we'd do as we have and check for differences in results with a lower tolerance — when checking printed output from examples, R Core/CRAN have long suggested using fewer |
If that's all we do with these tests, then adding This is what we need to do for linear algebra-related examples and their reference material for example. |
@gavinsimpson : it seems that we do not remove all tests, but they can improved. However, almost all differences came from The The only remaining problem is the long-double case which needs scrutiny of I don't know what they do with this now: apart from the long-double issue all are about BLAS/Lapack which is known to be inconsistent, and the additional tests put the responsibility of handling BLAS/Lapack quirks to package developers. |
I have been working with tests & "additional issues". Currently the The The "no long double" (noLD) test need more work, and R must be compiled without long double support. The reasons for test differences is also more difficult to track: we do not use long double in vegan and the source of differences is either in non-vegan code or hidden in macros. I guess BLAS/Lapack changes will explain some differences, and these should be gone with fixed tests. However, there are differences in ecological null models in
and
but I may have overlooked some cases. However, as soon as I have a noLD R, I'll know better. |
@jarioksa the |
We do not use |
I can confirm unstable I think we have no reason to do anything with our code, since the instability seems to be in the compiled C code for There were also differences in |
@jarioksa : the Most if the tests focus on fill and marginal stats. We have example on the help page
This example IMO is sufficient to replace most of the tests in |
@psolymos : I did this in commit 00bfa8d which indeed passes tests also without long double in R. The new test is essentially more superficial and relaxed. The purpose of the old test was to see that the simulated matrices are unchanged and check that we can guarantee exact replication of simulation results across vegan versions. It seems that we cannot test this because we cannot guarantee exact replication across R architectures and configurations. Moreover, we already ditched that idea in the 2.5-1 release where binary swap models changed from previous vegan releases, because now we do not generate so many useless random numbers in C for faster simulation. We may consider adding some tests that also check that simulations are constant (although these would fail with no-long-double checks in CRAN). These could use Because we no longer guarantee replication of simulation results across releases, we also should remove |
@jarioksa : nice, thanks! I agree with removing |
All "Additional issues" tests pass now. We may consider more extensive |
In addition to normal CRAN tests, there are now some special tests labelled as "Additional issues". Vegan 2.5-1 has reports on four of these Additional issues. See:
https://cran.rstudio.com/web/checks/check_results_vegan.html
I haven't paid much attention to these Additional tests, but it seems that they can be a stumbling block in CRAN submission.
Three of the tests are differences in results using alternative BLAS/Lapack implementations (ATLAS, MKL, OpenBLAS). Basically these are small numerical differences (like giving a zero numerically as 10-33 or 10-32) and sign changes in eigenvectors. However, the problem is that the tests now compare exact printed character presentation and fails on sign change and numerical differences within tolerance.
One test is using R without long doubles which seems to give some further BLAS/Lapack differences, but also changes some
nullmodel
simulations. Inspecting this issue needs recompiling R-devel with non-standard options and then rebuilding and installing all packages needed in testing vegan (including the bloody #279). Thenullmodel
summary statistics are not very different, but it would be good to understand what is going on.It may be that these Additional issues are not fatal and we may get through. However, this means explaining things to CRAN, and it is never certain that our points are accepted this time. Communication with CRAN is always a risk and should be avoided.
The easiest solution is to remove tests like we did in 2.4 series for the very same reason. The tests are still in the master branch of vegan for our own use, but we would not bother CRAN with the tests. Alternatively the tests must be written more robustly, but this is difficult with the current R engine that just compares test output to a reference output.
The text was updated successfully, but these errors were encountered: