November 30, 2021 From rOpenSci (https://deploy-preview-304--ropensci.netlify.app/blog/2021/11/30/ropensci-news-digest-november-2021/). Except where otherwise noted, content on this site is licensed under the CC-BY license.
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!
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.
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).
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.
Discover more packages, read more about Software Peer Review.
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
).
There are eighteen recently closed and active submissions and 5 submissions on hold. Issues are at different stages:
Three at ‘6/approved’:
cffr, Generate Citation File Format (cff) Metadata for R Packages. Submitted by Diego H..
excluder, Checks for Exclusion Criteria in Online Data. Submitted by Jeffrey Stevens.
mctq, An R Package for the Munich ChronoType Questionnaire. Submitted by Daniel Vartanian.
One at ‘5/awaiting-reviewer(s)-response’:
Two at ‘4/review(s)-in-awaiting-changes’:
epair, Grabs data from EPA API, simplifies getting pollutant data. Submitted by Leo Orozco-Mulfinger.
healthdatacsv, Access data in the healthdata.gov catalog. Submitted by iecastro.
Seven at ‘3/reviewer(s)-assigned’:
rfema, Access the openFEMA API. Submitted by Dylan Turner.
qualR, An R package to download Sao Paulo and Rio de Janeiro air pollution data. Submitted by Mario Gavidia Calderón.
tidyqpcr, Quantitative PCR Analysis with the Tidyverse. Submitted by Edward Wallace.
tsbox, Class-Agnostic Time Series. Submitted by Christoph Sax. (Stats).
phruta, Phylogenetic Reconstruction and Time-dating. Submitted by Cristian Román-Palacios.
ROriginStamp, Interface to OriginStamp API to Obtain Trusted Time Stamps. Submitted by Rainer M Krug.
occCite, Querying and Managing Large Biodiversity Occurrence Datasets. Submitted by Hannah Owens.
Two at ‘2/seeking-reviewer(s)':
gittargets, Data Version Control for the Targets Package. Submitted by Will Landau.
OmicsMetaData, OmicsMetaData: an R-package for interoperable and re-usable biodiversity ‘omics (meta)data. Submitted by Maxime Sweetlove.
Three at ‘1/editor-checks’:
ReLTER, An interface to the eLTER for the R statistical programming environment. Submitted by Alessandro Oggioni.
canaper, Categorical Analysis of Neo- And Paleo-Endemism. Submitted by Joel Nitta. (Stats).
rdbhapi, Interface to DBH-API. Submitted by Marija Ninic.
Find out more about Software Peer Review and how to get involved.
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 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.
Explore other use cases and report your own!
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 info@ropensci.org
to get your call for maintainer featured in the next newsletter.
Some useful tips for R package developers. 👀
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 HTTP requests we recommend using curl, crul, httr or httr2 over RCurl. If you like low level clients for HTTP, curl is best, whereas crul or httr or httr2 are better for higher level access.
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
Indrajeet Patil created a list “Awesome R package development”. Browse it to check you already know all of the awesome things!
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.
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.
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.