Skip to content
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

"CI" tag for system dependencies only #312

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft

"CI" tag for system dependencies only #312

wants to merge 2 commits into from

Conversation

noamross
Copy link
Collaborator

A draft PR addressing #311, starting with just the script to install tidyverse/verse/geospatial system dependencies.

@eitsupi, I'm a bit confused as to where I would add a new image type to test. build/make-stacks.R both reads from and writes to the JSON files in stacks/. To add a new tag (I'm thinking rocker/ci), should I modify the stack files manually and then also add code to build/make-stacks.R for tagging?

# So: we can build the redland package bindings and then swap back to libcurl-openssl-dev... (ick)
# explicitly install runtime library sub-deps of librdf0-dev so they are not auto-removed.
apt-get install -y librdf0-dev
install2.r --error --skipinstalled -n $NCPUS redland
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cboettig Not sure what is needed in this section

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, this is a bit of a mess. debian/ubuntu ship a few different versions of libcurl (specifically, gnutils vs openssl), which conflict. (Some packages can bind either one, but don't necessarily play nicely with both -- e.g. I believe curl R package doesn't fail but does some unexpected things with the non-openssl version iirc?)

The redland R package needs librdf0-dev which depends on gnutils, meaning that line 64 will uninstalls the openssl version and potentially breaks things. So if we're going to install librdf0-dev, I think it is necessary to reinstall libcurl4-openssl-dev after we finish building redland from source (maybe not necessary now that we can get binaries??)

Anyway, long story short, I've always been very confused about the libcurl conflict. @eddelbuettel or @jeroen probably have a much better handle on this; maybe one of them could advise what's the best way to support both redland and curl R packages?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, do not have a fix. There are alternative implementations, which in turn are use by different packages, so you could indeed end up with 'graph' with conflicts. Best solution might be to locally rebuild packages using, say, gnutls to use openssl. Not something I tried though.

@eitsupi
Copy link
Member

eitsupi commented Dec 17, 2021

Is this image supposed to set a specific date snapshot as CRAN?
Or do you expect to use the "latest" for all R versions?

I'm a bit confused as to where I would add a new image type to test. build/make-stacks.R both reads from and writes to the JSON files in stacks/. To add a new tag (I'm thinking rocker/ci), should I modify the stack files manually and then also add code to build/make-stacks.R for tagging?

Yes, you need to run the script after editing stacks/devel.json and build/make-stacks.R to update stacks/4.1.2.json and stacks/4.1.1.json.
Only the part of stacks/devel.json that is related to the R version is rewritten by the script to become stacks/4.1.2.json and stacks/4.1.1.json.

To update stack files with version <= 4.1.0, we will need to temporarily fix the version limit of the script and transcribe devel.json, or update them manually.

dplyr::slice_max(r_release_date, n = 2, with_ties = FALSE) |>

If you can show me the structure of the Dockerfile you want, I can update the script for you.

@eitsupi
Copy link
Member

eitsupi commented Apr 3, 2022

I think it would be better to set an option in each script to skip installation of R packages and call each script instead of copying the apt install command into this script to avoid code duplication.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants