Dear rOpenSci friends, it’s time for our monthly news roundup!
You can read this post on our blog. Now let’s dive into the activity at and around rOpenSci!
Community call: @ropensci-review-bot help!
Tuesday, 07 December 2021 17:00 UTC we’ll share how we are Enhancing Software Peer Review with GitHub Automation.
Speakers Arfon Smith, Karthik Ram, Maëlle Salmon and Noam Ross will discuss how rOpenSci has worked with The Journal of Open Source Software (JOSS) to extend their approach of chatops-driven publishing into a new GitHub chat-bot that manages our editorial process: assigning tasks, tagging issues, running tests on software submissions, and returning reports to reviewers and editors, all from the comfort of a GitHub issue comment. Chat-ops automation has been critical to JOSS’s success, and shows huge promise for automating even more tedious tasks like frequent software checks and compliance with best practices. We will show how our new review bot improves the author and editor experience, explain how other teams can use and customize the bot, and discuss how this approach can be extended to tackle other automation, code review, and reproducibility challenges.
Come join the conversation, we’ll have lots of time for Q & A.
rOpenSci help wanted issues
Help Wanted issues have a home: our website’s new help-wanted page!
This page lists ALL recent(ish) issues from rOpenSci R packages labelled “help wanted”. We’ll still tweet new issues, but this is a great place to see what’s out there that needs your help.
On the page you can easily find issues relevant to you by:
Sorting (e.g, find all the issues labelled “good first issue”);
Searching (e.g., look for issues in your favourite packages).
Next co-working sessions
Join us for social coworking & office hours monthly on 1st Tuesdays! Hosted by Steffi LaZerte, Nick Tierney, and Stefanie Butland. Everyone welcome. No RSVP needed. Consult our Events page to find your local time and how to join.
Our next sessions are
Monday, 06 December 2021 17:00 PST (9 AM Australian Western);
Tuesday, 04 January 2022 09:00 PST (9 AM North American Pacific).
Find out about more events.
The following three packages recently became a part of our software suite:
cffr, developed by Diego Hernangómez: The Citation File Format version 1.2.0 doi:10.5281/zenodo.5171937 is a human and machine readable file format which provides citation metadata for software. This package provides core utilities to generate and validate this metadata. It is available on CRAN. It has been reviewed by João Martins, Scott Chamberlain.
excluder, developed by Jeffrey R. Stevens: Data that are collected through online sources such as Mechanical Turk may require excluding rows because of IP address duplication, geolocation, or completion duration. This package facilitates exclusion of these data for Qualtrics datasets. It is available on CRAN. It has been reviewed by Joseph O’Brien, Julia Silge.
mctq, developed by Daniel Vartanian together with Ana Amelia Benedito-Silva, Mario Pedrazzoli: A complete and consistent toolkit to process the Munich ChronoType Questionnaire (MCTQ) for its three versions (standard, micro, and shift). MCTQ is a quantitative and validated tool to assess chronotypes using peoples’ sleep behavior, originally presented by Till Roenneberg, Anna Wirz-Justice, and Martha Merrow (2003, doi:10.1177/0748730402239679). It is available on CRAN. It has been reviewed by Jonathan Keane, Mario Andre Leocadio-Miguel.
The following twenty-three packages have had an update since the latest newsletter: gert (
v1.4.2), pkgstats (
v0.0.3), cffr (
v0.1.1), crul (
v1.2.0), excluder (
v0.3.2), git2rdata (
v0.3.1), gitignore (
v0.1.5), jagstargets (
0.0.1), jqr (
v1.2.2), lightr (
v1.6.2), mapscanner (
v0.0.6), mctq (
v0.1.0), nodbi (
v0.5.0), osmextract (
v0.4.0), patentsview (
v0.3.0), PostcodesioR (
cran), rcites (
v1.2.0), rerddap (
v0.8.0), rmangal (
v2.1.0), rnoaa (
c1.3.7), stplanr (
v0.8.5), tarchetypes (
0.3.2), targets (
Software Peer Review
There are eighteen recently closed and active submissions and 5 submissions on hold. Issues are at different stages:
Three at ‘6/approved’:
Seven at ‘3/reviewer(s)-assigned’:
Two at ‘2/seeking-reviewer(s)’:
Three at ‘1/editor-checks’:
Find out more about Software Peer Review and how to get involved.
On the blog
rOpenSci Dev Guide 0.7.0: Updates by Maëlle Salmon, Laura DeCicco, Julia Gustavsen, Jeff Hollister, Anna Krystalli, Mauro Lepore, Karthik Ram, Emily Riederer, Noam Ross, Adam Sparks, Melina Vidoni. Updates in version 0.7.0 of the online book ‘rOpenSci Packages: Development, Maintenance, and Peer Review rOpenSci Packages: Development, Maintenance, and Peer Review’.
cffr: Create a CITATION.cff File for your R Package by Diego Hernangómez. cffr, a package for creating valid CITATION.cff files using the metadata of any R package.
- How to Cite R and R Packages by Steffi LaZerte. A short primer on how to cite R and R packages to support developers and ensure repeatable science.
How I Test cffr on (about) 2,000 Packages using GitHub Actions and R-universe by Diego Hernangómez.
RSS feeds of package updates in r-universe by Jeroen Ooms. A major difference between r-universe and static repositories like CRAN and BioConductor is continuous deployment: packages in r-universe are continuously built in CI and immediately deployed to our package server. This package server stores binaries and metadata in a database, which enables us to dynamically query and expose all the package data through APIs, dashboards, feeds, etc. Based on some suggestions from twitter users, we have added support for RSS feeds of package updates.
Call for maintainers
There’s no open call for new maintainers at this point but you can refer to our contributing guide for finding ways to get involved!
As the maintainer of an rOpenSci package, feel free to contact us on Slack or email
[email protected] to get your call for maintainer featured in the next newsletter.
Package development corner
Some useful tips for R package developers. 👀
Only use the best dependencies!
Some dependencies are better than others: in particular, it’s best not to depend on unmaintained packages or packages scheduled for retirement.
In our dev guide we have some scaffolding advice (note this is a link to the development version of the dev guide!):
For parsing, creating, and manipulating XML, we strongly recommend xml2 for most cases. You can refer to Daniel Nüst’s notes about migration from XML to xml2.
For spatial data, the sp package should be considered deprecated in favour of sf, and the packages rgdal, maptools, and rgeos will be retired by the end of 2023. We recommend use of the spatial suites developed by the r-spatial and rspatial communities. See this GitHub issue for relevant discussions.
Furthermore, in the recent release notes of r-lib cli it was interesting to note “Our focus will be on improving the cli package in the future, and crayon will only receive important bug fixes. If you already use both cli and crayon, then it might make sense to completely switch to cli.”.
As a package developer, informing users of the lifecycle is crucial. It’s part of our standards for statistical software: “Statistical Software should include a Life Cycle Statement describing current and anticipated future states of development”.
For more general posts about dependencies, see
- limiting dependencies in R package development by rOpenSci co-founder Scott Chamberlain;
- It depends – A dialog about dependencies by Jim Hester;
- our dev guide’s section about package dependencies.
List of “Awesome R package development” tools maintained by Indrajeet Patil
Do you know what shim files are?
If you use
devtools::load_all(), chances are you do know of them, cf pkgload docs.
load_all() also inserts shim functions into the imports environment
of the loaded package. It presently adds a replacement version of
system.file() which returns different paths from
base::system.file(). This is needed because installed and uninstalled
package sources have different directory structures. Note that this is not
a perfect replacement for
Function-specific and package-specific environments
If you are curious about the use of private environments for functions and packages, have a read of this nice R-package-devel thread!
Thanks for reading! If you want to get involved with rOpenSci, check out our Contributing Guide that can help direct you to the right place, whether you want to make code contributions, non-code contributions, or contribute in other ways like sharing use cases.