Partnerships with scientific Python Communities#
Numerous science domain-specific scientific Python communities are developing and maintaining their own peer review processes to track and recommend packages that relevant to their science domain. However, running a high quality peer review process takes time and resources.
pyOpenSci offers a program where communities can partner with us, and leverage our peer review process, which is built on community-driven packaging guidelines and standards. Through this partnership, we enhance our standard review process with a community-specific step that adds your specific requirements for package affiliation.
What do we get when we become a pyOpenSci partner?#
In addition to the core benefits that pyOpenSci peer review provides, we will provide you with the following:
Visibility for your community and associated Python packages#
We will create a community page in this peer review guide where you can define your guidelines for a package to become affiliated with your community. Check out the pangeo example as an example of what this looks like.
A dedicated community page on the pyOpenSci website. Here, we will list your community along with all affiliated packages that have successfully undergone our review process. You can add descriptive text and graphics and branding to the page as you wish.
Packaging Support#
Our vibrant community is filled with experts in the Python packaging space. A partnership with us means that you will always have support from our diverse community of Pythonistas if you run into Python packaging and software maintenance challenges.
What’s in the works
pyOpenSci is enhancing our peer review process and working on:
Adding an editorial bot to our peer review infrastructure to streamline our review processes.
Collecting package metrics to track health and also understand maintenance status.
Partnership benefits to the broader scientific community#
The benefits for the broader scientific Python community include:
We have broad reach across the entire scientific Python ecosystem which allows us to promote your community and associated packages.
We have a broad view across all domains within the scientific Python ecosystem which will help us to identify overlap of package functionality across domains and potentially aggregate efforts in the future as it makes sense (i.e., if a maintainer needs to step down).
We offer an established peer review process will help enforce standardization of scientific Python packaging and best practices across the ecosystem. Our volunteer-lead peer review process has been operating since 2019.
How peer review works for partners#
The pyOpenSci peer review process can be broken down into 5 steps when a package is submitted for review:
To kick things off, an Editor-in-Chief checks that the package passes our bare-minimum checks.
Once Editor-in-Chief checks are passed, they assign a domain-expert editor to the review.
Through our partnership, we have two options when selecting an editor.
If the editor is someone from your partner community who has authority, they can determine whether the package meets the decided-upon criteria to become affiliated with your community.
If we have a domain specific editor who is not authorized by your community to make this decision, we can ask someone from your community to make the decision around affiliated status. Once the decision is made, the review can proceed as normal.
Once affiliated status has been determined, the editor finds 2 reviewers to begin the review.
The review begins and is a conversation between the package maintainer and the reviewer with the goal of improving the package usability and quality.
Once the package is accepted by pyOpenSci, authors can opt to be published in the Journal of Open Source Software (JOSS) if their package is in scope for JOSS. JOSS will accept the pyOpenSci review and will only review the JOSS paper. If the package is within JOSS’s scope, the JOSS fast-track process is normally a quick final step.
Through the above steps, an accepted package can become pyOpenSci accepted, JOSS published and an official affiliated package with your community.
How we find editors and reviewers#
One of the most common concerns that communities have is finding editors and reviewers. While finding volunteer editor and reviewers takes time, we are confident that we can figure this out together.
For every review we like to have an editor and at least 1 reviewer with some scientific domain expertise associated with the submitted package (and your community). Where possible we will make calls within your community to find editors and reviewers who understand your domain. However, we also have a broad pool of editors and reviewers across scientific domains that will allow us to fill gaps as needed. For instance, if your community is from the bio-medical single-cell domain we may be able to find editors in the broader field of genomics that could easily manage leading a review as an editor.
We have been running software peer review since 2019 and have never not been able to review a package because of editor / reviewer availability. However, sometimes it might take a bit longer to find the right people to begin the review.
How can people sign up to review?#
pyOpenSci maintains a reviewer database with individuals who have signed up using our reviewer sign-up form. Our goal is to assign two reviewers for each package. Typically, one reviewer possesses domain-specific expertise while the second may focus on usability, installation, documentation, or packaging infrastructure, without necessarily needing domain expertise.
We prioritize diversity among contributors in every review, ensuring inclusion of individuals with different gender, cultural backgrounds, and identities.
Frequently asked questions#
Below is a list of questions that we get asked about our community partnerships. If you have a question that is now answered here, feel free to ask it on the pyOpenSci discourse forum.
General peer review questions#
Affiliated review / pyOpenSci integration questions#
Package maintenance#
Packaging guidelines#
For communities with existing peer review processes#
For communities with existing peer review processes and accepted packages, we recommend the following steps:
If you’re in the process of transitioning your review process, start by looking for packages that have recently entered the review phase. Reach out to the maintainers of these packages and see if they’d be interested in shifting their review to pyOpenSci. If you already have an editor leading the review, they can become a guest editor on our board and continue the review using our process. We’re also available to mentor any new editors through our review process.
For packages that have already undergone review, consider prioritizing the older ones. Older packages are more likely to become unmaintained over time. This presents an excellent opportunity to re-evaluate packages that were accepted in previous years by taking them through our pyOpenSci peer review process.
Review is scary. How do we convince our package maintainers to do more work?#
We recognize that peer review can feel daunting, especially for those from academic backgrounds. Our review process diverges from conventional methods. We see review as a constructive dialogue involving the maintainer team, reviewers, and an editor, all collaborating to enhance the package’s quality and user-friendliness. Occasionally, our editors and reviewers even create issues and pull requests. Our community is readily available to address technical inquiries.
Although participating in a review demands extra time and effort, the benefits are substantial. Improving packaging infrastructure, documentation, and code makes your package more accessible and welcoming to contributors. Over time, this investment will yield significant rewards.
All our reviews are open on GitHub, ensuring transparency. Everyone participating in the peer review process is also expected to adhere to our code of conduct.