oceanhackweek / Hub-Management

General infrastructure management
0 stars 0 forks source link

Compile required Python and R packages not already in the images #4

Open emiliom opened 1 year ago

emiliom commented 1 year ago

I'll start communicating with the OHWes team to identify required packages.

In the meantime, for reference and as a guide, here are the issues @abkfenris created for OHW22 for this task:

emiliom commented 1 year ago

@abkfenris for the R image, do the R packages have to be conda packages? The conda lock file suggests that's the case, but the exchanges in https://github.com/oceanhackweek/jupyter-image/issues/49 suggest otherwise.

abkfenris commented 1 year ago

They don't have to be. For direct CRAN installs they can go into the Dockerfile: https://github.com/oceanhackweek/jupyter-image/blob/082c6937faaddf66b07311a96ebb1ed1670cff24/r/Dockerfile#L78-L93

The problem with that method is that errors are silently ignored during the build so Ben was playing with setting up a more generalized install script that could catch errors and fail appropriately.

emiliom commented 1 year ago

Ah, I wasn't aware of that mechanism. Thanks. We'll watch out for silent errors.

emiliom commented 1 year ago

Just for reference: I'm compiling the additional packages in https://github.com/Intercoonecta/tutoriales/issues/1. But that's all in Spanish, plus I'll handle all the image updates.

emiliom commented 1 year ago

@abkfenris For CRAN and github R package additions, the statements in the Dockerfile include the following arguments, with the values being the same (FALSE) for all packages:

dependencies=FALSE, upgrade_dependencies=FALSE, upgrade=FALSE

One of the packages I'm adding is from github, and the tutorial presenter is the developer. He asked me to include its dependencies. Should I set dependencies=TRUE? Or are dependencies installed despite the argument dependencies=FALSE?

abkfenris commented 1 year ago

Dependencies should either be added manually via conda-forge or in the Dockerfile, so it takes a little work to figure out everything to add.

R is bad about respecting dependencies that are already installed and then gets angry that there are multiple sources of dependencies. Ben was working on a script to try to play nicer (and fail appropriately), but I'm not sure what happened to it.

emiliom commented 1 year ago

I had a bad bunch hunch that was the case. Thanks. I'll do that.

(I don't know what having a bad bunch is, unless I was referring to a bunch of packages :roll_eyes:)

emiliom commented 1 year ago

For reference, at least for the R package on github that I'm handling, the dependencies are listed in the DESCRIPTION files, under Imports:.

emiliom commented 1 year ago

I've created two image updates: Python (PR https://github.com/oceanhackweek/jupyter-image/pull/64) and R (PR https://github.com/oceanhackweek/jupyter-image/pull/65).

emiliom commented 1 year ago

https://github.com/oceanhackweek/jupyter-image/pull/65 led to an R image deployment error (see https://github.com/2i2c-org/infrastructure/pull/2252#issuecomment-1444887522), which I tried to addressed with https://github.com/oceanhackweek/jupyter-image/pull/66. But it looks like that PR led to a new, different R image deployment error. Sigh. That did it!