-
Notifications
You must be signed in to change notification settings - Fork 0
Enhancing the R Dev Container
The R Dev Container provides a containerised development environment for editing and compiling the R source code. This is especially helpful for new or ad-hoc contributors to base R, as they can save the time and trouble of setting up their own system to build R and focus on code/documentation development.
The current container uses the VSCode IDE and is set up to launch on GitHub Codespaces, so that people can work in the dev environment through their browser. It is also set up to support the standard contributor workflow based on the R Project Subversion repository. This project aims to improve robustness and support broader contributor preferences, by getting the container to work on an alternative platform, with an alternative IDE and/or with the a git-based workflow.
This project builds on the Containerized Development Environments for R project from Google Summer of Code 2023, see the project report for more detail.
There are three specific enhancements that we would aim to achieve in a large GSoC project:
- Set up the R Dev Container as a Gitpod environment mirrored on GitLab.
- Include RStudio in the container and adapt the workflow to use RStudio as a alternative IDE.
- Adapt the container to support a contributor workflow based on the r-svn GitHub mirror of the Subversion repository for R.
A small/medium project might look at one or two of these enhancements. All aspects would involve updating the Markdown-based documentation to reflect the new functionality.
The initial version of the R Dev Container has proved useful in helping novice contributors to base R get started quickly. However, at the moment, we are reliant on GitHub Codespaces offering sufficient capacity to users free-of-charge; using Gitpod as alternative would help to ensure longer-term sustainability and provide an option for users that prefer to use open source tools. The R Dev Container currently uses VSCode, while this has some advantages, e.g. LiveShare, it is less widely used than RStudio, so may hamper contributors that are not familiar with it. Finally, a contributor workflow based on the r-svn GitHub mirror would allow contributors to create pull requests to this repository, which is helpful for contributors to test their changes and share them with other contributors for review before submitting patches to R Core via the official channels.
- EVALUATING MENTOR: Heather Turner [email protected] chairs the R Contribution Working Group and is an author of several CRAN packages, notably the statistical modelling packages gnm, BradleyTerry2 and PlackettLuce. She was a GSoC co-mentor in 2021-2023.
- Iain Emsley [email protected] is a Research Software Engineer who works with containers, infrastructure and uses R in teaching. This is his first time as a GSoC co-mentor.
Contributors, please do one or more of the following tests before contacting the mentors above.
- Easy: Go to the R Dev Container repository and start the GitHub Codespace by clicking on the "Code" drop-down menu, clicking the "Codespaces"" tab and selecting "Create codespace on main". It will take several minutes to set up the codespace. Open a new file with a .R extension and click "R (not attached)" in the VS Code footer to attach to an active R terminal. Write a simple line of R code in your R script and run it. Take a screenshot of your R session.
- Medium: Follow the instructions in the Build Setup section of the R Dev Container README to build R from a checkout of the R Subversion repository, adapting step 2 to checkout revision number 86123. Create a bash script that combines all these steps and takes the Subversion revision number as an argument or option, to build R from a checkout of a specific revision. Take screenshots that show you using the script in the dev container to build R version 86122 - when you start R, it should show the message "R Under development (unstable) (2024-03-14 r86122)". Use multiple screenshots so that we can first see R version 86123 running in VS Code, then see you calling the script with the relevant option or argument, then see (some of) the output it generates, and finally R version 86122 running in VS Code.
- Hard: Create a GitPod workspace based on the gitpod/workspace-full image. Customise the image in some way (the image does not need to include R). Provide a link to the repository that will allow someone to open the GitPod workspace. Add a README to the repository that describes the workspace and the customisation(s) you have made.
Contributors, please post a link to your test results here.
- EXAMPLE CONTRIBUTOR 1 NAME, LINK TO GITHUB PROFILE, LINK TO TEST RESULTS.
- Nitish Jha link to the profile, Test Easy
- Pratik Kumar, pr2tik1, Easy, Medium.
- Atharva Shirdhankar Github Profile, Easy Test Case, Medium Test Case, Hard Test Case