Moderators

A moderator is a volunteer gatekeeper who manages contributions and discussions from contributors and users. Moderators are vital to the health and success of R-multiverse: they help the R community understand how to use R-multiverse, they ensure new package contributions are reviewed in a timely manner, they maintain the integrity of the R-multiverse package ecosystem. If you would like to help improve R-multiverse, please consider becoming a moderator. This page explains the how to become a moderator and the scope of the moderator role.

Joining

This section describes the process to become a moderator.

Prerequisites

Moderators must be:

  1. Proficient in R package development.
  2. Proficient in the English language.
  3. Able to manage content on GitHub such as repositories, pull requests, issues, and discussions.
  4. Prepared to facilitate the process to contribute packages to R-multiverse.
  5. Prepared to facilitate discussions and answer questions on the r-multiverse/help issue and discussion forums.
  6. Familiar with all R-multiverse policies.
  7. Prepared to assist with the enforcement of R-multiverse policies (see the “Policy Enforcement” section below).

Selection

Administrators are responsible for selecting moderators. Beyond the prerequisites above, administrators choose moderators based on trust. A moderator should have a positive, strong, visible, verifiable presence in the R community. If you would like to be a moderator, please help R-multiverse stakeholders understand who you are and what you work on. There are countless ways to grow your public reputation, and each individual moderator has their own unique type of impact.

Here is just a small list of examples:

Volunteering

If you would like to volunteer as a moderator, please fill out the email template below and send it to [email protected] with the subject line “Joining as Moderator”. Each occurrence of ___ in the template below is a placeholder for a response from you. All the other text can remain exactly as shown below, with no modification.

To the R-multiverse Administrators:

I would like to join R-multiverse as a moderator. Please find my responses below.

* Full name: ___
* Pronouns (examples: they/them, she/her, he/him): ___
* Professional affiliation, if applicable: ___
* GitHub user name: ___
* Links to R packages I have authored or contributed to, if any: ___
* Links that point to my online presence (for example, personal websites, social media profile pages, project websites, Shiny apps, presentations, and/or software reviews (e.g. for rOpenSci or the Journal of Open Source Software)): ___
* Other ways, if any, that I am involved in the R community: ___
* Number of years, if any, that I have developed or contributed to R packages: ___
* Number of years, if any, that I have been involved in the R community: ___
* Areas of professional subject matter expertise (or example: statistics, databases, ecology, genomics, clinical trials, etc.): ___
* Number of hours per month I will commit to reviewing contributed packages (any number is okay): ___
* Number of hours per month I will commit to moderating issues and discussions at https://github.com/r-multiverse/help: ___

Onboarding

If you are selected as a moderator and you agree to join, please work with an administrator to complete the onboarding process:

  1. Please open a new issue of type “Moderator onboarding” at https://github.com/r-multiverse/help/issues to track the onboarding process.
  2. Please submit a pull request the website repository to add yourself to the moderator section on the team page. Please include your full name, a description, your GitHub profile photo if available, and your professional affiliation if applicable. An administrator will review and merge the pull request.
  3. Next, an administrator will add you to the R-multiverse moderator GitHub team. This GitHub team has maintainer access to https://github.com/r-multiverse/contributions, triage access to https://github.com/r-multiverse/help and https://github.com/r-multiverse/topics, and read access to https://github.com/r-multiverse/moderation.

Offboarding

If you no longer wish to serve as a moderator, please inform an administrator by posting a new issue of type “Moderator offboarding” at https://github.com/r-multiverse/help. The administrator will then remove you from the R-multiverse moderator GitHub team and submit a pull request to transfer you from the moderator section to the alumni section on the team page of the website.

Scope

This section explains the privileges and responsibilities of moderators. All these privileges and responsibilities are also shared with the administrators. If you have a question, please post a discussion to https://github.com/r-multiverse/help/discussions or confidentially reach out to one of the current administrators.

Reviewing Contributions

Moderators review R package contributions to R-multiverse. The contribution process is described on the website and is governed by the official R-multiverse review policy.

The role of a moderator is to read contributions at https://github.com/r-multiverse/contributions/pulls, merge the pull requests that comply with R-multiverse official policies, and either close the pull request (without merging) or ask for changes in non-compliant cases.

As a moderator, you may optionally restrict your review to packages in your area of expertise. Simply search contributions for relevant keywords, including R-multiverse topics.

Maintaining Contributions

Moderators stay involved and engaged even after contributed packages are accepted. For example, a community member may report name conflicts between R-multiverse and CRAN. In that case, a moderator should contact the maintainers of the respective packages and work together toward a solution which is agreeable to the maintainers and which ensures the compatibility between R-multiverse and CRAN where possible. If you have trouble, please ask an administrator for help.

Removing Contributions

It may become necessary to remove packages from R-multiverse, either because of policy violations or at the request of the maintainers. A package exists at several levels in R-multiverse, and it is complicated to manually remove a package. If needed, please follow the steps below to remove a package.

Removing registration

To remove a package’s registration, edit the text in its contribution listing file: replace the URL/JSON with free-form text that explains why the package was removed. For example:

This package was removed from R-multiverse because the latest release had
"LICENSE: TBD" in the DESCRIPTION file, which is not a valid FOSS license.
R-multiverse requires a valid FOSS license to ensure the copyrights of the
authors are protected
(see https://r-multiverse.org/aup.html#intellectual-property and
https://r-multiverse.org/aup.html#enforcement-and-reporting-violations).

Removing from the Community repository

If a package’s registration is removed as above, then an automated process will remove the package from the Community repository without further intervention. Unless the package name itself violates R-multiverse policies, please do not delete the contribution listing file. 1

In an emergency that requires the immediate removal of a package, please also manually delete the package’s list entry in the Community packages.json file.

Removing from the Staging repository

It is important to keep the Staging repository as stable as possible in order to produce reliable Production snapshots. Please only remove a package from the Staging repository if it is absolutely necessary, i.e. a policy violation.

To remove a package from the Staging repository repository, please submit a pull request to delete the package’s list entry in the Staging packages.json file. An administrator will review and approve as soon as possible.

Removing from Production snapshots

Production snapshots are meant to be permanent, and packages are removed only if absolutely necessary, i.e. a policy violation. If a package must be removed from one or more Production snapshots, please contact an administrator, either through the moderator issue tracker or [email protected]. The administrator will manually remove the package from the Cloudflare R2 bucket that hosts the snapshots.

Topics

We encourage moderators to contribute R-multiverse topics about their fields of expertise. To do so, submit a pull request to add a topic listing file that describes the subject matter (example here). A scheduled job periodically rebuilds the website from the listings. Seasoned contributors will see your topic listed here and add searchable keywords to their contributions accordingly.

Discussions

Moderators help answer questions on the r-multiverse/help issue and discussion forums. Questions may ask about specific packages, package reviews, the workings of R-multiverse, etc. A moderator may close an issue or discussion thread if it originally came from a contributor or user and the original issue is resolved. Moderators should not close issues or discussions created by administrators, including official proposals to modify R-multiverse policies.

Enforcement

Administrators take primary responsibility for enforcing all R-multiverse policies. Moderators are delegated the following limited-scope privileges and responsibilities to assist administrators with enforcement.

Blocking users

Attackers and may attempt to spam or sabotage R-multiverse infrastructure. Examples include but are not limited to:

Please quickly add malicious GitHub users to the blocked users list at https://github.com/organizations/r-multiverse/settings/blocked_users. This will impede ongoing attacks by blocking the users from the R-multiverse GitHub organization.

Removing packages from Community

Moderators are responsible for removing R packages from https://github.com/r-multiverse/contributions which contain malware, invalid licenses2, or otherwise violate acceptable use. To remove a package, please follow the instructions from the “Removing Contributions” section above.

Repairing other damage

After blocking a malicious user, please delete any comments or contributed package listings which cause harm or constitute spam.

Reporting to R-multiverse

Please report all known policy violations to the issue tracker in the private repository at https://github.com/r-multiverse/moderation. An administrator will respond and work with you on a resolution. After resolving the issue, the administrator will publicly notify all R-multiverse stakeholders in a new issue thread at https://github.com/r-multiverse/help. The public thread will not disclose the identities of any victims of the incident or any moderators involved in its resolution.

Reporting to GitHub/GitLab

A violation of R-multiverse policies may also violate GitHub policies or GitLab policies: for example, a malicious user or a package with malware. If that is the case, please immediately report the user and/or package using GitHub’s “Report abuse or spam” webform or GitLab’s “Report abuse” procedure.

Reporting to the R Consortium Advisory Database

If a package contains malware or exploitable vulnerabilities, please report the affected package versions to the R Consortium Advisory Database.

Out of scope

Moderators should not attempt to directly confront malicious users/contributors, resolve code of conduct violations, or engage with legal matters relating to policy violations. Administrator directly handle these and similar cases. Please post to https://github.com/r-multiverse/moderation/issues to notify an administrator.

Contact

If you have questions, please post a discussion thread. To communicate confidentially among the administrators and other moderators, please post a new issue, discussion, or comment to the private repository at https://github.com/r-multiverse/moderation. If you need to communicate confidentially with only the administrators, please email [email protected].

Footnotes

  1. In this case, the contribution listing file serves as a placeholder in case a contributor wants to reuse the same name for a different package.↩︎

  2. nonstandard_licenses.json is a continuously updating list of packages with non-standard licenses.↩︎