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

Publication on the devcontainer official website #18

Closed
eitsupi opened this issue Sep 22, 2022 · 10 comments
Closed

Publication on the devcontainer official website #18

eitsupi opened this issue Sep 22, 2022 · 10 comments
Labels
enhancement New feature or request

Comments

@eitsupi
Copy link
Member

eitsupi commented Sep 22, 2022

At this time, only devcontainer featuers are listed on the official website (https://containers.dev/collections), but it is expected that the devcontainer template will be available in the future. (devcontainers/spec#98)

Those listed on the official site will be selectable from Codespaces and others, and users will be able to use the definitions easily without knowing them in advance.

@eitsupi eitsupi added the enhancement New feature or request label Sep 22, 2022
@eitsupi eitsupi changed the title Publication on the official website Publication on the devcontainer official website Sep 22, 2022
@eitsupi
Copy link
Member Author

eitsupi commented Sep 22, 2022

I would like to create a feature that installs R first.
As Ruby is installed via rvm in the existing feature, perhaps R is suitable to be installed via rig (it is difficult to install R on Ubuntu arm64 without using rig, I think)

And, one reason is that the devcontainer images will hold metadata for installed features (devcontainers/spec#95), so I want the R-installed containers that we build in this repository to have metadata for the features that install R.
Like this https://github.com/devcontainers/images/blob/4690ca1ee6b0ea5c3bef39b14e46c0c33d01824f/src/ruby/.devcontainer/devcontainer.json#L14

@cboettig @eddelbuettel Can I create a repository like rocker-org/devcontainer-featuers using the template?
https://github.com/devcontainers/feature-template
If we were to maintain a featuer to install R to easily build multi language installed containers that include R, the Rocker project would be the best place.

@eddelbuettel
Copy link
Member

it is difficult to install R on Ubuntu arm64 without using rig, I think

Why? Unix is Unix. configure; make; make install and/or package managers still exist not matter flavor the cpu has.

@eitsupi
Copy link
Member Author

eitsupi commented Sep 22, 2022

Why? Unix is Unix. configure; make; make install and/or package managers still exist not matter flavor the cpu has.

Sorry, I left out the explanation about the installation time (and specify version).
I thought the installer installation would take precedence over the source installation, since the feature installation is performed locally by the user.

I suppose it is possible to create a feature that falls back to a src installation, as planned here in Python, but I just wanted to start with a simple method.
devcontainers/features#75

@cboettig
Copy link
Member

this sounds good to me!

@eddelbuettel
Copy link
Member

with a simple method

By all means.

But by a quick scan this appears to be build on Ubuntu where we have R either i) from the distro (maybe dated), ii) from the CRAN backport (current version, widely used, my fave too) or iii) or as always from source. Now (and I am 100% naive here as I have not looked at it in any detail) where does rig come in, and what is better with it? From what I can gather it allows yet another package management layer outside the system package management layer. I am sure there are use case for that for some people but is devcontainters one? Or would, say, r2u be an alternative as it brings all R packages back to the system package management layer?

@eitsupi
Copy link
Member Author

eitsupi commented Sep 24, 2022

what is better with it?

Good point.
I see two advantages of rig.

  1. Easily install any version of R. (I wanted to start with as simple an installation script as possible.)
  2. Supports arm64 version of Ubuntu. rig installs the arm64 version of R uploaded here. https://github.com/r-hub/R/releases/tag/v4.2.1

In fact, I have very little experience with rig, so there is a possibility that it will not work well and I will give up on this direction.

I am sure there are use case for that for some people but is devcontainters one? Or would, say, r2u be an alternative as it brings all R packages back to the system package management layer?

Of course there is no need for one, and I think r2u and bspm configured containers are useful in quite a few use cases.
I have already opened #5 as a backlog as I would like to add it here.
(The reason I have not added it so far and only build rocker/tidyvese based containers is that I am not yet familiar with the devcontainer cli and am not sure what configuration would be better.)

A feature to configure the bspm is also likely to be useful and could be added in the future.

@eitsupi
Copy link
Member Author

eitsupi commented Sep 25, 2022

After writing a script that uses rig to install R, I came to think it seems feasible to provide an optional way to install R.
https://github.com/rocker-org/devcontainer-features/blob/e4d1dd7cd8dbd5be96384ddba1423477256fa900/src/r-rig/install.sh

@eitsupi
Copy link
Member Author

eitsupi commented Oct 11, 2022

The template for VSCode has been updated to comply with the spec proposal.
For now, this template proposes three base images, rocker/r-ver, rocker/tidyverse, and rocker/geospacial.

https://github.com/microsoft/vscode-dev-containers/blob/ecb28cdcf443603ec8f037afff85c63c8cd1dc95/containers/r/devcontainer-template.json#L21-L30

Since Jupyter can now be installed with the feature and there is no need to stick to rocker/binder, I would like to prepare three base images, rocker/r-ver base, rocker/tidyverse base, and rocker/geospacial, first.
Users can easily set up Jupyter by using the feature, so no upstream installation is required.

@cboettig
Copy link
Member

nice, sounds great!

@eitsupi
Copy link
Member Author

eitsupi commented Oct 16, 2022

Done by devcontainers/devcontainers.github.io#36 and devcontainers/devcontainers.github.io#49

@eitsupi eitsupi closed this as completed Oct 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants