-
Notifications
You must be signed in to change notification settings - Fork 20
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
pkg-diff.sh: Ignore R build timestamp & temp paths #34
Conversation
This change can be seen in action at https://build.opensuse.org/project/show/home:jayvdb:R , especially https://build.opensuse.org/package/live_build_log/home:jayvdb:R/R-sys/openSUSE_Tumbleweed/x86_64 where the rebuild was triggered by a change to the R-unix .spec file. |
The DESCRIPTION and Meta/package.rds items in that PR are self-explanatory. grailbio/rules_r#21 (bazel build system) has some more information about the paths in the .rdb/.rdx files. fwiw, I tried If this approach for .rdb/.rdx isnt acceptable, we would need to follow the approach that bazel is using, which is much more complicated, and I believe not necessary for our situation. |
Most of the packages in my project are being marked unchanged when new builds are triggered. Not all compiled R libs are working; some still have non-reproducible elements in them, so this doesnt work for all of them. Two cases of it not working are R-markdown and R-rmarkdown and R-testthat; annoying because they are part of the "test the tester" build cycle. But the cycle is getting detected and found much sooner with this patch, because it is working correctly for other packages in that cycle, such as R-cli. |
R DESCRIPTION contains the build timestamp, and Meta/package.rds is a binary cache of DESCRIPTION. R/*.rd[bx] are R cache files of the interpreted R code, and they include temporary paths. Any change in the R caching will occur in the R-base packages, and those changes already trigger other changes in each built package which will ensure rebuilds of these interpreted R caches.
I suspect the commonality of the ones which are rebuilding constantly is they depend on packages not in my project. |
ping @bmwiedemann @olafhering , would you be able to look at this. It is sort-of blocking 140 package updates, as they will be much less efficient if the SRs are accepted while this problem exists, as they introduce more loops as more and more crucial R packages are now inter-dependent. |
I think this is good. Please do a 'osc vc' to add a changes entry, refering to this PR. |
Thx @olafhering - is ^ what you wanted? |
I found that with this patch, the only remaining diff is in R-base for files not covered by the path glob: Long term, it would be good to not ship such unreproducible cache files in rpms (because nobody can verify what is in there) |
R DESCRIPTION contains the build timestamp, and
Meta/package.rds is a binary cache of DESCRIPTION.
R/*.rd[bx] are R cache files of the interpreted R code,
and they include temporary paths. Any change in the R caching
will occur in the R-base packages, and those changes already
trigger other changes in each built package which will ensure
rebuilds of these interpreted R caches.