{"version":"https://jsonfeed.org/version/1","title":"rOpenSci - open tools for open science","home_page_url":"https://ropensci.org/rbloggers/index.xml","feed_url":"https://ropensci.org/rbloggers/index.xml/index.json","description":"Open Tools and R Packages for Open Science","items":[{"id":"https://ropensci.org/blog/2026/07/08/r-universe-apis-use-cases/","title":"An API for Everything There Is to Know About Packages","content_text":"\u003cp\u003eOn R-Universe you can \u003ca href=\"/blog/2023/02/27/runiverse-discovering/\"\u003ediscover and learn everything there is to know about R packages\u003c/a\u003e. But did you know it does only provide a human-friendly website, but also programmatic access to all information through APIs!\nThanks to those APIs you can list universes, list packages in an universe, get information on packages, and perform searches; all without any need for authentication.\u003c/p\u003e\n\u003cp\u003eThe R-Universe APIs are both handy and reliable. You can build upon them, as both rOpenSci and community members have done.\nThis post shows some examples of use cases with the R-Universe API.\u003c/p\u003e\n\u003ch2 id=\"know-which-packages-are-yours\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#know-which-packages-are-yours\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nKnow which packages are yours\n\u003c/h2\u003e\u003cp\u003eThe toolbox for rOpenSci community management tasks, \u003ca href=\"https://ropensci.r-universe.dev/promoutils\"\u003epromoutils\u003c/a\u003e, calls an R-Universe API to list and get information on \u003ca href=\"https://github.com/ropensci-org/promoutils/blob/18c80362002bafe48c7c88c1ca062ac3a3050358/R/utils.R#L25\"\u003erOpenSci packages\u003c/a\u003e.\nThis list of packages is in particular used in the \u003ca href=\"https://github.com/ropensci-org/promoutils/blob/18c80362002bafe48c7c88c1ca062ac3a3050358/R/help_wanted_json.R#L48\"\u003efunction\u003c/a\u003e that outputs data on \u003ca href=\"/help-wanted\"\u003ehelp-wanted issues\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 id=\"display-packages-developed-at-your-organization\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#display-packages-developed-at-your-organization\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nDisplay packages developed at your organization\n\u003c/h2\u003e\u003cp\u003eIf your organization develops R packages, you can use its R-Universe as the source of truth for your package collection.\nFor instance, the \u003ca href=\"https://ggsegverse.r-universe.dev/builds\"\u003eR-Universe of ggsegverse\u003c/a\u003e corresponds to, well, the ggsegverse.\nTherefore, on the ggsegverse website, the \u003ca href=\"https://ggsegverse.github.io/ecosystem/\"\u003elisting of packages\u003c/a\u003e is created by querying \u003ccode\u003ehttps://ggsegverse.r-universe.dev/api/packages\u003c/code\u003e, the endpoint for \u003ca href=\"https://docs.r-universe.dev/browse/api.html#information-of-all-packages-in-an-universe\"\u003einformation on all packages in the universe\u003c/a\u003e.\u003c/p\u003e\n\u003cfigure\u003e\u003ca href=\"https://ggsegverse.github.io/ecosystem/\"\u003e\u003cimg src=\"/blog/2026/07/08/r-universe-apis-use-cases/ggsegverse.png\"\n\t\t\talt=\"Screenshot of the ggsegverse website, with informative package cards\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\n\u003cp\u003eLikewise, the \u003ca href=\"https://ggsegverse.github.io/docs/\"\u003edocs page\u003c/a\u003e of ggsegverse relies on the R-Universe API to retrieve links to vignettes for each package.\u003c/p\u003e\n\u003ch3 id=\"server-side-or-client-side-api-requests\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#server-side-or-client-side-api-requests\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nServer-side or client-side API requests\n\u003c/h3\u003e\u003cp\u003eThe ggsegverse website performs \u003cstrong\u003eclient-side requests\u003c/strong\u003e: it queries the R-Universe API when you open the webpage, through a \u003ca href=\"https://github.com/ggsegverse/ggsegverse.github.io/blob/aea3723f885387ca9399408ccfbcc7a1ec9d7820/js/api.js\"\u003eJS script\u003c/a\u003e.\nYou can also check this through the \u003ca href=\"https://inspectelement.org/apis.html#how-to-find-and-use-undocumented-apis\"\u003eweb developer tools\u003c/a\u003e:\u003c/p\u003e\n\u003cfigure\u003e\u003cimg src=\"/blog/2026/07/08/r-universe-apis-use-cases/request.png\"\n\t\t\talt=\"Screenshot of the web developer tools\u0026#39; network tab, showing the XHR request logged when one reloads the ggsegverse website\"\u003e\n\u003c/figure\u003e\n\n\u003cp\u003eThe rendering of the nice package cards happens through \u003ca href=\"https://github.com/ggsegverse/ggsegverse.github.io/blob/fec52718432d098b1162772f3f94985a1d0feef3/js/render.js\"\u003eanother JS script\u003c/a\u003e that uses information such as the package\u0026rsquo;s title, description, number of stars, etc.\u003c/p\u003e\n\u003cp\u003eIn contrast, for package listings on author and package pages, the rOpenSci website uses \u003cstrong\u003eserver-side requests\u003c/strong\u003e: the API is called when Hugo renders our website.\nFor instance, for the list of packages at the bottom of \u003ca href=\"/author/jeroen-ooms/\"\u003eJeroen Ooms\u0026rsquo; author page\u003c/a\u003e, we \u003ca href=\"https://github.com/ropensci/roweb3/blob/503f0547854925eaa72a0e2c36420e3731e98ebf/themes/ropensci/layouts/author/list.html#L84\"\u003equery\u003c/a\u003e the R-Universe API link from our website \u003ca href=\"https://github.com/ropensci/roweb3/blob/7851904c5297868b7c372788166c526f2fe2ed1d/config.toml#L60\"\u003econfiguration\u003c/a\u003e and \u003ca href=\"https://github.com/ropensci/roweb3/blob/503f0547854925eaa72a0e2c36420e3731e98ebf/themes/ropensci/layouts/author/list.html#L85\"\u003efilter\u003c/a\u003e the packages by GitHub login.\u003c/p\u003e\n\u003cfigure\u003e\u003cimg src=\"/blog/2026/07/08/r-universe-apis-use-cases/jeroen.png\"\n\t\t\talt=\"Screenshot of Jeroen Ooms\u0026#39; author page on the rOpenSci website, featuring the list of rOpenSci packages that he maintains.\"\u003e\n\u003c/figure\u003e\n\n\u003cp\u003eOn a Quarto website, you could have a code chunk using R to query the R-Universe APIs, through the \u003ca href=\"https://docs.ropensci.org/universe/\"\u003euniverse R package\u003c/a\u003e for instance.\u003c/p\u003e\n\u003cp\u003eIn any case, if you use server-side requests, you need to re-render your website regularly to avoid your packages\u0026rsquo; listing to get out-of-date.\nThe nice thing about client-side requests is that the package lists will be always up-to-date!\u003c/p\u003e\n\u003ch2 id=\"search-packages\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#search-packages\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nSearch Packages\n\u003c/h2\u003e\u003cp\u003eWith R-universe, you can search packages, not only through the web interface but also through an \u003ca href=\"https://docs.r-universe.dev/browse/api.html#api-global-search\"\u003eAPI\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe project \u003ca href=\"https://rwarehouse.netlify.app/\"\u003eThe Wharehouse\u003c/a\u003e, that helps users find packages according to given keywords, \u003ca href=\"https://rwarehouse.netlify.app/about#resources-credits\"\u003euses R-universe as one its information sources\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 id=\"conclusion\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#conclusion\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nConclusion\n\u003c/h2\u003e\u003cp\u003eIn this post we provided some use cases of the R-Universe APIs.\nTry them out, or read the \u003ca href=\"https://docs.r-universe.dev/browse/api.html\"\u003edocs\u003c/a\u003e to get a sense of all the information that\u0026rsquo;s shared through the different endpoints.\nIf you maintain some infrastructure that uses an R-Universe API, feel free to report a \u003ca href=\"/usecases\"\u003euse case\u003c/a\u003e!\u003c/p\u003e\n","url":"https://ropensci.org/blog/2026/07/08/r-universe-apis-use-cases/","date_published":"2026-07-08T00:00:00+00:00"},{"id":"https://ropensci.org/blog/2026/07/02/editor-tools/","title":"FOSS Tools for Lazy Editors","content_text":"\u003c!--- cSpell: ignore xkcd wordlists roweb chrischinchilla jolars  ---\u003e\n\u003cp\u003eI recently had the opportunity to learn what the term \u0026ldquo;Nerd Sniping\u0026rdquo; meant.\n\u003ca href=\"/author/ma%C3%ABlle-salmon\"\u003eMaëlle\u003c/a\u003e pointed out a conversation on the rOpenSci Slack about something called Vale, meant for text linting.\nI\u0026rsquo;d seen the comment, but honestly hadn\u0026rsquo;t really understood what it was all about until Maëlle asked if I thought it\u0026rsquo;d be useful for editing the blog\u0026hellip;\u003c/p\u003e\n\u003cp\u003e\u0026hellip;time passes\u0026hellip;\u003c/p\u003e\n\u003cp\u003eAbout three days later, I\u0026rsquo;ve hardly finished any of the blog post reviews I was planning to do.\nI\u0026rsquo;ve been sucked down a rabbit hole of Vale setup, custom rules, and overrides.\u003c/p\u003e\n\u003cp\u003eIt turns out that \u0026ldquo;Nerd Sniping\u0026rdquo; refers to the practice of throwing problems at nerds that distract them from what they were doing.\u003c/p\u003e\n\u003cfigure class=\"center\"\u003e\u003cimg src=\"/blog/2026/07/02/editor-tools/nerd_sniping.png\"\n\t\t\talt=\"xkcd comic #356 Nerd Sniping. A comic where a shouted physics problem stops an engineer crossing the street so they are hit by a bus while contemplating the solution.\" width=\"500\"\u003e\u003cfigcaption\u003e\n\t\t\t\u003cp\u003e\u003ca href=\"https://xkcd.com/356\"\u003exkcd Nerd Sniping\u003c/a\u003e\u003c/p\u003e\n\t\t\u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\u003cp\u003eThat being said, it was a glorious hole to fall down!\nIt was just too bad that Maëlle sniped me two more times by asking me about my spell check setup in Positron and then by asking if Panache would help with translations.\u003c/p\u003e\n\u003cp\u003eI was pretty slow at my editorial duties that week!\nBut I did come out of the dive with a great editorial setup which will definitely save me time in future.\u003c/p\u003e\n\u003cp\u003eI\u0026rsquo;ve \u003ca href=\"/author/steffi-lazerte\"\u003eedited\u003c/a\u003e \u003cstrong\u003ea lot\u003c/strong\u003e of posts on the rOpenSci blog.\nI take pride in helping writers get their ideas across with clarity, while not losing their own style.\nI\u0026rsquo;m an opinionated editor, so I also try hard to ensure that writers understand when my suggestions are just my opinion, and when I think there are mistakes in style or content that really do need to be fixed.\nI am also fussy about the details, about being consistent with capitalizations, about keeping ideas logically ordered, and about making sure that readers without the same background might still understand the gist of the post\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e.\u003c/p\u003e\n\u003cp\u003eAs such, my post reviews can get a bit lengthy and it\u0026rsquo;s not unreasonable for me to have 20-30 comments on a standard post.\nThat\u0026rsquo;s not too problematic, but if I had to complain it might be about the technical edits, like fixing the capitalization of \u0026lsquo;rOpenSci\u0026rsquo;\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e, ensuring headings are in sentence case, and that links to ropensci.org pages are relative.\nThese aren\u0026rsquo;t complicated fixes, but if you have to remember to keep an eye out for them, and then create a GitHub PR review suggestion for each fix, it can become a tad tedious.\u003c/p\u003e\n\u003cp\u003eMaëlle\u0026rsquo;s timely sniping helped me finalize my collection of tools to help streamline editorial tasks.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSpell checking\u003c/strong\u003e with \u003ca href=\"https://cspell.org/\"\u003ecSpell\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLinting\u003c/strong\u003e\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e with \u003ca href=\"https://vale.sh/\"\u003eVale\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFormatting\u003c/strong\u003e with \u003ca href=\"https://panache.bz/\"\u003ePanache\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCreating GitHub PR suggestions\u003c/strong\u003e with \u003ca href=\"https://github.com/Microsoft/vscode-pull-request-github\"\u003eGitHub Pull Requests\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAll of these tools can be installed and used in different ways.\nThey are also powerful with many different possible customizations and configurations.\nHere, I\u0026rsquo;ll share with you how I use these tools as extensions in \u003ca href=\"https://positron.posit.co/\"\u003ePositron\u003c/a\u003e to help make it easier to write and edit posts for the rOpenSci blog.\nHopefully this inspires you to explore how you might set them up to support your workflows!\nFurther, if you\u0026rsquo;re interested in setting up your own tools, perhaps you want to check out this \u003ca href=\"/blog/2025/09/18/markdown-programmatic-parsing/\"\u003eblog post\u003c/a\u003e on \u0026ldquo;All the Ways to Programmatically Edit or Parse R Markdown / Quarto Documents\u0026rdquo;.\u003c/p\u003e\n\u003ch2 id=\"general-setup\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#general-setup\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nGeneral setup\n\u003c/h2\u003e\u003cp\u003eFor each tool, you\u0026rsquo;ll want to install the Positron extension, and then set up your configuration.\nConfigurations can usually be specified at three different levels:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eUser\u003c/strong\u003e: Your system-wide setup which is how you want things to work in general across projects.\nUser config files are generally stored somewhere in your home directory.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eProject\u003c/strong\u003e: Project-wide setup which overrides your user setup if the project does things differently.\nThese config files are stored in the project directly (like \u003ccode\u003eroweb3\u003c/code\u003e, for the rOpenSci blog).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFile\u003c/strong\u003e: File or file section setup which works at a very local scale.\nUsually this configuration is indicated by in-file comments.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMore specifically here are (some) of the locations/names for configuration files and links to their documentation sections for more details.\u003c/p\u003e\n\u003c!-- panache-ignore-format-start --\u003e\n\u003ctable\u003e\n\t\u003cthead\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003cth\u003eLevel\u003c/th\u003e\n\t\t\t\t\t\u003cth\u003ecSpell\u003c/th\u003e\n\t\t\t\t\t\u003cth\u003eVale\u003c/th\u003e\n\t\t\t\t\t\u003cth\u003ePanache\u003c/th\u003e\n\t\t\t\u003c/tr\u003e\n\t\u003c/thead\u003e\n\t\u003ctbody\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eUser\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003e\u003ca href=\"https://streetsidesoftware.com/vscode-spell-checker/#vs-code-configuration-settings\"\u003ePositron settings\u003c/a\u003e\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003e\u003ca href=\"https://docs.vale.sh/topics/.vale.ini#search-process\"\u003e\u003ccode\u003e.vale.ini\u003c/code\u003e in any parent dir. or global config\u003c/a\u003e\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003e\u003ca href=\"https://panache.bz/guide/configuration.html\"\u003e\u003ccode\u003e~/.config/panache/config.toml\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eProject\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003e\u003ca href=\"(https://cspell.org/docs/Configuration)\"\u003e\u003ccode\u003e.cspell.json\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003e\u003ca href=\"docs.vale.sh/topics/.vale.ini#creating-a-valeini-file\"\u003e\u003ccode\u003e.vale.ini\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003e\u003ca href=\"https://panache.bz/guide/configuration.html\"\u003e\u003ccode\u003e.panache.toml\u003c/code\u003e\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eFile\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003e\u003ca href=\"https://cspell.org/docs/Configuration/document-settings\"\u003eInline Comments\u003c/a\u003e\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003e\u003ca href=\"https://docs.vale.sh/formats/html\"\u003eInline Comments\u003c/a\u003e\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003e\u003ca href=\"https://panache.bz/getting-started.html#ignore-directives\"\u003eInline Comments\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- panache-ignore-format-end --\u003e\n\u003cp\u003eThis means you can have different rules for different projects, and override them as needed.\nIn the following examples, I\u0026rsquo;ll show you how I do this for posts on the rOpenSci blog.\u003c/p\u003e\n\u003ch3 id=\"code-spell-checker-cspell\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#code-spell-checker-cspell\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nCode Spell Checker (cSpell)\n\u003c/h3\u003e\u003cp\u003eFirst is my spell checker, which probably doesn\u0026rsquo;t need much explanation.\nHowever, it\u0026rsquo;s nice to use a spell checker which also works on code.\nI use the \u003ca href=\"https://github.com/streetsidesoftware/vscode-spell-checker\"\u003eCode Spell Checker (cSpell)\u003c/a\u003e extension by Street Side Software and installed the languages extensions individually:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCanadian English\u003csup id=\"fnref:4\"\u003e\u003ca href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e4\u003c/a\u003e\u003c/sup\u003e - Code Spell Checker\u003c/li\u003e\n\u003cli\u003eFrench - Code Spell Checker\u003c/li\u003e\n\u003cli\u003ePortuguese - Code Spell Checker\u003c/li\u003e\n\u003cli\u003eSpanish - Code Spell Checker\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAlternatively, you could also install the \u003ca href=\"https://github.com/streetsidesoftware/vscode-cspell-dict-extensions#readme\"\u003e\u003ccode\u003ecSpell Bundled Dictionaries\u003c/code\u003e\u003c/a\u003e instead.\u003c/p\u003e\n\u003cp\u003eTo configure this extension, I added two types of files: a project-level configuration file, and two dictionaries of words to consider \u0026lsquo;correct\u0026rsquo;.\u003c/p\u003e\n\u003cp\u003eThe project level configuration file, \u003ca href=\"https://github.com/ropensci/roweb3/blob/5af882c6c3794048391543ced8a10bad39371f72/.cspell.json\"\u003e\u003ccode\u003e.cspell.json\u003c/code\u003e\u003c/a\u003e, lists languages to use for different files (to ensure \u003ccode\u003eindex.es.md\u003c/code\u003e files go through the Spanish spellchecker, while \u003ccode\u003eindex.pt.md\u003c/code\u003e files go through the Portuguese spellchecker, etc.).\nIt also includes a list of globs for file paths we can ignore (I\u0026rsquo;m really not interested in spelling mistakes in the .git folder), as well as pointing to dictionaries.\u003c/p\u003e\n\u003cp\u003eThese dictionaries are initially created by functions from my \u003ca href=\"https://docs.ropensci.org/promoutils\"\u003epromoutils\u003c/a\u003e package, an R package for all my rOpenSci community workflows.\n\u003ccode\u003ewordlist_create()\u003c/code\u003e creates a wordlist based on rOpenSci packages and author names, so they don\u0026rsquo;t trigger the spell check if they aren\u0026rsquo;t recognized.\n\u003ccode\u003ewordlist_update()\u003c/code\u003e updates this list with new names as needed.\u003c/p\u003e\n\u003cp\u003eWe keep these dictionaries in a \u003ca href=\"hhttps://github.com/ropensci/roweb3/tree/5af882c6c3794048391543ced8a10bad39371f72/.wordlists\"\u003e\u003ccode\u003e.wordlists\u003c/code\u003e\u003c/a\u003e folder.\nNames are stored in the \u003ccode\u003e.wordlists/names.txt\u003c/code\u003e file, and we also have a \u003ccode\u003e.wordlists/words.txt\u003c/code\u003e file which stores words which are considered correct in the rOpenSci context (like \u0026lsquo;usecases\u0026rsquo;).\u003c/p\u003e\n\u003cp\u003eI should also note that I have a personal list of user words stored in my Positron user settings which lists words (like my name!)\nwhich I want to be considered correct across all projects.\u003c/p\u003e\n\u003cp\u003eWhen writing posts, we can also override the language settings within a post using a special comment.\nFor example if we want to use \u003ca href=\"https://github.com/ropensci/roweb3/blob/98a419ebb3efc5dcecc35b05265e83e6baa4f32a/content/blog/2026-06-02-ftc-guide/index.en.md?plain=1#L44\"\u003eEnglish and Portuguese for a post\u003c/a\u003e we could add \u003ccode\u003e\u0026lt;--- cSpell: language en,pt--\u0026gt;\u003c/code\u003e to the document.\u003c/p\u003e\n\u003cp\u003eWe can also include post-specific words to ignore, which is handy for acronyms.\nFor example, if we wanted to \u003ca href=\"https://github.com/ropensci/roweb3/blob/98a419ebb3efc5dcecc35b05265e83e6baa4f32a/content/blog/2026-06-02-ftc-guide/index.en.md?plain=1#L76\"\u003eignore the acronym \u003ccode\u003eCSCW\u003c/code\u003e\u003c/a\u003e we could use \u003ccode\u003e\u0026lt;!--- cSpell: ignore CSCW ---\u0026gt;\u003c/code\u003e at the top of a post.\u003c/p\u003e\n\u003cp\u003eSpell check issues pop up as a warning in my text window, or as a list under \u0026ldquo;Spell Checker Issues By File\u0026rdquo; my lower window pane so I can review them, add them to word lists, or just mentally ignore them.\u003c/p\u003e\n\u003ch3 id=\"vale\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#vale\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nVale\n\u003c/h3\u003e\u003cp\u003eFor linting text (checking the \u003cem\u003estyle\u003c/em\u003e and \u003cem\u003emeaning\u003c/em\u003e of the words) I use the \u003ca href=\"https://github.com/chrischinchilla/vale-vscode\"\u003eVale VSCode\u003c/a\u003e extension by chrischinchilla\u003csup id=\"fnref:5\"\u003e\u003ca href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e5\u003c/a\u003e\u003c/sup\u003e.\nVale helps me check that the \u003ca href=\"https://blogguide.ropensci.org/authortechnical.html#styleguide\"\u003eBlog Style\u003c/a\u003e rules are respected, and gives suggestions for alternative word choices to avoid common mistakes (such as words or expressions which might be derogatory).\u003c/p\u003e\n\u003cp\u003eTo setup Vale I created a project-specific Vale configuration file \u003ca href=\"https://github.com/ropensci/roweb3/blob/5af882c6c3794048391543ced8a10bad39371f72/.vale.ini\"\u003e\u003ccode\u003e.vale.ini\u003c/code\u003e\u003c/a\u003e\u003csup id=\"fnref:6\"\u003e\u003ca href=\"#fn:6\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e6\u003c/a\u003e\u003c/sup\u003e in the roweb3 repository.\nI keep my personal \u003ccode\u003e.vale.ini\u003c/code\u003e file in a higher level folder that holds all my R projects.\nIn addition to the Vale configuration file, I also created a Vale styles folder in \u003ca href=\"https://github.com/ropensci/roweb3/tree/5af882c6c3794048391543ced8a10bad39371f72/.vale-styles\"\u003e\u003ccode\u003eroweb3/.vale-styles\u003c/code\u003e\u003c/a\u003e.\nThis is where Vale rules are installed if we use predefined rules, and where I can put rOpenSci-specific rules for the blog.\nThe first time you use Vale you\u0026rsquo;ll want to run \u003ccode\u003evale sync\u003c/code\u003e in the terminal to install the standard, non-custom, rules.\nI \u003ccode\u003e.gitignore\u003c/code\u003e all rules which are installed, but track and push custom rules.\u003c/p\u003e\n\u003cp\u003eVale is where I\u0026rsquo;ve made the most customizations, especially with the rOpenSci Blog.\u003c/p\u003e\n\u003c!-- TODO: Add links to the configuration file for these items --\u003e\n\u003cul\u003e\n\u003cli\u003eI\u0026rsquo;ve added a \u003ca href=\"https://github.com/ropensci/roweb3/blob/5af882c6c3794048391543ced8a10bad39371f72/.vale-styles/config/vocabularies/Blog/accept.txt\"\u003especific Blog vocab list\u003c/a\u003e to ensure proper capitalization of rOpenSci projects and (not to mention \u0026ldquo;rOpenSci\u0026rdquo; 😉)\u003c/li\u003e\n\u003cli\u003eI\u0026rsquo;ve \u003ca href=\"https://github.com/ropensci/roweb3/blob/4d7e22b1487a589b3e639109aa5fdc320acf21ff/.vale.ini#L18\"\u003eturned off a lot of specific rules\u003c/a\u003e which are a bit too aggressive for a blog which allows people to write casually and informally as they like (including using words like \u0026ldquo;very\u0026rdquo; 😄).\u003c/li\u003e\n\u003cli\u003eI\u0026rsquo;ve created custom rules to modify existing rules \u003csup id=\"fnref:7\"\u003e\u003ca href=\"#fn:7\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e7\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003eI\u0026rsquo;ve created custom rules to enforce our style guide, like using \u003ca href=\"https://github.com/ropensci/roweb3/blob/main/.vale-styles/rOpenSci/title.yml\"\u003eTitle Case\u003c/a\u003e for blog post titles\u003csup id=\"fnref:8\"\u003e\u003ca href=\"#fn:8\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e8\u003c/a\u003e\u003c/sup\u003e, sentence case for subheadings, and using \u003ca href=\"https://github.com/ropensci/roweb3/blob/main/.vale-styles/rOpenSci/ropensci_links.yml\"\u003erelative links\u003c/a\u003e for ropensci.org pages.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis is just the start!\nI imagine the more I use these rules the more fine tuning I\u0026rsquo;ll do.\u003c/p\u003e\n\u003cp\u003eVale problems are classified as messages, warnings, or errors, and are highlighted in the text window as a quick fix and listed in the Problems pane in my lower window.\u003c/p\u003e\n\u003cp\u003eI should also note that for all the rules I\u0026rsquo;ve disabled, there are a lot of opinionated rules left.\nWe keep them as prompts to think about our writing, not because we \u003cem\u003emust\u003c/em\u003e follow them!\u003c/p\u003e\n\u003cfigure class=\"center\"\u003e\u003cimg src=\"/blog/2026/07/02/editor-tools/there_is.png\"\n\t\t\talt=\"Vale\u0026rsquo;s write-good rule doesn\u0026rsquo;t want me to start a sentence with \u0026lsquo;There is\u0026rsquo;, but I\u0026rsquo;m going to anyway!\" width=\"500\"\u003e\u003cfigcaption\u003e\n\t\t\t\u003cp\u003eVale\u0026rsquo;s write-good rule doesn\u0026rsquo;t want me to start a sentence with \u0026lsquo;There is\u0026rsquo;, but I\u0026rsquo;m going to anyway!\u003c/p\u003e\n\t\t\u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\u003ch3 id=\"panache\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#panache\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nPanache\n\u003c/h3\u003e\u003cp\u003eFor formatting text, I use the \u003ca href=\"https://github.com/jolars/panache\"\u003ePanache\u003c/a\u003e extension by jolars to format the (R)markdown files for the blog.\nThis is probably the smallest amount of setup, as all we need is a minimal \u003ca href=\"https://github.com/ropensci/roweb3/blob/5af882c6c3794048391543ced8a10bad39371f72/.panache.toml\"\u003e\u003ccode\u003e.panache.toml\u003c/code\u003e\u003c/a\u003e configuration file in the roweb3 repository.\nHowever, this file instructs Panache to do one super awesome thing for us, especially for translations of multilingual blog posts:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e[format]\nwrap = \u0026#34;sentence\u0026#34;\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eIf you set up Positron to format on save, Panache automatically wraps text by sentence every time you save the file.\nThis means that when a blog post is sent for a first pass translation using \u003ca href=\"https://docs.ropensci.org/babeldown/\"\u003ebabeldown\u003c/a\u003e, the translation comes back pretty good.\nAlternatively, if the line breaks are in the middle of a sentence, the translation can become garbled as lines are treated as disjointed sections of text.\u003c/p\u003e\n\u003cp\u003eFor my other work, I use \u003ccode\u003ewrap = \u0026quot;reflow\u0026quot;\u003c/code\u003e, set in my user configuration file in \u003ccode\u003e~/.config/panache/config.toml\u003c/code\u003e.\u003c/p\u003e\n\u003ch3 id=\"github-pull-requests\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#github-pull-requests\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nGitHub Pull Requests\n\u003c/h3\u003e\u003cp\u003eFinally, once I\u0026rsquo;ve got all the fiddly edits on a post\u0026rsquo;s (R)md file ready to go, I use the \u003ca href=\"https://github.com/Microsoft/vscode-pull-request-github\"\u003eGitHub Pull Requests\u003c/a\u003e extension to convert these edits to GitHub PR review suggestions.\nThis is really handy if you find yourself making many small suggested changes to GitHub PRs.\u003c/p\u003e\n\u003cp\u003eTo review blog posts, I fetch the PR with \u003ccode\u003eusethis::pr_fetch()\u003c/code\u003e, and then open the blog post (R)md file in Positron side by side with the html preview of the post in my web browser.\u003c/p\u003e\n\u003cp\u003eThen I review the html preview and make the edits directly in the (R)md file.\nWhen I\u0026rsquo;m done, I right click on the edited file name in the Source Control \u0026gt; Changes and select Create Pull Request Suggestions.\u003c/p\u003e\n\u003cfigure class=\"center\"\u003e\u003cimg src=\"/blog/2026/07/02/editor-tools/suggestions.png\" width=\"500\"\u003e\n\u003c/figure\u003e\n\n\u003cp\u003eThis converts my edits to GitHub PR review suggestions which I can then review in Positron, or as I prefer, in a web browser (and fix weird ones, such as suggestions which delete part of a section in one edit but add it back in the next; it\u0026rsquo;s not always a perfect process).\nOnce all the suggestions are converted, the extension asks me if I want to revert my changes (which I usually do).\u003c/p\u003e\n\u003cp\u003eA note of caution, I find this tool a bit confusing to use on a PR that has a lot of comments already.\nThe comments it makes are sometimes hidden or split in odd ways and it\u0026rsquo;s easy to accidentally create duplicates.\nIn these situations it\u0026rsquo;s sometimes easier just to make the suggestions in a browser as you might normally.\u003c/p\u003e\n\u003ch2 id=\"why-so-many-tools\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#why-so-many-tools\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nWhy so many tools?\n\u003c/h2\u003e\u003cp\u003eEach of these tools provides me a specific solution to a problem.\nThere is some overlap among them; Vale could do spell checks, and Panache could do linting.\nHowever, I find that by using the tools separately I can achieve an especially detailed and customized setup that works really well with the rOpenSci blog in particular, and with my work in general.\u003c/p\u003e\n\u003cp\u003eBy including the configuration files in the roweb3 repository, people who also use these tools will automatically use the configurations we\u0026rsquo;ve setup for the rOpenSci blog when they write a post.\nWe also plan to add instructions for how to use these tools to the \u003ca href=\"https://blogguide.ropensci.org/\"\u003eBlog Guide\u003c/a\u003e.\nThis should give blog writers the option of using these tools if they would like to.\u003c/p\u003e\n\u003cp\u003eHowever, even if other writers don\u0026rsquo;t use these tools, it\u0026rsquo;s still very useful for me to see a list of potential problems to double check at the end of my review without having to remember to check for them manually.\nIt means I can focus more on the review of the content rather than worry about whether it\u0026rsquo;s Ropensci or rOpenSci 😄\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eDon\u0026rsquo;t judge \u003cem\u003ethis\u003c/em\u003e post by these ideals, I said I\u0026rsquo;m a opinionated \u003cem\u003eeditor\u003c/em\u003e, writing is completely different 😉.\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eIt\u0026rsquo;s \u003cstrong\u003erO\u003c/strong\u003epen\u003cstrong\u003eS\u003c/strong\u003eci.\nNot Ropensci, not RopenSci and not ropenSci.\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u0026ldquo;Linting\u0026rdquo; with respect to text or prose means checking the \u003cem\u003estyle\u003c/em\u003e and \u003cem\u003emeaning\u003c/em\u003e of the words.\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:4\"\u003e\n\u003cp\u003eI\u0026rsquo;m Canadian so generally follow Canadian spelling (a mix of British and American for those of you new to the complex world of English spelling differences).\nAt rOpenSci, we generally just ask an author to pick one and stick to it.\u0026#160;\u003ca href=\"#fnref:4\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:5\"\u003e\n\u003cp\u003eThere is also \u003ca href=\"https://github.com/vale-cli/vale-vscode\"\u003eVale\u003c/a\u003e by errata-ai, but this extension has been \u003ca href=\"https://github.com/vale-cli/vale-vscode#vale--vs-code\"\u003edeprecated\u003c/a\u003e in favour of Vale VSCode.\u0026#160;\u003ca href=\"#fnref:5\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:6\"\u003e\n\u003cp\u003eIf you get an error on startup, you may need to tell Vale where this is explicitly by modifying Projects\u0026rsquo; settings.json file to include \u003ccode\u003e\u0026quot;vale.valeCLI.config\u0026quot;: \u0026quot;.vale.ini\u0026quot;\u003c/code\u003e\u0026#160;\u003ca href=\"#fnref:6\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:7\"\u003e\n\u003cp\u003eFor example, \u003ca href=\"https://github.com/get-alex/alex\"\u003e\u003ccode\u003ealex\u003c/code\u003e\u003c/a\u003e worries that the word \u0026ldquo;Mexican\u0026rdquo; might be used in a racist manner, but at rOpenSci, it\u0026rsquo;s stated with pride and I don\u0026rsquo;t want Vale to flag our community members for mentioning their nationality 😅\u0026#160;\u003ca href=\"#fnref:7\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:8\"\u003e\n\u003cp\u003eBut awesomely, we can enforce this rule for English, but not Spanish posts!\u0026#160;\u003ca href=\"#fnref:8\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n","url":"https://ropensci.org/blog/2026/07/02/editor-tools/","date_published":"2026-07-02T00:00:00+00:00"},{"id":"https://ropensci.org/blog/2026/06/30/news-june-2026/","title":"rOpenSci News Digest, June 2026","content_text":"\u003c!-- Before sending DELETE THE INDEX_CACHE and re-knit! --\u003e\n\u003cp\u003eDear rOpenSci friends, it\u0026rsquo;s time for our monthly news roundup! \u003c!-- blabla --\u003e You can read this post \u003ca href=\"/blog/2026/06/30/news-june-2026\"\u003eon our blog\u003c/a\u003e. Now let\u0026rsquo;s dive into the activity at and around rOpenSci!\u003c/p\u003e\n\u003ch2 id=\"ropensci-hq\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#ropensci-hq\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nrOpenSci HQ\n\u003c/h2\u003e\u003ch3 id=\"champions-program-update\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#champions-program-update\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nChampions Program update\n\u003c/h3\u003e\u003cp\u003eWe have two concurrent cohorts, both in Spanish.\u003c/p\u003e\n\u003cp\u003eThe 2025\u0026ndash;2026 cohort is nearing the end of its participation in the program, so we are organizing the closing meeting and the overall evaluation.\u003c/p\u003e\n\u003cp\u003eThe 2026\u0026ndash;2027 cohort is continuing their training activities, meeting with their mentors, and starting to work on their packages, and they have been formally introduced on our blog! Read all about the \u003ca href=\"/blog/2026/06/09/champions-2026/\"\u003e11 new Champions\u003c/a\u003e.\u003c/p\u003e\n\u003ch3 id=\"new-editors-ronny-hernandez-mora-joel-nitta-and-nick-tierney\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#new-editors-ronny-hernandez-mora-joel-nitta-and-nick-tierney\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nNew editors Ronny Hernandez Mora, Joel Nitta, and Nick Tierney\n\u003c/h3\u003e\u003cp\u003eWe\u0026rsquo;re thrilled to \u003ca href=\"/blog/2026/06/11/neweditorsq22026/\"\u003eintroduce\u003c/a\u003e new editors Ronny Hernandez Mora, Joel Nitta, and Nick Tierney. An official welcome and thank you to all three!\u003c/p\u003e\n\u003ch3 id=\"a-new-guide-organizing-events-for-first-time-contributors\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#a-new-guide-organizing-events-for-first-time-contributors\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nA new guide: Organizing Events for First-time Contributors\n\u003c/h3\u003e\u003cp\u003eSteffi LaZerte and Yanina Bellini Saibene released a fantastic new rOpenSci guide! Learn how to organize events for first-time contributors such as mini-hackathons and mini-translathons. Read more in the \u003ca href=\"/blog/2026/06/02/ftc-guide/\"\u003erelease announcement\u003c/a\u003e.\u003c/p\u003e\n\u003ch3 id=\"r-universe-updates\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#r-universe-updates\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nR-Universe updates\n\u003c/h3\u003e\u003cp\u003e\u0026ldquo;Five recent R-Universe features you might have missed\u0026rdquo;: A clickbait title for a blog post you don\u0026rsquo;t want to miss! \u0026#x1f609; Jeroen Ooms \u003ca href=\"/blog/2026/06/07/r-universe-updates/\"\u003edescribes five recent additions\u003c/a\u003e to the R-Universe platform:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSocial media cards that actually look good\u003c/li\u003e\n\u003cli\u003ePACKAGES.rds support (or: implementing R internals in JavaScript)\u003c/li\u003e\n\u003cli\u003eFancy sort/filter bars in the WebUI\u003c/li\u003e\n\u003cli\u003eFor the impatient: trigger a sync manually\u003c/li\u003e\n\u003cli\u003eMaking check results easier to find and share\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIn other news, R-universe user Tom Palmer also wrote about five things: \u003ca href=\"https://remlapmot.github.io/post/2026/runiverse-tips/\"\u003e\u0026ldquo;Five tips for managing your R-universe 🚀\u0026rdquo;\u003c/a\u003e. You won\u0026rsquo;t believe the fifth one. \u0026#x1f609;\u003c/p\u003e\n\u003ch3 id=\"yanina-joins-the-2026-sovereign-tech-fellowship\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#yanina-joins-the-2026-sovereign-tech-fellowship\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nYanina Joins the 2026 Sovereign Tech Fellowship\n\u003c/h3\u003e\u003cp\u003eWe\u0026rsquo;re excited to share that our Community Manager, Yanina Bellini Saibene, \u003ca href=\"https://www.sovereign.tech/news/meet-the-2026-sovereign-tech-fellows\"\u003ehas been selected as a 2026 Sovereign Tech Fellow\u003c/a\u003e. During the fellowship, she will focus on making open source more accessible through improved contribution guidance, newcomer-focused mini-hackathons, multilingual training resources, and more sustainable localization practices across communities in the R ecosystem. These efforts will build on and extend rOpenSci\u0026rsquo;s work in community building, mentorship, and open science.\u003c/p\u003e\n\u003ch3 id=\"quinceañera-celebrating-15-years-together\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#quincea%c3%b1era-celebrating-15-years-together\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\n\u003cem\u003eQuinceañera\u003c/em\u003e: celebrating 15 years together\n\u003c/h3\u003e\u003cp\u003eIn June, we held two community events and a co-working session to mark rOpenSci\u0026rsquo;s 15th anniversary. Across all three sessions, people shared memories of their first contribution, discussed ideas for the next 15 years, and reminded us of how genuinely welcoming rOpenSci \u003cem\u003eand\u003c/em\u003e it\u0026rsquo;s community are. There\u0026rsquo;s more to come :-) Keep an eye out for what we have planned for the rest of the year.\u003c/p\u003e\n\u003ch3 id=\"software-peer-review-updates\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#software-peer-review-updates\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nSoftware Peer-Review updates\n\u003c/h3\u003e\u003cp\u003eCommunity member \u003ca href=\"/author/athanasia-mo-mowinckel/\"\u003eAthanasia Mo Mowinckel\u003c/a\u003e has started a new AI agent \u0026ldquo;skills\u0026rdquo; repo at \u003ca href=\"https://github.com/ropensci-review-tools/ropensci-skills\"\u003e\u003ccode\u003eropensci-review-tools/ropensci-skills\u003c/code\u003e\u003c/a\u003e. The repo holds a variety of \u0026ldquo;skills\u0026rdquo;, which are human-readable markdown files, for AI agents to assist in preparing software for peer-review. Anybody thinking about using AI systems to prepare software for peer-review is encouraged to try out these experimental skills, and to help us improve them for others by opening issues or pull requests in \u003ca href=\"https://github.com/ropensci-review-tools/ropensci-skills\"\u003ethe GitHub repo\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eOur recent updates to the \u003ca href=\"/blog/2026/06/01/goodpractice/\"\u003egoodpractice package\u003c/a\u003e have also been enhanced with an all-new AI \u0026ldquo;skill\u0026rdquo;. \u003ca href=\"https://github.com/ropensci-review-tools/goodpractice/blob/main/inst/skills/goodpractice4agents.md\"\u003eThis skill\u003c/a\u003e instructs agents to edit and improve your package\u0026rsquo;s code to comply with the full suite of goodpractice checks. You can try it out with the package\u0026rsquo;s new \u003ca href=\"https://docs.ropensci.org/goodpractice/reference/use_skill_gp.html\"\u003e\u003ccode\u003euse_skill_gp()\u003c/code\u003e function\u003c/a\u003e.\u003c/p\u003e\n\u003ch3 id=\"coworking\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#coworking\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nCoworking\n\u003c/h3\u003e\u003cp\u003eRead \u003ca href=\"/blog/2023/06/21/coworking/\"\u003eall about coworking\u003c/a\u003e!\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTuesday July 7nd 2026, 09:00 Americas Pacific (16:00 UTC) \u003ca href=\"/events/coworking-2026-07/\"\u003e\u0026ldquo;Debugging in R\u0026rdquo;\u003c/a\u003e, with \u003ca href=\"/author/yanina-bellini-saibene/\"\u003eYanina Bellini Saibene\u003c/a\u003e and cohost \u003ca href=\"/author/shannon-pileggi\"\u003eShannon Pileggi\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eRead up on debugging in R.\u003c/li\u003e\n\u003cli\u003eMeet community host, Shannon Pileggi, and discuss tips and tricks for debugging in R.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eTuesday August 4th, 09:00 Australia Western (01:00 UTC) \u003ca href=\"/events/coworking-2026-08/\"\u003e\u0026ldquo;Vale and Text Linting\u0026rdquo;\u003c/a\u003e, with \u003ca href=\"/author/steffi-lazerte\"\u003eSteffi LaZerte\u003c/a\u003e and cohost \u003ca href=\"/author/jonathan-carroll/\"\u003eJonathan Carroll\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eRead up on text linting.\u003c/li\u003e\n\u003cli\u003eSetup a linting framework for your projects.\u003c/li\u003e\n\u003cli\u003eMeet co-host, Jonathan Carroll, and discuss Vale and text linting.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eTuesday September 1st, 14:00 Europe Central (12:00 UTC) \u003ca href=\"/events/coworking-2026-09/\"\u003e\u0026ldquo;Getting to Know SORTEE\u0026rdquo;\u003c/a\u003e, with \u003ca href=\"/author/steffi-lazerte\"\u003eSteffi LaZerte\u003c/a\u003e and cohost \u003ca href=\"/author/ed-ivimey-cook/\"\u003eEd Ivimey-Cook\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eVisit \u003ca href=\"https://sortee.org/\"\u003eSORTEE\u003c/a\u003e (Society for Open, Reliable, and Transparent Ecology and Evolutionary Biology).\u003c/li\u003e\n\u003cli\u003eMeet co-host, Ed Ivimey-Cook, and learn more about SORTEE and how you might get involved.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAnd remember, you can always cowork independently on work related to R, work on packages that tend to be neglected, or work on what ever you need to get done!\u003c/p\u003e\n\u003ch2 id=\"software-package\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#software-package\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nSoftware \u0026#x1f4e6;\n\u003c/h2\u003e\u003cp\u003eThe following two packages recently became a part of our software suite:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.ropensci.org/pvEBayes\"\u003epvEBayes\u003c/a\u003e, developed by Yihao Tan together with Marianthi Markatou, Saptarshi Chakraborty, and Raktim Mukhopadhyay: A suite of empirical Bayes methods to use in pharmacovigilance. Contains various model fitting and post-processing functions. For more details see Tan et al. (2025) \u003ca href=\"https://doi.org/10.1002/sim.70195\"\u003ehttps://doi.org/10.1002/sim.70195\u003c/a\u003e, \u003ca href=\"https://doi.org/10.48550/arXiv.2512.01057\"\u003ehttps://doi.org/10.48550/arXiv.2512.01057\u003c/a\u003e; Koenker and Mizera (2014) \u003ca href=\"https://doi.org/10.1080/01621459.2013.869224\"\u003ehttps://doi.org/10.1080/01621459.2013.869224\u003c/a\u003e; Efron (2016) \u003ca href=\"https://doi.org/10.1093/biomet/asv068\"\u003ehttps://doi.org/10.1093/biomet/asv068\u003c/a\u003e. It has been \u003ca href=\"https://github.com/ropensci/software-review/issues/760\"\u003ereviewed\u003c/a\u003e by Kathryn Doering and Collin Cademartori.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.ropensci.org/nycOpenData\"\u003enycOpenData\u003c/a\u003e, developed by Christian Martinez: Provides a unified set of helper functions to access datasets from the NYC Open Data platform \u003ca href=\"https://opendata.cityofnewyork.us/\"\u003ehttps://opendata.cityofnewyork.us/\u003c/a\u003e. Functions return results as tidy tibbles and support optional filtering, sorting, and row limits via the Socrata API. The package includes endpoints for 311 service requests, DOB job applications, juvenile justice metrics, school safety, environmental data, event permitting, and additional citywide datasets. It has been \u003ca href=\"https://github.com/ropensci/software-review/issues/750\"\u003ereviewed\u003c/a\u003e by Haolin Dong and Michael Pascale.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDiscover \u003ca href=\"/packages\"\u003emore packages\u003c/a\u003e, read more about \u003ca href=\"/software-review\"\u003eSoftware Peer Review\u003c/a\u003e.\u003c/p\u003e\n\u003ch3 id=\"new-versions\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#new-versions\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nNew versions\n\u003c/h3\u003e\u003cp\u003eThe following seventeen packages have had an update since the last newsletter: \u003ca href=\"https://docs.ropensci.org/weathercan\" title=\"Download Weather Data from Environment and Climate Change Canada\"\u003eweathercan\u003c/a\u003e (\u003ca href=\"https://github.com/ropensci/weathercan/releases/tag/v1.0.0\"\u003e\u003ccode\u003ev1.0.0\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"https://docs.ropensci.org/occCite\" title=\"Querying and Managing Large Biodiversity Occurrence Datasets\"\u003eoccCite\u003c/a\u003e (\u003ca href=\"https://github.com/ropensci/occCite/releases/tag/v0.6.2\"\u003e\u003ccode\u003ev0.6.2\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"https://docs.ropensci.org/lightr\" title=\"Read Spectrometric Data and Metadata\"\u003elightr\u003c/a\u003e (\u003ca href=\"https://github.com/ropensci/lightr/releases/tag/v2.0.0\"\u003e\u003ccode\u003ev2.0.0\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"https://docs.ropensci.org/gutenbergr\" title=\"Download and Process Public Domain Works from Project Gutenberg\"\u003egutenbergr\u003c/a\u003e (\u003ca href=\"https://github.com/ropensci/gutenbergr/releases/tag/v0.5.2\"\u003e\u003ccode\u003ev0.5.2\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"https://docs.ropensci.org/slopes\" title=\"Calculate Slopes of Roads, Rivers and Trajectories\"\u003eslopes\u003c/a\u003e (\u003ca href=\"https://github.com/ropensci/slopes/releases/tag/v2.0.0\"\u003e\u003ccode\u003ev2.0.0\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"https://docs.ropensci.org/qualtRics\" title=\"Download Qualtrics Survey Data\"\u003equaltRics\u003c/a\u003e (\u003ca href=\"https://github.com/ropensci/qualtRics/releases/tag/v3.3.0\"\u003e\u003ccode\u003ev3.3.0\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"https://docs.ropensci.org/srr\" title=\"rOpenSci Software Review Roclets\"\u003esrr\u003c/a\u003e (\u003ca href=\"https://github.com/ropensci-review-tools/srr/releases/tag/v1.0.0\"\u003e\u003ccode\u003ev1.0.0\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"https://docs.ropensci.org/goodpractice\" title=\"Advice on R Package Building\"\u003egoodpractice\u003c/a\u003e (\u003ca href=\"https://github.com/ropensci-review-tools/goodpractice/releases/tag/v1.1\"\u003e\u003ccode\u003ev1.1\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"https://docs.ropensci.org/pkgmatch\" title=\"Find R Packages Matching Either Descriptions or Other R Packages\"\u003epkgmatch\u003c/a\u003e (\u003ca href=\"https://github.com/ropensci-review-tools/pkgmatch/releases/tag/v0.5.4\"\u003e\u003ccode\u003ev0.5.4\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"https://docs.ropensci.org/pkgstats\" title=\"Metrics of R Packages\"\u003epkgstats\u003c/a\u003e (\u003ca href=\"https://github.com/ropensci-review-tools/pkgstats/releases/tag/v0.2.3\"\u003e\u003ccode\u003ev0.2.3\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"https://docs.ropensci.org/cffr\" title=\"Generate Citation File Format (CFF) Metadata for R Packages\"\u003ecffr\u003c/a\u003e (\u003ca href=\"https://github.com/ropensci/cffr/releases/tag/v1.4.1\"\u003e\u003ccode\u003ev1.4.1\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"https://docs.ropensci.org/dfms\" title=\"Dynamic Factor Models\"\u003edfms\u003c/a\u003e (\u003ca href=\"https://github.com/ropensci/dfms/releases/tag/v1.0.1\"\u003e\u003ccode\u003ev1.0.1\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"https://docs.ropensci.org/osmdata\" title=\"Import OpenStreetMap Data as Simple Features or Spatial Objects\"\u003eosmdata\u003c/a\u003e (\u003ca href=\"https://github.com/ropensci/osmdata/releases/tag/v0.4.0\"\u003e\u003ccode\u003ev0.4.0\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"https://docs.ropensci.org/aRxiv\" title=\"Interface to the arXiv API\"\u003eaRxiv\u003c/a\u003e (\u003ca href=\"https://github.com/ropensci/aRxiv/releases/tag/0.20\"\u003e\u003ccode\u003e0.20\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"https://docs.ropensci.org/Athlytics\" title=\"A Reproducible Framework for Endurance Data Analysis\"\u003eAthlytics\u003c/a\u003e (\u003ca href=\"https://github.com/ropensci/Athlytics/releases/tag/v1.0.6\"\u003e\u003ccode\u003ev1.0.6\u003c/code\u003e\u003c/a\u003e), \u003ca href=\"https://docs.ropensci.org/ReLTER\" title=\"An Interface for the eLTER Community\"\u003eReLTER\u003c/a\u003e (\u003ca href=\"https://github.com/ropensci/ReLTER/releases/tag/3.1.1\"\u003e\u003ccode\u003e3.1.1\u003c/code\u003e\u003c/a\u003e), and \u003ca href=\"https://docs.ropensci.org/read.abares\" title=\"Read Australian Agricultural Data from Government Agencies\"\u003eread.abares\u003c/a\u003e (\u003ca href=\"https://github.com/ropensci/read.abares/releases/tag/v3.0.0\"\u003e\u003ccode\u003ev3.0.0\u003c/code\u003e\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eThe writexl package has a \u003ca href=\"https://github.com/ropensci/writexl/pull/98#issuecomment-4191858158\"\u003enew maintainer\u003c/a\u003e, Bill Denney. NLMR is now maintained by \u003ca href=\"https://github.com/ropensci/NLMR/issues/116#issuecomment-4280937012\"\u003eJakub Nowosad\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 id=\"software-peer-review\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#software-peer-review\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nSoftware Peer Review\n\u003c/h2\u003e\u003cp\u003eThere are eighteen recently closed and active submissions and 4 submissions on hold. Issues are at different stages:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFour at \u003ca href=\"https://github.com/ropensci/software-review/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%226/approved%22\"\u003e\u0026lsquo;6/approved\u0026rsquo;\u003c/a\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ropensci/software-review/issues/760\"\u003epvEBayes\u003c/a\u003e, Empirical Bayes Methods for Pharmacovigilance. Submitted by \u003ca href=\"https://github.com/YihaoTancn\"\u003eYihao Tan\u003c/a\u003e. (Stats).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ropensci/software-review/issues/750\"\u003enycOpenData\u003c/a\u003e, Convenient Access to NYC Open Data API Endpoints. Submitted by \u003ca href=\"https://github.com/martinezc1\"\u003eChristian Martinez\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ropensci/software-review/issues/730\"\u003eernest\u003c/a\u003e, A Toolkit for Nested Sampling. Submitted by \u003ca href=\"https://github.com/kylesnap\"\u003eKyle Dewsnap\u003c/a\u003e. (Stats).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ropensci/software-review/issues/671\"\u003epkgmatch\u003c/a\u003e, Find R Packages Matching Either Descriptions or Other R Packages. Submitted by \u003ca href=\"https://mpadge.github.io\"\u003emark padgham\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTwo at \u003ca href=\"https://github.com/ropensci/software-review/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%225/awaiting-reviewer(s)-response%22\"\u003e\u0026lsquo;5/awaiting-reviewer(s)-response\u0026rsquo;\u003c/a\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ropensci/software-review/issues/762\"\u003elakefetch\u003c/a\u003e, Calculate Fetch and Wave Exposure for Lake Sampling Points. Submitted by \u003ca href=\"https://github.com/jeremylfarrell\"\u003ejeremylfarrell\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ropensci/software-review/issues/704\"\u003epriorsense\u003c/a\u003e, Prior Diagnostics and Sensitivity Analysis. Submitted by \u003ca href=\"https://github.com/n-kall\"\u003eNoa Kallioinen\u003c/a\u003e. (Stats).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFive at \u003ca href=\"https://github.com/ropensci/software-review/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%224/review(s)-in-awaiting-changes%22\"\u003e\u0026lsquo;4/review(s)-in-awaiting-changes\u0026rsquo;\u003c/a\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ropensci/software-review/issues/744\"\u003eRAQSAPI\u003c/a\u003e, A Simple Interface to the US EPA Air Quality System Data Mart API. Submitted by \u003ca href=\"https://github.com/mccroweyclinton-EPA\"\u003emccroweyclinton-EPA\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ropensci/software-review/issues/743\"\u003eRAMEN\u003c/a\u003e, RAMEN: Regional Association of Methylome variability with the Exposome and geNome. Submitted by \u003ca href=\"https://erick-navarrodelgado.netlify.app\"\u003eErick Navarro-Delgado\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ropensci/software-review/issues/741\"\u003elogolink\u003c/a\u003e, An Interface for Running NetLogo Simulations. Submitted by \u003ca href=\"https://danielvartan.com\"\u003eDaniel Vartanian\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ropensci/software-review/issues/718\"\u003ercrisp\u003c/a\u003e, Automate the Delineation of Urban River Spaces. Submitted by \u003ca href=\"https://github.com/cforgaci\"\u003eClaudiu Forgaci\u003c/a\u003e. (Stats).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ropensci/software-review/issues/615\"\u003egalamm\u003c/a\u003e, Generalized Additive Latent and Mixed Models. Submitted by \u003ca href=\"https://osorensen.no\"\u003eØystein Sørensen\u003c/a\u003e. (Stats).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTwo at \u003ca href=\"https://github.com/ropensci/software-review/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%223/reviewer(s)-assigned%22\"\u003e\u0026lsquo;3/reviewer(s)-assigned\u0026rsquo;\u003c/a\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ropensci/software-review/issues/765\"\u003eciecl\u003c/a\u003e, International Classification of Diseases ICD-10/ICD-11 for Chile. Submitted by \u003ca href=\"https://github.com/Rodotasso\"\u003eRodolfo Tasso\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ropensci/software-review/issues/763\"\u003eEpiStrainDynamics\u003c/a\u003e, Infer temporal trends of multiple pathogens. Submitted by \u003ca href=\"https://www.smwindecker.com\"\u003eSaras Windecker\u003c/a\u003e. (Stats).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTwo at \u003ca href=\"https://github.com/ropensci/software-review/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%222/seeking-reviewer(s)%22\"\u003e\u0026lsquo;2/seeking-reviewer(s)\u0026rsquo;\u003c/a\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ropensci/software-review/issues/740\"\u003efcmconfr\u003c/a\u003e, Fuzzy Cognitive Map Analysis in R. Submitted by \u003ca href=\"https://github.com/bhroston\"\u003ebenroston\u003c/a\u003e. (Stats).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ropensci/software-review/issues/717\"\u003ecoevolve\u003c/a\u003e, Fit Bayesian Generalized Dynamic Phylogenetic Models using Stan. Submitted by \u003ca href=\"https://scottclaessens.github.io/\"\u003eScott Claessens\u003c/a\u003e. (Stats).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThree at \u003ca href=\"https://github.com/ropensci/software-review/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%221/editor-checks%22\"\u003e\u0026lsquo;1/editor-checks\u0026rsquo;\u003c/a\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ropensci/software-review/issues/775\"\u003egrumpy\u003c/a\u003e, Read NumPy .npy and .npz Files. Submitted by \u003ca href=\"https://hugogruson.fr/\"\u003eHugo Gruson\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ropensci/software-review/issues/752\"\u003emetasurvey\u003c/a\u003e, Reproducible Survey Data Processing with Step Pipelines. Submitted by \u003ca href=\"https://github.com/mauroloprete\"\u003eMauro Loprete\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ropensci/software-review/issues/725\"\u003eLBDiscoverAnalysis\u003c/a\u003e, Co-occurrence Discovery Models and Visualization for Biomedical LBD. Submitted by \u003ca href=\"https://github.com/chaoliu-cl\"\u003eChao Liu\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFind out more about \u003ca href=\"/software-review\"\u003eSoftware Peer Review\u003c/a\u003e and how to get involved.\u003c/p\u003e\n\u003ch2 id=\"on-the-blog\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#on-the-blog\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nOn the blog\n\u003c/h2\u003e\u003c!-- Do not forget to rebase your branch! --\u003e\n\u003ch3 id=\"software-review\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#software-review\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nSoftware Review\n\u003c/h3\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"/blog/2026/06/11/neweditorsQ22026\"\u003eRonny Hernandez Mora, Joel Nitta, and Nick Tierney Join rOpenSci Software Peer Review Editorial Team\u003c/a\u003e by Ronny Hernandez Mora, Joel Nitta, Nicholas Tierney, and Yanina Bellini Saibene. Introducing three new editors for rOpenSci software peer review.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"/blog/2026/06/19/maintainers-month\"\u003eCelebrating Our Maintainers during Maintainers Month\u003c/a\u003e by Yanina Bellini Saibene. A Look Back at our Maintainer Month 2026 social media campaign.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"/blog/2026/06/01/goodpractice\"\u003eOur goodpractice Package Has New Superpowers\u003c/a\u003e by Mark Padgham and Athanasia Mo Mowinckel. We have worked hard over the past few months on major upgrades to our goodpractice package. Checks are now grouped into categories, making it easier to control which checks are run. The biggest change has been adding over 100 new checks, from new lints to many new CRAN checks.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"/blog/2026/06/02/ftc-guide\"\u003eA New Guide: Organizing Events for First-time Contributors\u003c/a\u003e by Steffi LaZerte and Yanina Bellini Saibene. We introduce our Guide book for organizing events to support first-time contributors to FOSS.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"/blog/2026/06/07/r-universe-updates\"\u003eFive recent R-universe features you might have missed\u003c/a\u003e by Jeroen Ooms. In this technote we look at a few recent additions that make R-universe a little nicer, faster, or more convenient to use.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"/blog/2026/06/09/champions-2026\"\u003eEleven Latin American Voices for Open Science: The New Cohort of Champions rOpenSci 2026\u003c/a\u003e by Bastián Olea Herrera, Denisse Fierro Arcos, Durga Valentina Linares Herrera, Evelia Lorena Coss Navarrete, Gladys Choque Ulloa, José Daniel Conejeros, Linda Cabrera Orellana, María Florencia Tames, Marina Cecilia Cock, Patricia A. Loto, Estefania Torrejón, and Yanina Bellini Saibene. Introducing 11 new rOpenSci Champions. Other languages: \u003ca href='/es/blog/2026/06/09/champions-2026' lang='es'\u003eOnce voces latinoamericanas para la ciencia abierta: la nueva cohorte de Campeon(a|e)s rOpenSci 2026 (es)\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"calls-for-contributions\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#calls-for-contributions\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nCalls for contributions\n\u003c/h2\u003e\u003ch3 id=\"calls-for-maintainers\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#calls-for-maintainers\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nCalls for maintainers\n\u003c/h3\u003e\u003cp\u003eIf you\u0026rsquo;re interested in maintaining any of the R packages below, you might enjoy reading our blog post \u003ca href=\"/blog/2023/02/07/what-does-it-mean-to-maintain-a-package/\"\u003eWhat Does It Mean to Maintain a Package?\u003c/a\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.ropensci.org/charlatan\"\u003echarlatan\u003c/a\u003e, create fake data in R. \u003ca href=\"https://github.com/ropensci/charlatan/issues/150\"\u003eIssue for volunteering\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://docs.ropensci.org/hddtools\"\u003ehddtools\u003c/a\u003e, Tools to discover hydrological data, accessing catalogues and databases from various data providers. \u003ca href=\"https://github.com/ropensci/hddtools/issues/36\"\u003eIssue for volunteering\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"calls-for-contributions-1\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#calls-for-contributions-1\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nCalls for contributions\n\u003c/h3\u003e\u003cp\u003eRefer to our \u003ca href=\"/help-wanted/\"\u003ehelp wanted page\u003c/a\u003e \u0026ndash; before opening a PR, we recommend asking in the issue whether help is still needed.\u003c/p\u003e\n\u003ch2 id=\"package-development-corner\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#package-development-corner\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nPackage development corner\n\u003c/h2\u003e\u003cp\u003eSome useful information for R package developers. \u0026#x1f440;\u003c/p\u003e\n\u003ch3 id=\"goodpractices-new-features-and-behind-the-scene-notes\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#goodpractices-new-features-and-behind-the-scene-notes\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\ngoodpractice\u0026rsquo;s new features and behind-the-scene notes\n\u003c/h3\u003e\u003cp\u003eSoftware Review Lead Mark Padgham and long-time community member \u003ca href=\"/author/athanasia-mo-mowinckel/\"\u003eAthanasia Mo Mowinckel\u003c/a\u003e have written a blog post particularly relevant to package developers for two reasons:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLearn how goodpractice, which helps make your package better, has improved.\u003c/li\u003e\n\u003cli\u003eRead how Mark and Mo collaborated, including their use of LLMs in the development process.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"dumb-ways-for-an-open-source-project-to-die\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#dumb-ways-for-an-open-source-project-to-die\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nDumb Ways for an Open Source Project to Die\n\u003c/h3\u003e\u003cp\u003eIf you\u0026rsquo;re interested in open-source software projects\u0026rsquo; survivability, you\u0026rsquo;ll enjoy this \u003ca href=\"https://nesbitt.io/2026/05/19/dumb-ways-for-an-open-source-project-to-die.html\"\u003ewrite-up by Andrew Nesbitt\u003c/a\u003e shared by Yanina Bellini Saibene.\u003c/p\u003e\n\u003ch3 id=\"refactoring-with-jarl-unused-functions-and-more\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#refactoring-with-jarl-unused-functions-and-more\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nRefactoring with Jarl: unused functions and more\n\u003c/h3\u003e\u003cp\u003eHannah Frick and Maëlle Salmon wrote \u003ca href=\"https://blog.r-hub.io/2026/06/02/jarl/\"\u003e\u0026ldquo;Refactoring with Jarl: a coffee chat\u0026rdquo;\u003c/a\u003e on the R-hub blog.\u003c/p\u003e\n\u003ch3 id=\"a-strategy-for-recovering-data-on-request-interruption\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#a-strategy-for-recovering-data-on-request-interruption\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nA strategy for recovering data on request interruption\n\u003c/h3\u003e\u003cp\u003eGábor Csárdi summarized \u003ca href=\"https://gaborcsardi.org/2026/gh-1-6-0-recover-from-interruption/\"\u003erecent changes to the gh package\u003c/a\u003e. Especially interesting is his strategy for \u003ca href=\"https://gaborcsardi.org/2026/gh-1-6-0-recover-from-interruption/#Interrupts\"\u003einterruptions\u003c/a\u003e: the user starts a long query then interrupts the process\u0026hellip; how to not lose the data that\u0026rsquo;s already been received? The solution is to make it accessible through \u003ca href=\"https://rlang.r-lib.org/reference/last_error.html\"\u003e\u003ccode\u003erlang::last_error()\u003c/code\u003e\u003c/a\u003e. More details in the \u003ca href=\"https://gaborcsardi.org/2026/gh-1-6-0-recover-from-interruption/#Interrupts\"\u003epost\u003c/a\u003e.\u003c/p\u003e\n\u003ch3 id=\"curl-summer-of-bliss\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#curl-summer-of-bliss\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\ncurl summer of bliss\n\u003c/h3\u003e\u003cp\u003eThe curl project \u003ca href=\"https://daniel.haxx.se/blog/2026/06/15/curl-summer-of-bliss/\"\u003eannounced\u003c/a\u003e that it will not accept any vulnerability report during the month of July this year. This is both the opportunity for maintainers to take a break, and to advertise paid curl support, in which there will be no interruption of service.\u003c/p\u003e\n\u003ch3 id=\"to-conventionally-commit-or-not\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#to-conventionally-commit-or-not\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nTo conventionally commit or not\n\u003c/h3\u003e\u003cp\u003eSumner Evans wrote an interesting post \u003ca href=\"https://sumnerevans.com/posts/software-engineering/stop-using-conventional-commits/\"\u003ecriticizing the conventional commits convention\u003c/a\u003e (starting commits with e.g. \u003ccode\u003efix:\u003c/code\u003e for bug fixes, \u003ccode\u003efeat:\u003c/code\u003e for new features, etc).\u003c/p\u003e\n\u003ch3 id=\"more-than-gitignore\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#more-than-gitignore\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nMore than .gitignore\n\u003c/h3\u003e\u003cp\u003eNelson Figueroa wrote a useful \u003ca href=\"https://nelson.cloud/.gitignore-isnt-the-only-way-to-ignore-files-in-git/\"\u003eoverview\u003c/a\u003e of the different ways to make Git ignore some files.\u003c/p\u003e\n\u003ch3 id=\"how-to-work-with-llms-without-losing-your-skills\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#how-to-work-with-llms-without-losing-your-skills\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nHow to work with LLMs without losing your skills\n\u003c/h3\u003e\u003cp\u003eVicki Boykis wrote an insightful post \u003ca href=\"https://vickiboykis.com/2026/05/28/we-should-be-more-tired-than-the-model/\"\u003e\u0026ldquo;We should be more tired than the model\u0026rdquo;\u003c/a\u003e including pratical tips such as \u0026ldquo;Starting to use the agent only after I\u0026rsquo;ve spent 20 minutes on the problem\u0026rdquo; or \u0026ldquo;Discussing an agent\u0026rsquo;s proposed implementation with another person instead\u0026rdquo;.\u003c/p\u003e\n\u003ch2 id=\"last-words\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#last-words\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nLast words\n\u003c/h2\u003e\u003cp\u003eThanks for reading! If you want to get involved with rOpenSci, check out our \u003ca href=\"https://contributing.ropensci.org\"\u003eContributing Guide\u003c/a\u003e. This guide will help direct you to the right place, whether you want to make code contributions, non-code contributions, or contribute in other ways such as through sharing use cases. You can also support our work through \u003ca href=\"/donate\"\u003edonations\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eIf you haven\u0026rsquo;t subscribed to our newsletter yet, you can \u003ca href=\"/news/\"\u003edo so though our signup form\u003c/a\u003e. Until it\u0026rsquo;s time for our next newsletter, you can keep in touch with us through our \u003ca href=\"/\"\u003ewebsite\u003c/a\u003e, \u003ca href=\"https://hachyderm.io/@rOpenSci\"\u003eMastodon\u003c/a\u003e, or \u003ca href=\"https://www.linkedin.com/company/ropensci/\"\u003eLinkedIn\u003c/a\u003e. See you soon!\u003c/p\u003e\n","url":"https://ropensci.org/blog/2026/06/30/news-june-2026/","date_published":"2026-06-30T00:00:00+00:00"},{"id":"https://ropensci.org/blog/2026/06/19/maintainers-month/","title":"Celebrating Our Maintainers during Maintainers Month","content_text":"\u003cp\u003eMay was Open Source Software Maintainer Month.\nBehind every R package there is at least one person who responds to issues, reviews pull requests, keeps up with dependency changes, and makes sure everything still works.\nDuring Maintainer Month we wanted to celebrate rOpenSci\u0026rsquo;s package maintainer community.\u003c/p\u003e\n\u003ch2 id=\"the-social-media-campaign\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#the-social-media-campaign\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nThe social media campaign\n\u003c/h2\u003e\u003cp\u003eOne of our commitments to our community is to amplify the people who make it work. Social media is one of the ways we do that, so we thought Maintainer Month would be a great opportunity to highlight the people behind the packages through a social media campaign.\u003c/p\u003e\n\u003cp\u003eTo run this campaign, we first needed permission from our maintainers to feature them. In our annual maintainer survey, we asked whether they would be interested in being featured in a public spotlight, and many said yes.\u003c/p\u003e\n\u003cp\u003eWe also reached out to current and past Champions from our Champions Program, which trains and supports R developers from historically underrepresented groups in the open science community.\u003c/p\u003e\n\u003cp\u003eThe result was a month-long series of spotlights: one maintainer at a time, each card sharing who they are, where they come from, and what they maintain.\u003c/p\u003e\n\u003cfigure\u003e\u003cimg src=\"/blog/2026/06/19/maintainers-month/examples_post.png\"\n\t\t\talt=\"First post in Mastodon announcing the maintainer month campaign, Ronald M. Visser and Maëlle Salmon post on LinkedIn\"\u003e\n\u003c/figure\u003e\n\n\u003cp\u003eThis campaign brought together 37 maintainers from 15 countries, maintaining more than 50 packages that together serve thousands of researchers and data practitioners around the world.\u003c/p\u003e\n\u003cp\u003eThe diversity of this group reflects the diversity of the rOpenSci community: archaeologists, bioinformaticians, ecologists, economists, statisticians, sociologists, professors, PhD students, engineers and educators.\u003c/p\u003e\n\u003cp\u003eWe created 39 posts on our accounts on LinkedIn and Mastodon, which is bridge to BlueSky. All the posts were shared by other people and organizations and received comments from grateful users.\u003c/p\u003e\n\u003ch2 id=\"meet-all-37-maintainers\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#meet-all-37-maintainers\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nMeet all 37 maintainers\n\u003c/h2\u003e\u003cp\u003eHere is the full list of maintainers we celebrated in May.\u003c/p\u003e\n\u003cfigure\u003e\u003cimg src=\"/blog/2026/06/19/maintainers-month/Maintainermonth.png\"\n\t\t\talt=\"All 37 maintainers\u0026#39; profile pictures inside hex geometrics form\"\u003e\n\u003c/figure\u003e\n\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eAlex Koiter\u003c/strong\u003e 🇨🇦 maintains \u003ca href=\"https://docs.ropensci.org/mbquartR\"\u003e{mbquartR}\u003c/a\u003e, for working with Manitoba\u0026rsquo;s quarter-section land survey system in watershed and land management research.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eAndrea Gomez Vargas\u003c/strong\u003e 🇨🇴🇦🇷 maintains \u003ca href=\"https://soyandrea.github.io/arcenso/\"\u003e{ARcenso}\u003c/a\u003e, for accessing and analyzing Argentina\u0026rsquo;s national census data in R. Champions project.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eAustin Koontz\u003c/strong\u003e 🇺🇸 maintains \u003ca href=\"https://docs.ropensci.org/SymbiotaR2\"\u003e{SymbiotaR2}\u003c/a\u003e, an R interface to the Symbiota platform for accessing and managing biodiversity occurrence data from natural history collections.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eBilikisu Wunmi Olatunji\u003c/strong\u003e 🇳🇬 maintains \u003ca href=\"https://github.com/BWOlatunji/chartkickR\"\u003e{chartkickR}\u003c/a\u003e, an R wrapper for the Chartkick JavaScript library that makes it easy to create beautiful interactive charts and visualizations from R. Champions project.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eCarolina Pradier\u003c/strong\u003e 🇦🇷🇨🇦 maintains \u003ca href=\"https://docs.ropensci.org/eph\"\u003e{eph}\u003c/a\u003e, for downloading and analyzing microdata from Argentina\u0026rsquo;s Permanent Household Survey, supporting labour and socioeconomic research. Champions project.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDaniel Vartanian\u003c/strong\u003e 🇧🇷 maintains \u003ca href=\"https://docs.ropensci.org/mctq\"\u003e{mctq}\u003c/a\u003e, for processing data from the Munich Chronotype Questionnaire in sleep and chronobiology research.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eErick Navarro Delgado\u003c/strong\u003e 🇨🇦🇲🇽 maintains \u003ca href=\"https://ericknavarrod.github.io/RAMEN/\"\u003e{RAMEN}\u003c/a\u003e, for identifying associations between environmental exposures and molecular outcomes in multi-omics research.\nChampions project.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eErika Siregar\u003c/strong\u003e 🇮🇩🇬🇧 maintains \u003ca href=\"https://erikaris.github.io/rplaywright/\"\u003e{rplaywright}\u003c/a\u003e, an R interface to Microsoft Playwright for browser automation and web testing. Champions project.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eEzekiel Adebayo Ogundepo\u003c/strong\u003e 🇳🇬 maintains \u003ca href=\"https://gbganalyst.github.io/bulkreadr/\"\u003e{bulkreadr}\u003c/a\u003e, for simplifying the bulk import of multiple files into R across a range of formats. Champions project.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFrancesca Palmeira\u003c/strong\u003e 🇧🇷 maintains \u003ca href=\"https://fblpalmeira.github.io/pcir/\"\u003e{pcir}\u003c/a\u003e, for modeling species interaction data and food web structures in conservation research. Champions project.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eGuadalupe Pascal\u003c/strong\u003e 🇦🇷 maintains \u003ca href=\"https://docs.ropensci.org/matildaNLP\"\u003e{matildaNLP}\u003c/a\u003e, a package with a specialized corpus of Spanish texts from the Matilda initiative to support research on gender-aware language processing and policy. Champions project.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHaydée Svab\u003c/strong\u003e 🇧🇷 maintains \u003ca href=\"https://hsvab.github.io/odbr/\"\u003e{odbr}\u003c/a\u003e, for accessing open data urban mobility from a series of cities in Brazil. Champions project.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eJeroen Ooms\u003c/strong\u003e 🇳🇱 maintains \u003ca href=\"https://docs.ropensci.org/magick\"\u003e{magick}\u003c/a\u003e, \u003ca href=\"https://docs.ropensci.org/pdftools\"\u003e{pdftools}\u003c/a\u003e, and \u003ca href=\"https://docs.ropensci.org/gert\"\u003e{gert}\u003c/a\u003e, packages for image processing, PDF manipulation, and Git operations in R.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eJonathan Keane\u003c/strong\u003e maintains \u003ca href=\"https://docs.ropensci.org/dittodb\"\u003e{dittodb}\u003c/a\u003e, which makes testing database-backed code easy by recording and replaying real database interactions so tests can run without a live connection.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eJulia Silge\u003c/strong\u003e 🇺🇸 maintains \u003ca href=\"https://docs.ropensci.org/qualtRics\"\u003e{qualtRics}\u003c/a\u003e, for importing survey data from the Qualtrics platform directly into R.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eKarl Broman\u003c/strong\u003e 🇺🇸 maintains \u003ca href=\"https://docs.ropensci.org/chromer\"\u003e{chromer}\u003c/a\u003e and \u003ca href=\"https://docs.ropensci.org/aRxiv\"\u003e{aRxiv}\u003c/a\u003e, for accessing chromosome data and the arXiv preprint server.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMaëlle Salmon\u003c/strong\u003e 🇫🇷 maintains \u003ca href=\"https://docs.ropensci.org/saperlipopette\"\u003e{saperlipopette}\u003c/a\u003e, \u003ca href=\"https://docs.ropensci.org/babelquarto\"\u003e{babelquarto}\u003c/a\u003e, and \u003ca href=\"https://docs.ropensci.org/babeldown\"\u003e{babeldown}\u003c/a\u003e, tools for learn how to use git, create multilingual Quarto documents, and support translations workflows.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMarcelo S. Perlin\u003c/strong\u003e 🇧🇷 maintains \u003ca href=\"https://docs.ropensci.org/yfR\"\u003e{yfR}\u003c/a\u003e, for importing financial data from Yahoo Finance into R.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMarcos Prunello\u003c/strong\u003e 🇦🇷 maintains \u003ca href=\"https://docs.ropensci.org/karel/\"\u003e{karel}\u003c/a\u003e, a package that brings the Karel the Robot programming environment to R, designed to teach programming concepts and computational thinking to beginners. Champions project.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMark Padgham\u003c/strong\u003e 🇩🇪 maintains \u003ca href=\"https://docs.ropensci.org/pkgcheck\"\u003e{pkgcheck}\u003c/a\u003e, which automates software checks for packages submitted to rOpenSci peer review.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMauro Loprete\u003c/strong\u003e 🇺🇾 maintains \u003ca href=\"https://metasurveyr.github.io/metasurvey/\"\u003e{metasurvey}\u003c/a\u003e, for processing and analyzing household survey microdata using a metadata-driven approach. Champions project.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMicha Silver\u003c/strong\u003e 🇮🇱 maintains \u003ca href=\"https://docs.ropensci.org/rOPTRAM\"\u003e{rOPTRAM}\u003c/a\u003e, implementing the OPtical TRApezoid Model for estimating soil moisture from satellite imagery.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMoritz Hennicke\u003c/strong\u003e 🇧🇪 maintains \u003ca href=\"https://docs.ropensci.org/nuts\"\u003e{nuts}\u003c/a\u003e, for working with the EU\u0026rsquo;s Nomenclature of Territorial Units for Statistics, useful in regional economics and policy research.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePao Corrales\u003c/strong\u003e 🇦🇷🇦🇺 maintains \u003ca href=\"https://docs.ropensci.org/agroclimatico\"\u003e{agroclimatico}\u003c/a\u003e, for calculating agroclimatic indices and bioclimatic variables for agricultural and environmental research. Champions project.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePeter Desmet\u003c/strong\u003e 🇧🇪 maintains \u003ca href=\"https://docs.ropensci.org/frictionless\"\u003e{frictionless}\u003c/a\u003e, for working with open data standards and publishing datasets.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePhilippe Massicotte\u003c/strong\u003e 🇨🇦 maintains \u003ca href=\"https://docs.ropensci.org/rnaturalearth\"\u003e{rnaturalearth}\u003c/a\u003e, \u003ca href=\"https://docs.ropensci.org/rnaturalearthdata\"\u003e{rnaturalearthdata}\u003c/a\u003e, and \u003ca href=\"https://docs.ropensci.org/gitignore\"\u003e{gitignore}\u003c/a\u003e, for working with natural earth map data and project utilities.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSam Albers\u003c/strong\u003e 🇨🇦 maintains \u003ca href=\"https://docs.ropensci.org/tidyhydat\"\u003e{tidyhydat}\u003c/a\u003e, for accessing Canadian hydrometric data in a tidy format.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSteffi Lazerte\u003c/strong\u003e 🇨🇦 maintains \u003ca href=\"https://docs.ropensci.org/weathercan\"\u003e{weathercan}\u003c/a\u003e, for downloading Canadian weather data directly from Environment and Climate Change Canada.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eTad Dallas\u003c/strong\u003e 🇺🇸 maintains \u003ca href=\"https://docs.ropensci.org/helminthR\"\u003e{helminthR}\u003c/a\u003e, for accessing the London Natural History Museum\u0026rsquo;s host-parasite database.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRonald M. Visser\u003c/strong\u003e 🇳🇱 maintains \u003ca href=\"https://docs.ropensci.org/dendroNetwork\"\u003e{dendroNetwork}\u003c/a\u003e, for creating and analyzing networks in dendrochronological research, combining archaeology and data science.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSehrish Kanwal\u003c/strong\u003e 🇦🇺 maintains \u003ca href=\"https://umccr.github.io/RNAsum/\"\u003e{RNAsum}\u003c/a\u003e, for summarising and visualising RNA-seq data analysis results in clinical cancer genomics workflows. Champions project.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eVictor Ordu\u003c/strong\u003e 🇳🇬🇺🇸 maintains \u003ca href=\"https://docs.ropensci.org/naijR\"\u003e{naijR}\u003c/a\u003e, a package of tools and utilities for working with data and maps about Nigeria. Champions project.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWill Gearty\u003c/strong\u003e 🇺🇸 maintains \u003ca href=\"https://docs.ropensci.org/rredlist\"\u003e{rredlist}\u003c/a\u003e, for accessing IUCN Red List data on threatened species.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWill Landau\u003c/strong\u003e 🇺🇸 maintains \u003ca href=\"https://docs.ropensci.org/targets\"\u003e{targets}\u003c/a\u003e, a pipeline toolkit that makes data analysis in R faster and fully reproducible by tracking dependencies and only re-running what has changed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eWill Pearse\u003c/strong\u003e 🇬🇧 maintains \u003ca href=\"https://docs.ropensci.org/suppdata\"\u003e{suppdata}\u003c/a\u003e, for downloading supplementary data files directly from published scientific articles across major journals.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eYi-Chin Sunny Tseng\u003c/strong\u003e 🇨🇦🇹🇼 maintains \u003ca href=\"https://sunnytseng.github.io/bbsTaiwan/\"\u003e{bbsTaiwan}\u003c/a\u003e, for accessing and analyzing data from Taiwan\u0026rsquo;s Breeding Bird Survey. Champions project.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eZhian Kamvar\u003c/strong\u003e 🇺🇸 maintains \u003ca href=\"https://docs.ropensci.org/tinkr\"\u003e{tinkr}\u003c/a\u003e, for reading and writing Markdown documents in R as XML.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"thank-you-maintainers\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#thank-you-maintainers\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nThank you Maintainers!\n\u003c/h2\u003e\u003cp\u003eMaintaining open source software is an act of generosity. It takes time that could be spent elsewhere, and it often goes unacknowledged.\nEvery bug fix, every answered issue, every new feature and update is a small gift to the people who depend on that package.\u003c/p\u003e\n\u003cp\u003eWe are grateful to all the rOpenSci maintainers.\nIf you use any of these packages, consider saying \u003cem\u003ethank you\u003c/em\u003e.\nYou can also let us know how you use these packages by \u003ca href=\"https://github.com/orgs/ropensci/discussions\"\u003esharing your use case\u003c/a\u003e, that we will \u003ca href=\"/usecases/\"\u003efeature in our website\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWant to learn more? Explore the \u003ca href=\"/packages\"\u003erOpenSci\u0026rsquo;s packages\u003c/a\u003e in our website and check all the other \u003ca href=\"https://r-universe.dev/search\"\u003epackages universes\u003c/a\u003e in R-Universe.\u003c/p\u003e\n","url":"https://ropensci.org/blog/2026/06/19/maintainers-month/","date_published":"2026-06-19T00:00:00+00:00"},{"id":"https://ropensci.org/blog/2026/06/11/neweditorsq22026/","title":"Ronny Hernandez Mora, Joel Nitta, and Nick Tierney Join rOpenSci Software Peer Review Editorial Team","content_text":"\u003cp\u003eWhat makes \u003ca href=\"/software-review/\"\u003erOpenSci\u0026rsquo;s software peer review\u003c/a\u003e work is people who care deeply about the quality and usability of scientific software, and who give their time and expertise to help others build it better. Today, we\u0026rsquo;re pleased to announce three new members of our editorial team.\u003c/p\u003e\n\u003cp\u003eWe welcome \u003cem\u003eJoel H. Nitta\u003c/em\u003e, and \u003cem\u003eNicholas Tierney\u003c/em\u003e as new editors, and formally introduce \u003cem\u003eRonny Hernández Mora\u003c/em\u003e, who joined the editorial team in August 2025. Each brings a distinct perspective shaped by their work, their communities, and their experience with open-source R development. Together, they strengthen our capacity to serve the growing number of package authors who submit their work for review, and to uphold the collaborative, friendly and transparent standards that rOpenSci software peer review is known for.\u003c/p\u003e\n\u003ch2 id=\"ronny-hernández-mora\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#ronny-hern%c3%a1ndez-mora\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nRonny Hernández Mora\n\u003c/h2\u003e\u003cdiv class=\"float-left\"\u003e\u003cfigure class=\"m-0\"\u003e\u003cimg src=\"/img/team/ronny-hernandez-mora.png\"\n         alt=\"Headshot of Ronny\"ZgotmplZ\n          \n ZgotmplZ\n          \nZgotmplZ\n \n         style=\"  object-fit: cover; object-position: center;  height: 250px;  width: 200; margin-right: 15px\"\n    /\u003e \n                \u003cp\u003e\n                  \u003cp\u003eRonny is a PhD student at the University of Alberta and a research software developer with a background in data analysis and remote sensing. His current research explores how perception-driven drone systems can support detection, monitoring, and decision making in real world settings.\u003c/p\u003e\n\u003cp\u003eBefore starting his PhD, Ronny worked as a data developer at \u003ca href=\"https://www.ixpantia.com/en/\"\u003eixpantia\u003c/a\u003e, developing data tools, automation pipelines, APIs, and production analytical applications for organizations across Latin America and the United States. Alongside his PhD, he works with \u003ca href=\"https://openscapes.org/\"\u003eOpenscapes\u003c/a\u003e and contributes to opensource communities through teaching, mentorship, talks, and collaborative software projects.\u003c/p\u003e\n\n                \u003c/p\u003e\n                \u003c/figure\u003e\n              \u003c/div\u003e\n\u003cdiv style=\"clear: both;\"\u003e\u003c/div\u003e\n\u003cp\u003eRonny on \u003ca href=\"https://github.com/ronnyhdez\"\u003eGitHub\u003c/a\u003e, \u003ca href=\"https://ronnyale.com/\"\u003eWebsite\u003c/a\u003e.\u003c/p\u003e\n\u003cblockquote class='blockquote text-left'\u003e\n  \u003cp class=\"mb-0\"\u003e\u003cp\u003eI first heard about rOpenSci through a \u003ca href=\"https://www.datalatam.com/29/\"\u003eData Latam podcast episode\u003c/a\u003e, and from there I started following the organization and its work. Over time, I got to know people connected to the community, but it was not until 2024 that I became directly involved by volunteering as a package reviewer.\u003c/p\u003e\n\u003cp\u003eI have always liked the idea of building software collaboratively: creating tools that can be understood, reviewed, reused, and improved by others. That is one of the things I value most about rOpenSci: the way it combines technical review with openness, care, and constructive feedback. I am grateful for the opportunity to contribute as an editor and to support authors and reviewers through that process and continue learning through this community effort.\u003c/p\u003e\n\u003c/p\u003e\n   \u003cfooter class=\"blockquote-footer\"\u003eRonny \u003c/footer\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"joel-h-nitta\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#joel-h-nitta\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nJoel H. Nitta\n\u003c/h2\u003e\u003cdiv class=\"float-left\"\u003e\u003cfigure class=\"m-0\"\u003e\u003cimg src=\"/img/team/joel-nitta.png\"\n         alt=\"Headshot of Joel\"ZgotmplZ\n          \n ZgotmplZ\n          \nZgotmplZ\n \n         style=\"  object-fit: cover; object-position: center;  height: 250px;  width: 200; margin-right: 15px\"\n    /\u003e \n                \u003cp\u003e\n                  Joel is currently an associate professor at \u003ca href=\"https://www.las.chiba-u.jp/research/faculty/nitta.html\"\u003eChiba University\u003c/a\u003e, Japan, where he studies the evolution and ecology of ferns. Throughout his career as a botanist, he has also cultivated a keen interest in reproducible data analysis and has authored several R packages. Two of these are currently part of rOpenSci, \u003ca href=\"https://docs.ropensci.org/canaper/\"\u003ecanaper\u003c/a\u003e for spatial phylogenetic analysis, and \u003ca href=\"https://docs.ropensci.org/dwctaxon/\"\u003edwctaxon\u003c/a\u003e for validation and maintenance of taxonomic databases. He is also an official maintainer of two rOpenSci packages, \u003ca href=\"https://docs.ropensci.org/rgnparser/\"\u003ergnparser\u003c/a\u003e for parsing taxonomic names, and \u003ca href=\"https://docs.ropensci.org/restez/\"\u003erestez\u003c/a\u003e for querying the GenBank DNA database. Outside of rOpenSci, Joel is active in the \u003ca href=\"https://sites.google.com/view/biopackathon/\"\u003eBio\u0026quot;Pack\u0026quot;athon\u003c/a\u003e community in Japan, serves on the organizing committee of the \u003ca href=\"https://pteridogroup.github.io/\"\u003ePteridophyte Phylogeny Group\u003c/a\u003e, and is a certified instructor for \u003ca href=\"https://carpentries.org/community/instructors/\"\u003eThe Carpentries\u003c/a\u003e. Joel\u0026rsquo;s hobbies include various forms of being active outside (hiking, running, backpacking, botanizing, cycling), playing the euphonium, and tabletop games.\n                \u003c/p\u003e\n                \u003c/figure\u003e\n              \u003c/div\u003e\n\u003cdiv style=\"clear: both;\"\u003e\u003c/div\u003e\n\u003cp\u003eJoel on \u003ca href=\"https://github.com/joelnitta\"\u003eGitHub\u003c/a\u003e, \u003ca href=\"https://www.joelnitta.com\"\u003eWebsite\u003c/a\u003e.\u003c/p\u003e\n\u003cblockquote class='blockquote text-left'\u003e\n  \u003cp class=\"mb-0\"\u003erOpenSci has been incredibly important in my journey with data science and R. Above all, the extremely knowledgeable and helpful rOpenSci community has provided invaluable support as I transitioned from \u0026ldquo;R package user\u0026rdquo; to \u0026ldquo;R package developer\u0026rdquo;. While it may be possible to do this on your own, it is much more enjoyable and efficient when you are in the company of like-minded people. I especially appreciate this because I did not study computer science in undergrad and I am largely self-taught when it comes to R, having first learned it out of necessity during my graduate studies. I am very excited to officially join the editorial team and have the opportunity to give back to the organization that has supported me so much.\u003c/p\u003e\n   \u003cfooter class=\"blockquote-footer\"\u003eJoel \u003c/footer\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"nicholas-tierney\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#nicholas-tierney\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nNicholas Tierney\n\u003c/h2\u003e\u003cdiv class=\"float-left\"\u003e\u003cfigure class=\"m-0\"\u003e\u003cimg src=\"/img/team/nick-tierney.jpg\"\n         alt=\"Headshot of \"ZgotmplZ\n          \n ZgotmplZ\n          \nZgotmplZ\n \n         style=\"  object-fit: cover; object-position: center;  height: 250px;  width: 200; margin-right: 15px\"\n    /\u003e \n                \u003cp\u003e\n                  Nicholas (Nick) Tierney is a statistician, \u003ca href=\"https://researchsoftware.org/\"\u003eResearch Software Engineer\u003c/a\u003e, and freelance consultant with a PhD in Statistics who specialises in data analytics, R package development, and teaching. Previously, he worked with \u003ca href=\"https://www.thekids.org.au/contact-us/our-people/g/nick-golding/\"\u003eProfessor Nick Golding\u003c/a\u003e at \u003ca href=\"https://www.thekids.org.au/\"\u003eThe Kids Research Institute Australia\u003c/a\u003e and was a Research Fellow at Monash University with \u003ca href=\"https://www.dicook.org/\"\u003eProfessor Dianne Cook\u003c/a\u003e, where he developed tools for exploratory data analysis including \u003ca href=\"https://docs.ropensci.org/visdat/\"\u003evisdat\u003c/a\u003e, \u003ca href=\"https://naniar.njtierney.com/\"\u003enaniar\u003c/a\u003e, and \u003ca href=\"https://brolgar.njtierney.com/\"\u003ebrolgar\u003c/a\u003e. Nick actively writes about R related projects at his blog, \u003ca href=\"https://www.njtierney.com/\"\u003e\u0026ldquo;credibly curious\u0026rdquo;\u003c/a\u003e. When not coding, Nick enjoys outdoor adventures and hiked the entire Pacific Crest Trail in 2023, documenting his journey at \u003ca href=\"https://njt.micro.blog/\"\u003enjt.micro.blog\u003c/a\u003e.\n                \u003c/p\u003e\n                \u003c/figure\u003e\n              \u003c/div\u003e\n\u003cdiv style=\"clear: both;\"\u003e\u003c/div\u003e\n\u003cp\u003eNick on \u003ca href=\"https://github.com/njtierney\"\u003eGitHub\u003c/a\u003e, \u003ca href=\"https://www.njtierney.com/\"\u003eWebsite\u003c/a\u003e.\u003c/p\u003e\n\u003cblockquote class='blockquote text-left'\u003e\n  \u003cp class=\"mb-0\"\u003e\u003cp\u003eI remember seeing rOpenSci online in 2014, at their first \u003ca href=\"https://unconf14.ropensci.org/\"\u003erOpenSci hackathon\u003c/a\u003e in San Francisco, USA. I was inspired by not just the projects they worked on, but the collective of people who were kind and generous as much as they were brilliant. I helped run an offshoot of the rOpenSci Unconf in Australia, which ran in \u003ca href=\"https://auunconf.ropensci.org/\"\u003e2016\u003c/a\u003e, \u003ca href=\"https://ozunconf17.ropensci.org/\"\u003e2017\u003c/a\u003e, \u003ca href=\"https://ozunconf18.ropensci.org/\"\u003e2018\u003c/a\u003e, and \u003ca href=\"https://ozunconf19.ropensci.org/\"\u003e2019\u003c/a\u003e. I received amazing mentorship and support from Karthik Ram and Stefanie Butland in learning how to run these unconferences. I think these have had a lasting impact on connecting people from Australia and New Zealand.\u003c/p\u003e\n\u003cp\u003eI had my R package, \u003ca href=\"https://docs.ropensci.org/visdat/\"\u003evisdat\u003c/a\u003e, reviewed by rOpenSci in 2017, and this experience was formative to my understanding of software review, and greatly improved my own day to day practice. In 2024, with \u003ca href=\"https://github.com/Aariq\"\u003eEric Scott\u003c/a\u003e, and \u003ca href=\"https://github.com/brownag\"\u003eAndrew Brown\u003c/a\u003e, we submitted the \u003ca href=\"https://github.com/ropensci/geotargets\"\u003egeotargets\u003c/a\u003e package to rOpenSci.\u003c/p\u003e\n\u003cp\u003erOpenSci has always been at the forefront of building a community of practice, and their model of peer review is a gold standard. Science would be better if more journals practised such transparency and kindness. It is an enormous honour to be able to give back to a community that has been so formative in my career and my life.\u003c/p\u003e\n\u003c/p\u003e\n   \u003cfooter class=\"blockquote-footer\"\u003eNick \u003c/footer\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"about-the-software-peer-review-program\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#about-the-software-peer-review-program\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nAbout the Software Peer Review Program\n\u003c/h2\u003e\u003cp\u003erOpenSci\u0026rsquo;s software peer review program brings together volunteers to collaboratively review scientific and statistical software according to transparent, constructive, and open standards.\nWe have two different type of review: one for \u003ca href=\"https://devguide.ropensci.org/\"\u003egeneral research software packages\u003c/a\u003e and another for \u003ca href=\"https://stats-devguide.ropensci.org\"\u003epackage that implement statistical methods\u003c/a\u003e.\nEditors like Ronny, Joel, and Nick are central to that process: they handle initial submission checks, identify and coordinate reviewers, and guide authors through the review until their package is ready.\u003c/p\u003e\n\u003ch2 id=\"get-involved\"\u003e\n\n\u003ca class=\"anchor d-print-none\" href=\"#get-involved\"\u003e\n  \u003csmall\u003e\u0026#x1F517;\u003c/small\u003e\n\u003c/a\u003e\n\nGet Involved\n\u003c/h2\u003e\u003cp\u003eThinking about submitting a package? Start here:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/software-review/\"\u003erOpenSci Software Peer Review\u003c/a\u003e: scope, process, and guidelines;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ropensci/software-review/issues\"\u003erOpenSci Packages: Development, Maintenance, and Peer Review\u003c/a\u003e: the full guide for package authors;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://stats-devguide.ropensci.org\"\u003erOpenSci Statistical Software Peer Review\u003c/a\u003e: the full guide for statistical software submissions;\u003c/li\u003e\n\u003cli\u003ePublic \u003ca href=\"https://github.com/ropensci/software-review/issues\"\u003esoftware review threads on GitHub\u003c/a\u003e: see software peer review in action.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWould you like to contribute as a reviewer? We\u0026rsquo;d love to have you. Fill out the \u003ca href=\"https://airtable.com/app8dssb6a7PG6Vwj/shrnfDI2S9uuyxtDw\"\u003erOpenSci Reviewer Sign-Up Form\u003c/a\u003e and we\u0026rsquo;ll match you with packages that fit your expertise.\u003c/p\u003e\n\u003cp\u003eA warm welcome to \u003cstrong\u003eRonny, Joel, and Nick\u003c/strong\u003e! We\u0026rsquo;re very glad to have you with us.\u003c/p\u003e\n","url":"https://ropensci.org/blog/2026/06/11/neweditorsq22026/","date_published":"2026-06-11T00:00:00+00:00"}]}