rOpenSci | rOpenSci News Digest, November 2021

rOpenSci News Digest, November 2021

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!

🔗 rOpenSci HQ

🔗 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

Find out about more events.

🔗 Software 📦

🔗 New packages

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.

Discover more packages, read more about Software Peer Review.

🔗 New versions

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 (0.8.1).

🔗 Software Peer Review

There are eighteen recently closed and active submissions and 5 submissions on hold. Issues are at different stages:

Find out more about Software Peer Review and how to get involved.

🔗 On the blog

🔗 Software Review

  • 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’.

    cover of rOpenSci dev guide, showing a package production line with small humans discussing, examining and promoting packages

  • 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.

    The cffr package

🔗 Other topics

  • 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.

🔗 Tech Notes

  • 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.

🔗 Use cases

Explore other use cases and report your own!

🔗 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!):

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

🔗 List of “Awesome R package development” tools maintained by Indrajeet Patil

Indrajeet Patil created a list “Awesome R package development”. Browse it to check you already know all of the awesome things!

🔗 Shim files

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 base::system.file().”

This is different from monkey-patching that is not allowed in R.

🔗 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!

🔗 Last words

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.

If you haven’t subscribed to our newsletter yet, you can do so via a form. Until it’s time for our next newsletter, you can keep in touch with us via our website and Twitter account.