Appendix: Templates#
These are templates to be used by editors and reviewers. When a package is submitted, the assigned editor fills out the Editor’s Template and posts it in the submission’s issue thread on GitHub.
Editor’s Template#
## Editor response to review:
---
## Editor comments
:wave: Hi @reviewer-one and @reviewer-two! Thank you for volunteering to review
for pyOpenSci! <Add any additional banter here that you wish..>
### Please fill out our pre-review survey
Before beginning your review, please fill out our [pre-review survey](https://forms.gle/F9mou7S3jhe8DMJ16). This helps us improve all aspects of our review and better understand our community. No personal data will be shared from this survey - it will only be used in an aggregated format by our Executive Director to improve our processes and programs.
- [ ] reviewer 1 survey completed.
- [ ] reviewer 2 survey completed.
- [ ] reviewer 3 (if applicable)
The following resources will help you complete your review:
1. Here is the **[reviewers guide](https://www.pyopensci.org/software-peer-review/how-to/reviewer-guide.html)**. This guide contains all of the steps and information needed to complete your review.
2. Here is the **[review template](https://www.pyopensci.org/software-peer-review/how-to/reviewer-guide.html#peer-review-template)** that you will need to fill out and submit
here as a comment, once your review is complete.
Please get in touch with any questions or concerns! Your review is due: <Insert deadline DATE HERE>
---
Reviewers:
Due date:
Peer Review Template#
## Package Review
*Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide*
- [ ] As the reviewer I confirm that there are no conflicts of interest for me to review this work (If you are unsure whether you are in conflict, please speak to your editor _before_ starting your review).
#### Documentation
The package includes all the following forms of documentation:
- [ ] **A statement of need** clearly stating problems the software is designed to solve and its target audience in README.
- [ ] **Installation instructions:** for the development version of the package and any non-standard dependencies in README.
- [ ] **Vignette(s)** demonstrating major functionality that runs successfully locally.
- [ ] **Function Documentation:** for all user-facing functions.
- [ ] **Examples** for all user-facing functions.
- [ ] **Community guidelines** including contribution guidelines in the README or CONTRIBUTING.
- [ ] **Metadata** including author(s), author e-mail(s), a url, and any other relevant metadata e.g., in a `pyproject.toml` file or elsewhere.
Readme file requirements
The package meets the readme requirements below:
- [ ] Package has a README.md file in the root directory.
The README should include, from top to bottom:
- [ ] The package name
- [ ] Badges for:
- [ ] Continuous integration and test coverage,
- [ ] Docs building (if you have a documentation website),
- [ ] A [repostatus.org](https://www.repostatus.org/) badge,
- [ ] Python versions supported,
- [ ] Current package version (on PyPI / Conda).
*NOTE: If the README has many more badges, you might want to consider using a table for badges: [see this example](https://github.com/ropensci/drake). Such a table should be more wide than high. (Note that the a badge for pyOpenSci peer-review will be provided upon acceptance.)*
- [ ] Short description of package goals.
- [ ] Package installation instructions
- [ ] Any additional setup required to use the package (authentication tokens, etc.)
- [ ] Descriptive links to all vignettes. If the package is small, there may only be a need for one vignette which could be placed in the README.md file.
- [ ] Brief demonstration of package usage (as it makes sense - links to vignettes could also suffice here if package description is clear)
- [ ] Link to your documentation website.
- [ ] If applicable, how the package compares to other similar packages and/or how it relates to other packages in the scientific ecosystem.
- [ ] Citation information
#### Usability
Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole.
Package structure should follow general community best-practices. In general please consider whether:
- [ ] Package documentation is clear and easy to find and use.
- [ ] The need for the package is clear
- [ ] All functions have documentation and associated examples for use
- [ ] The package is easy to install
#### Functionality
- [ ] **Installation:** Installation succeeds as documented.
- [ ] **Functionality:** Any functional claims of the software been confirmed.
- [ ] **Performance:** Any performance claims of the software been confirmed.
- [ ] **Automated tests:**
- [ ] All tests pass on the reviewer's local machine for the package version submitted by the author. Ideally this should be a tagged version making it easy for reviewers to install.
- [ ] Tests cover essential functions of the package and a reasonable range of inputs and conditions.
- [ ] **Continuous Integration:** Has continuous integration setup (We suggest using Github actions but any CI platform is acceptable for review)
- [ ] **Packaging guidelines**: The package conforms to the pyOpenSci [packaging guidelines](https://www.pyopensci.org/python-package-guide).
A few notable highlights to look at:
- [ ] Package supports modern versions of Python and not [End of life versions](https://endoflife.date/python).
- [ ] Code format is standard throughout package and follows PEP 8 guidelines (CI tests for linting pass)
#### For packages also submitting to JOSS
- [ ] The package has an **obvious research application** according to JOSS's definition in their [submission requirements](http://joss.theoj.org/about#submission_requirements).
*Note:* Be sure to check this carefully, as JOSS's submission requirements and scope differ from pyOpenSci's in terms of what types of packages are accepted.
The package contains a `paper.md` matching [JOSS's requirements](http://joss.theoj.org/about#paper_structure) with:
- [ ] **A short summary** describing the high-level functionality of the software
- [ ] **Authors:** A list of authors with their affiliations
- [ ] **A statement of need** clearly stating problems the software is designed to solve and its target audience.
- [ ] **References:** With DOIs for all those that have one (e.g. papers, datasets, software).
#### Final approval (post-review)
- [ ] **The author has responded to my review and made changes to my satisfaction. I recommend approving this package.**
Estimated hours spent reviewing:
---
#### Review Comments
Review Request Template#
Editors may make use of the e-mail template below in recruiting reviewers:
Dear [REVIEWER-Name],
Hi, this is [EDITOR-Name]. [FRIENDLY BANTER]. I'm writing to ask if you have time
to review a package for pyOpenSci. pyOpenSci has an open peer review of open source Python packages that support science. Accepted packages become a part of our pyOpenSci ecosystem of vetted community-adopted tools. Our review process is similar to that
of open journals however it focuses on ensuring high quality packaging approaches
that are inline with community adopted Python standards.
The package, [PACKAGE] by [AUTHOR(S)], does [FUNCTION]. You can find it on GitHub here: [REPO LINK]. We conduct our open review process via GitHub as well, here: [ONBOARDING ISSUE]
If you accept, note that we ask reviewers to complete reviews in three weeks (We’ve found it takes a similar amount of time to review a package as an academic paper.).
Our [reviewers guide](https://www.pyopensci.org/software-peer-review/how-to/reviewer-guide.html) details what we look for in a package review, and includes links to example reviews.
We also include a reviewer template on that page that you can use to guide your review. Our Python packaging standards are detailed in our [packaging guide](https://www.pyopensci.org/python-package-guide).
If you have time, please have a look at the package first, to make
sure that you do not have a conflict of interest with the package authors.
If you have questions or feedback, feel free to ask me.
{IF APPLICABLE: The authors have also chosen to jointly submit their package to the Journal of Open Source Software, so this package includes a short `paper.md` manuscript describing the software that we ask you include in your review.}
Are you able to review? If you can not, I welcome any suggestions that you
have for other reviewers. If I don't hear from you within a week, I will assume
that you are unable to review this package at this time.
Thank you for your time.
Sincerely,
[EDITOR]
Editor Approval Comment Template#
----------------------------------------------
🎉 <package-name-here> has been approved by pyOpenSci! Thank you <maintainer-name-here> for submitting <package-name> and many thanks to <reviewer-names-here> for reviewing this package! 😸
There are a few things left to do to wrap up this submission:
- [ ] Add the badge for pyOpenSci peer-review to the README.md of <package-name-here>. The badge should be `[![pyOpenSci](https://tinyurl.com/y22nb8up)](https://github.com/pyOpenSci/software-review/issues/issue-number)`
- [ ] Add <package-name> to the pyOpenSci website. <maintainer-name>, please open a pr to update [this file](https://github.com/pyOpenSci/pyopensci.github.io/blob/main/_data/packages.yml): to add your package and name to the list of contributors
- [ ] <reviewers-and-maintainers> if you have time and are open to being listed on our website, please add yourselves to [this file](https://github.com/pyOpenSci/pyopensci.github.io/blob/main/_data/contributors.yml) via a pr so we can list you on our website as contributors!
<IF JOSS SUBMISSION>
This package is going to move on to JOSS for review. I believe @arfon will ask you to implement the items below but let's let him chime in here first!
- [ ] Activate Zenodo watching the repo
- [ ] Tag and create a release so as to create a Zenodo version and DOI
- [ ] Submit to JOSS using the Zenodo DOI. We will tag it for expedited review.
<IF JOSS SUBMISSION/>
All -- if you have any feedback for us about the review process please feel free to share it here. We are always looking to improve our process and our documentation in the [contributing-guide](https://www.pyopensci.org/contributing-guide). We have also been updating our documentation to improve the process so all feedback is appreciated!
Generic new member template#
A template for inviting others to join the pyOpenSci community calls and otherwise get engaged.
< short greeting />
I'm writing to see if you'd be interested in participating with pyOpenSci, a new community around improving the quality of software in the scientific python stack.
pyOpenSci provides resources, mentoring, and documentation for making scientific python packages more useful and maintainable. It builds off of the successful rOpenSci model, with a Python flavor. It primarily coordinates a review process by which experienced developers in the scientific python ecosystem can provide feedback and suggestions to other (usually fairly small) packages.
You've been in the scientific Python community for some time now, and I think you'd be a great part of the pyOpenSci community. Would you be interested in joining us? Participation can be as small or large as you wish - for example, you could submit your own package for review in pyOpenSci, offer to be a reviewer of someone else's package, or begin attending pyOpenSci planning meetings as we build and refine our processes. We'd just be happy to have you around :-)
< short goodbye />