The Dovetail #7: Updates from The Carpentries Workbench
This is the seventh post in a series that we are calling “The Dovetail”, about the transition to The Carpentries Workbench. In this series, we aim to keep members of The Carpentries community abreast of the current news about the Workbench.
If you are interested in participating in discussions around The Carpentries Workbench, head over to our GitHub Discussions forum: https://github.com/carpentries/workbench/discussions
We are hard at work drawing up plans for The Beta Phase, which will tentatively restart on 2022-10-17. I have recruited members from the Curriculum, Workshop Administration, Assessment, and Communications teams to help out with the effort. By the time the beta phase is over and we convert our lessons (current estimate: Q2 2023), the whole community should be aware of and excited for the changes!
In news related to the workbench, two things happened recently:
At the beginning of September, Toby Hodges and myself hosted a short, 3 hour, in-person workshop on developing community lessons with The Carpentries Workbench at The Conference for Research Software Engineering. With over 40 attendees, it was well-attended and largely successful. There were a few minor hiccups that we did not anticipate, but nothing insurmoutable:
- We had forgotten to include a live notes document at the beginning of the
session, so sharing information (such as links for installation instructions)
were acheived via custom
bit.ly
links. - Because we were working with Research Software Engineers, there was an even split between folks working on Windows, Mac, and Linux systems, which proved to be a good test for Workbench installation because, while everyone on Windows was able to install The Workbench successfully, folks on Linux and MacOS with R installed from Homebrew needed a couple of extra steps, but this was mitigated with the extra instructions we have in The Workbench setup documentation
An update to the R for Ecologists lesson, which introduces data visualisation and the tidyverse first, was beta tested in a workshop.
There are a few things to take away from this news that I find interesting:
- We have indeed lowered the barrier for entry to work on and contribute to our lessons. Setup for Windows and Mac used to be very difficult, but now, with a default installation of R, folks are able to get setup and working right away. Yes, there were some extra steps required for Linux folks and Mac Homebrew folks, but people who have these setups tend to understand the machinery of their computers a lot better, making them better prepared to troubleshoot issues with installation and dependencies as they arise. Furthermore, the caveats for Linux installations are well documented in the setup.
- The fact that The R for Ecologists lesson was tested in a workshop recently and I did not receive critical feedback about it means that either of these can be true: a) our community is very resilient to change and b) Even though The Workbench approaches lessons with a different design, navigating the new layout is understandable and useable enough that there were no noticable issues during live instruction or preparation.
Updates to The Carpentries Workbench
Since 2022-08-24,
The Markdown parser, {tinkr} has been released on CRAN!
- {sandpaper} version 0.9.3 -> 0.10.0
- Minor maintenance fixes
create_episode()
and variants will now default to creating episode names without a prefix and will update the lesson schedule. You can insert the episode to a specific place in the schedule by using the add parameter (e.g.add = 2
will place the episode in the second position).- NEW
draft_episode()
variants will create an episode, but not insert it into the schedule. - NEW
move_episode()
allows you to move a single episode or draft to a different part of the schedule programmatically or interactively. - NEW helper function
strip_prefix()
will strip the numeric prefix of your existing episodes and add them to the schedule in the correct order (NOTE: this will cause existing links to become invalid, so be prepared to correct those). - A small bug fix where some anchor links in callouts were
NA
was fixed.
- {pegboard} 0.3.1 -> 0.3.2
- Maintenance fix for an updated version of the {cli} package
- Unused soft dependencies have been dropped
- {varnish} 0.2.4
- no updates :)
To update your local Workbench installation, open R and use the following code:
# Enable repository from carpentries
options(repos = c(
ropensci = 'https://carpentries.r-universe.dev',
CRAN = 'https://cloud.r-project.org'))
# Download and install sandpaper in R
install.packages(c('tinkr', 'pegboard', 'sandpaper', 'varnish'))
Upcoming and Current Lessons in Workbench Beta
List of Lessons to enter Workbench Beta in 2022
Official Lessons
- datacarpentry/R-ecology-lesson—Data Analysis and Visualization in R for Ecologists (✅ approved by maintainers)
- datacarpentry/r-socialsci—R for Social Scientists (✅ approved by maintainer)
- datacarpentry/r-raster-vector-geospatial—Introduction to Geospatial Raster and Vector Data with R (⏳ awaiting responses)
- datacarpentry/OpenRefine-ecology-lesson—Data Cleaning with OpenRefine for Ecologists (✅ approved by maintainer)
- librarycarpentry/lc-shell—Library Carpentry: The UNIX Shell (⏳ awaiting responses)
- carpentries/instructor-training—Instructor Training (⏳ awaiting responses)
Tentative schedule for official lessons
[ON HOLD]
Community Lessons
- carpentries-incubator/git-novice-branch-pr—Version Control with Git
- carpentries-incubator/data-management-pipelines-engineering—Data management and analytic pipelines for engineers
- carpentries-incubator/markdown-intro—Introduction to Markdown
- carpentries-incubator/SDC-BIDS-IntroMRI—Introduction to MRI and BIDS
- carpentries-incubator/SDC-BIDS-dMRI—Introduction to dMRI
- carpentries-incubator/SDC-BIDS-fMRI—fMRI Imaging Analysis
- carpentries-incubator/julia-novice—A lesson exploring the Julia language
- carpentries-incubator/R-archaeology-lesson
- carpentries-incubator/python-packaging-publishing—Packaging and Publishing with Python
Participants
- Eirini Zormpa, Maintainer
- James Sadler, Maintainer
- Robin, Instructor
- Jon Haitz Legarreta Gorroño, Lesson Developer (in The Carpentries Incubator)
- Karen Word, Maintainer
- Luis J. Villanueva, Maintainer
- Jon Wheeler, Lesson Developer (in The Carpentries Incubator)
- Simon Christ, Lesson Developer (in The Carpentries Incubator)
- Maneesha Sane, Instructor
- Sarah Brown, Maintainer
- Joel Nitta, Translator
- Juan Fung, Maintainer
- Jannetta Steyn, Lesson Developer (in The Carpentries Incubator)
- Michael Joseph, Lesson Developer (in The Carpentries Incubator)
- Sarah Stevens, Lesson Developer (in The Carpentries Incubator)
- Kozo Nishida, Lesson Translation (to Japanese)
- François Michonneau, Maintainer
- Jamie Jamison, Maintainer
- Jennifer Stubbs (she/her), Instructor
- Drake Asberry, Maintainer
Tips and Tricks for Using The Workbench
If you use Linux or Homebrew with MacOS and you want to install The Workbench locally, you should read some of the caveats in the workbench setup instructions for Linux.
For most users R’s package management system just works. If you want a package,
you can install it with the R command install.packages("<package-name>")
and
R will search available repositories for the package and install it.
The reason why this works is because R’s default repository, CRAN hosts pre-built binary versions of these packages for Windows and MacOS1. This means if you are a user of one of these systems and you need to install an R package that uses C code behind the scenes, you do not need a compiler in order to use that package because the code is already compiled and ready to use.
For Linux and Homebrew MacOS systems, the toolchain for compilation is variable enough that it is not feasible for a global archive network to compile binaries for all the possible Linux and Homebrew variants, so you get the source code for the packages and must compile them yourself.
If you find yourself in this situation, know that there are some external C libraries that you need to install. Error messages will let you know what libraries you need, but the R-universe provides a handy list of the requirements through its API, which you can query using curl to install:
curl https://carpentries.r-universe.dev/stats/sysdeps 2> /dev/null \
| jq -r '.packages[0] | select(. != null)'
libcurl4-openssl-dev
libfontconfig-dev
libfreetype-dev
libfribidi-dev
libharfbuzz-dev
libicu-dev
libgit2-dev
libjpeg-turbo8-dev
libpng-dev
libtiff-dev
libxml2-dev
libxslt1-dev
libssl-dev
The Workbench is hosted on https://carpentries.r-universe.dev/ and not CRAN because the R-Universe allows for rapid patch fixes and updates, making it better-suited to newer packages that are under active development and may change frequently, whereas CRAN’s policies expect updates on a 2-month cycle. ↩︎