Onboarding at rOpenSci is managed by a team of editors. We are piloting
a system of a rotating Editor-in-Chief (EiC).
The EiC serves for 3 months or a time agreed to by all members of the editorial
board. The EiC plays the following roles
- Watch all issues posted to the onboarding repo:
- Assigns packages to other editors, including self, to handle. Mostly this just rotates among editors, unless the EiC thinks an editor is particularly suited to a package, or an editor rejects due to being too busy/conflict of interest.
- Raises scope/overlap issue with all editors if they see an ambiguous case. This
may also be done by handling editors (see below). To initiate discussion, this
is posted to the rOpenSci Slack onboarding channel, tagging all editors.
- Responds to pre-submission inquiries and
meta issues posted to the onboarding
repo, similarly pinging channel if discussion needed. But editors should all feel free to chime in on these if they want.
- Responds to referrals from JOSS or other publication partners.
- Monitors pace of review process and reminds other editors to move packages
along as needed.
Handling Editor’s Checklist
- Tag issue appropriately with
topic:, etc. tags. Add
and assign a main editor if you haven’t already.
- Check that template has been properly filled out
- Check against policies for fit and overlap.
Initiate discussion via slack #onboarding channel if needed for edge cases.
If reject, close issue, direct authors to other groups/repos as appropriate.
- Check that mandatory parts of template are complete. If not, close issue,
direct authors toward appropriate instructions.
- Run run automated tests:
NOT_CRAN if needed, as well. Report
relevant outputs in the issue thread.
- For packages with compiled code or linking to external libraries or languages,
check on multiple platforms, using win-builder, r-hub, or other editors
- If initial checks show major gaps, request changes before assigning reviewers.
- If the package raises a new issue for rOpenSci policy, open a discussion on the
rOpenSci forum to discuss it with other
- Switch numbered tag to
- Ask author to add a rOpenSci review badge to their README. Badge URL is
https://badges.ropensci.org/<issue_id>_status.svg. Full link should be:
- Use the #onboarding slack channel for discussion about potential reviewers.
- Use the email template if needed for inviting reviewers
- When inviting reviewers, include something like “if I don’t hear from
you in a week, I’ll assume you are unable to review,” so as to give a
clear deadline when you’ll move on to looking for someone else.
- Assign a due date 3 weeks after all reviewers have been found.
Once two or more reviewers are found, assign reviewer by tagging in the issue with the
following format to activate the automated reminders bot:
Due date: YYYY-MM-DD
- Switch numbered tag
to 3/reviewers-assigned once reviewers are assigned.
- Invite authors and reviewers to rOpenSci Slack if they aren’t on already.
- Check in with reviewers and authors occasionally. Offer clarification and help as needed.
- In general aim for 3 weeks for review, 2 weeks for
subsequent changes, and 1 week for reviewer approval of changes.
- Make sure ropensci-bot is pinging correctly. (currently defunct)
- Upon all reviews being submitted, change the review status tag to
4/review-in-awaiting-changes to update the reminder bot.
- Upon changes being made, change the review status tag to
- Change the status tag to
- Add review/er information to the review database.
- If authors intend to submit to CRAN, check against CRAN gotchas and provide
support through this process.
- Ask authors to migrate to
- Create a two-person team in the ropensci organization, named for the
package, with yourself and the package author as members.
- Have the author transfer the repository to
- Go to the repository settings in the
ropensci organization and give
the two-person team “Write” access to the repository. (“Admin” access
may be temporarily granted for purposes such as creating Zenodo releases,
setting up package documentation options, etc.)
- Ask author to:
- Add rOpenSci footer to README
- Change any needed links, such those for CI badges
- Re-activate CI services
- For Travis, activating the project in the ropensci account should be
- For Appveyor, active the project in the ropensci account, then create
a permission profile that gives access to that project, and link
that profile to the two-person GitHub team.
- For CodeCov, the webhook may need to be reset by the author.
- Close the onboarding issue.
For joint JOSS submissions:
- After repo is transferred and admin rights assigned, have author generate
a new release with a DOI.
- Ask author to submit package via http://joss.theoj.org/papers/new
Watch for paper to pop up at http://joss.theoj.org/papers, then
add the following comment to the submission thread:
This submission has been accepted to rOpenSci. The review thread can be
found at [LINK TO ONBOARDING ISSUE]
- Ask authors to write either a blog post or a tech-notes post for the package,
- Write a short summary for a regular “new packages round-up” blog post.
- Alert maintainers of appropriate task views
- Add package to rOpenSci web site
- Tweet, etc.
Automated reminders (CURRENTLY NOT OPERATIONAL)
Instead of manually reminding authors/reviewers to do X or Y, we thought we’d try to make a robot to do these reminders.
Heythere (https://github.com/ropenscilabs/heythere) is our Ruby application that runs on Heroku.
the process heythere goes through each day at about 530 pm:
- Get all open issues in
- Filter to only those issues with the
- If issue has label
holding, skip (as we’re in a waiting state for somebody to get back to us)
- If editor assigned, proceed - if not, skip
- If reviews not in:
- If before deadline and after half way mark, ping saying how many days are remaining until due
- If after deadline, ping reminding reviewer to get a review in soon
- If reviews in:
- After X days, ping author and ask if there’s anything we can do to help
We do our best to be humane, and nice. We’ll continue to improve the bot. Soon you may be able to talk back to the bot, and have it do useful things for you.