-
Notifications
You must be signed in to change notification settings - Fork 15
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
R versions to support and which to cover in test suite #161
Comments
This is related to issue se-sic#161. Signed-off-by: Claus Hunsen <[email protected]>
This is related to issue se-sic#161. Signed-off-by: Claus Hunsen <[email protected]>
Currently (for about two weeks), our builds on travis ci fail for R versions 3.3, 3.4, and 3.5. Only 3.6 builds correctly. I had a look at the build logs and identified the following: As all builds on all branches fail due to the above described problems, I tried to figure out whether there is an easy option on how to fix the problems. To reduce the log size, we could set log level to INFO instead of DEBUG. However, this won't help us in general when the verbose log of installing packages is the reason for exceeding the maximum log length. So, the more important problem is dealing with installing the packages. Unfortunately, I did not find acceptable solutions. It still seems weird to me that two weeks ago everything worked for all R versions 3.3, 3.4, 3.5 and now it does not work for neither of them. I also had a look at the solutions provided in #152. Most promising approach was the As I would like to see green check-marks next to our build logs again, the only practicable solution for now would be to restrict test runs to R version 3.6 (as 3.6.3 is the R version our current container setups use). Later we should also support R version 4, but there may be some braking changes, so I won't give it a try yet. However, even when removing R 3.3, 3.4, 3.5 from the test runs, we might result in a similar problem for R version 3.6 soon. Hence, this will only solve the problem for the short term. Automatically installing a compatible version would be great, why can't R do that automatically? @clhunsen What is your opinion on that? |
My personal Travis buildsInterestingly, the weekly Travis build for my fork ran successfully just yesterday. 🤔 Maybe, the extra output of the new dependencies (introduced in PR #173) is too much. Maybe, the reason lies somewhere else. Thank you very much for your insights and thoughts on this, @bockthom. My thoughts and findings follow. Reducing the log lengthI thought about the problem in the last days too and found a possible workaround that may help to reduce the log length: we should install packages with reduced verbosity. The output of the actual tests only makes up ~10k lines, while the package installation makes up over 30k lines, stressing the maximum log length. I tested some approaches and found that adapting the call to
The output prints the progress, but does not log any compilation output to the console. Maybe, this helps in the search for problems with the Travis builds. Output looks like this (for a failing installation):
R 4.0I have R 4.0 installed on my notebook, the installation of packages passed without any problems, and the test suite of coronet passed completely. So, support for R 4.0 should be no problem, I guess. 🙂 DockerMaybe, the creation of a Docker container for using coronet in a safe and supported environment is a long-term solution for both adopters/users and Travis tests. 🤔 This would also lay a good basis for controlled updates of coronet, R version, dependencies, system, ... Just an idea. 🤷♂️ |
Thanks for your answer @clhunsen. I have a few comments on it:
Nope. This is not related to PR #173. The travis build fails also for the current The difference between the builds on your fork and the builds on the main project is: You still use cached package installations, the main project has to rebuild the package installations. I don't know what has triggered that, but rebuilding the packages is not possible any more and results in lots of errors bloating the log. I'll promise that your fork will also result in build failures if the packages would have to been rebuilt. You're just in luck that you still can rely on travis's cached package installations. And reinstalling the packages also installs lots of packages that are never used, I don't know why. Most of these packages result in compile errors. So, eventually, I am not sure if just reducing the log length will suffice to get green check-marks in the end, as those package installations may result in weird behavior...
True. But most of those over 30k lines are a result of the failing package installations. Normal, succeeding package installations result in a smaller log output (but may still make up more lines than the actual tests).
Sounds good! Thanks for thinking about that and testing this solution. Independent from the current issue, this will help us for the future when adding new tests may bring us closer to the maximum log length in general. So, it's definitely worth trying to be well positioned for future enhancements.
Short answer: Sounds good! Thanks for testing that. So, whenever touching the travis configuration next time, I will add R 4.0 to the R versions used for the builds and tests.
Good idea. But it is costly in terms of preparation time (which we don't have at the moment), and which does not help us with the issues we are facing at the moment, i.e., figuring out why package installations fail (or, to be precise why the packages have to be rebuilt and there are lots of package installations failing now which never have been installed or failed before...) But I will keep the Docker idea in mind for future changes. |
Travis builds currently fail (for a few weeks) due to two different reasons: On the one hand, the log output exceeds the maximum log length of travis, resulting in failing builds. This is prevented by setting the parameters `verbose` and `quiet` to `TRUE`, as then the package compilation log is not printed to the log but the result of package installation is clearly perceptible in the log. On the other hand, travis installs lots of packages which are not necessary as they are just suggestions of other packages but not necessary dependencies. Installing such unnecessary packages my lead to problems. This is circumvented by setting the `dependencies` parameter to `NA` as this results in installing only necessary dependencies and imports, whereas the former `TRUE` value of this parameter also led to installing suggested but unnecessary packages. Those two fixes hopefully makes travis builds successful again. Props to @clhunsen for experimenting with the parameters and proposing the first part of this commit regarding the `verbose` and `quiet` parameters of the `install.packages` function. This commit addresses parts of se-sic#161. Signed-off-by: Thomas Bock <[email protected]>
This is related to issue se-sic#161. Signed-off-by: Thomas Bock <[email protected]>
I am happy to announce: The current build problems with Travis CI are fixed! (as soon as the corresponding PR #183 will be merged.) |
At the moment, we again have some problems in our test pipeline on R 3.3.3, as has been pointed out in PRs #193 and #194. The problem is the following:
After some additional test runs, I identified that the described problem is not related to 0. Create a docker image which uses R 3.3.3 and another g++ version than 6.3.0-9. This is not really an option, as we won't maintain docker images. We rather should rely on some existing images to reduce maintenance effort.
Which option would you choose? Your comments are welcome 😉 |
Sounds like the first option would be the easiest and fastest variant. If you think that this is sustainable and reliable (i.e., we don't have to look for another solution every two weeks) then I would prefer that. |
Yes, for the moment, this is the easiest and fastest variant. Regarding sustainability and reliability, we cannot really make a statement how this will behave in the future, as new package versions can introduce new dependencies, for which we don't know whether and how they will support old R versions. It can always happen that a new package requires a certain R version. But at the moment, all the R packages we use in our tests are available for all the R versions in our test pipeline (Note that I would suggest to just go with the first option and use the If there are no further objections, I will provide a patch to adjust the |
Description
Originating in #152, the question arose which R versions we should support and which to cover in the test suite.
Motivation
Currently, we explicitly support R version 3.3.1 (see README.md). However, new versions of R are released over time and we should ensure that these work with our network library in principle.
Ideas for the Implementation
There are two work items for this issue (see also the discussion in #152):
.travis.yml
. Some dependencies are not available for older R version anymore. See TravisCI tests are failing for R 3.3 #152 (comment) for some further details.What are your thoughts? Is this an issue that can be stalled until we transform this project itself into a proper R package?
The text was updated successfully, but these errors were encountered: