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
Some R 4.0.2 binary packages built under R 4.0.3 #127
Comments
|
A possibly related issue is that EDIT: Sorry, my ignorance! It seems the default repository only has binary packages. To get source packages, you have to swap out the URL for install.packages("coda", repos = "https://packagemanager.rstudio.com/all/344")Is there a way to specify multiple repositories and switch between them based on the |
|
I've opened a discussion about this on RStudio Community here: https://community.rstudio.com/t/binary-packages-for-different-r-versions-in-rstudio-package-manager/97042 The more I think about this, the more I suspect that the best solution is to only do binary package installs on the latest version of R (or whatever version the RStudio Package Manager uses for package builds) and have all older versions default to source installs. This would significantly increase install times, and might force users to install additional system dependencies for certain packages, but with the trade-off of full reproducibility. |
|
Thanks. Correct, RSPM supports both source and binary builds for snapshots but does not support the (Yes you can always specify multiple repositories but it won't help here, I can confirm that: install.packages("coda", repo="https://packagemanager.rstudio.com/cran/__linux__/focal/2020-10-09")gets The behavior is definitely a concern. I know RSPM binaries will often lags behind CRAN by a few days (building all those binaries obviously takes time!) but I'm rather surprised to see a binary built with a version of R that wasn't yet released on the snapshot day, to me that suggests a potentially deeper issue with how the snapshots are being done. I recognize that falling back on the source installs is a reasonable fix, but I'd rather not make it the default. Users expect binary installs, and some downstream uses effectively require them (e.g. avoiding time-outs in binder.org builds). For us, I think a more acceptable compromise would be to fall back to the next earlier snapshot, e.g. 2020-10-07, aka snapshot 343, three days before the new release instead of one day before the release, as our pin. It looks like builds still use 4.0.2 R there. https://github.com/rocker-org/rocker-versioned2/blob/master/stacks/core-4.0.2.json#L15 Just wondering, are you seeing any negative consequences from this behavior? I see the potential concern, but I think most packages work just fine this way. |
|
Thanks @cboettig ! This is really useful.
Sounds good to me. I tried briefly to find a RSPM GitHub repo, but nothing came up on my first pass. This seems like it would make sense.
That seems like a great solution to me, assuming that RSPM only builds packages once using whatever version of R corresponds to that particular snapshot. I'm not sure whether that's actually the case -- it would be good to get an RSPM person to confirm. (I could imagine a use case where R is updated but packages are frozen, though it's a bit of a stretch, and I don't know why you wouldn't want to freeze both).
We haven't encountered any actual performance issues because of this, and I don't expect that we would. However, because this triggers a (Because we have a huge backlog of non-fatal code problems, we only have PRs fail on new warnings, and have been gradually chipping away at resolving existing ones. That's why the first few |
|
RSPM developer eyeballs are on this ticket now- it was raised up with the team. We don't have any good ideas right now on the core issue here, "Passing type=source to a binary URL should return source package", which is now logged as an issue. Bringing up the coda part of this discussion as it happened after people were looking at it. |
|
Thanks @bdeitte ! Nice to know RSPM folks are in the loop on this!
To me, the more pressing issue is knowing reliably what version of R was used to build package binaries for a given RSPM URL. It's already pretty straightforward to use a source-only URL if necessary. As far as I can tell, the current behavior is unpredictable at the package level -- e.g., for snapshot 344 in this thread, |
|
Hey @ashiklom, I'm also on the RSPM team and happy to fill in some details here
Our binary building process basically works like this:
Whenever a new version of R is released, we update our builders accordingly, so the binary versions will only be updated if the packages changed. That leads to this case you're seeing:
From what I understand, this is a similar behavior to what happens with CRAN package binaries (for macOS and Windows). I think in this case it would be safe to ignore that pattern in your build system, We're also happy to consider changes to this process if it improves reliability |
|
Thanks @tylfin , this is super helpful. I agree that the warning is probably innocuous but it is kinda a bad look for us in an image which is claiming to be 'version stable' since R decides to display that warning prominently on every To mitigate the issue, we're considering shifting our policy to snapshot a week before the release rather than 'the nearest day before'. Do you think that would give enough time on balance that we wouldn't pick up a lot of binaries built with the subsequent R version? Do you have any stats on the distribution of lag times between CRAN snapshot day and the binary builds for those packages? |
I believe we snapshot at 4AM UTC and the builds get kicked off immediately, taking between 1-4 hours depending on then number of packages that need to be rebuilt.
I don't see why it wouldn't be a viable solution to pin to an earlier snapshot that has the correct package and R versions, if that works for you. |
|
Thanks Tyler, it's awesome that the full rebuild is that fast. But based on that timeline it seems a bit surprising that the snapshot dated 2020-10-09 would not have finished building |
|
It looks like the pin above is for As an aside, we are planning on simplifying the calendar view so it's easier to pick dates exactly in the future. |
|
my mistake! That's perfect. Things look good with that URL, and we'll stick with the new date-based format to avoid confusion in the future. Thanks again, really nice. @ashiklom the image should be rebuilt with the new URL, so will close this out too. |
I think this is an issue with the RStudio Package Manager, not with these images, but I wanted to call your attention to it because it prevents code on these images from passing
R CMD check:Some R binary packages seem to have been built using R 4.0.3. For example:
From our own project, I know this affects at least the following packages:
codamvtnormXMLrjagsggmapgridExtraAn ugly workaround is to install these packages from source (e.g.,
remotes::install_github("cran/coda")), but that's hardly a good solution.The text was updated successfully, but these errors were encountered: