You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: about-peer-review/aims-and-scope.md
+6-3Lines changed: 6 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,9 +24,12 @@ package.
24
24
support open science.
25
25
26
26
## Is Your Package in Scope For pyOpenSci Review?
27
-
pyOpenSci reviews packages within a set of categories define below.
28
-
If you are unsure whether your package fits into one of these categories, please
29
-
open a [pre-submission inquiry via a GitHub Issue](LINK) to get feedback from
27
+
28
+
pyOpenSci only reviews packages that fall within our specified domain and
29
+
technical scope listed below.
30
+
31
+
If you are unsure whether your package is in scope for review, please
32
+
open a [pre-submission inquiry using a GitHub Issue](https://github.com/pyOpenSci/software-review/issues/new?assignees=&labels=0%2Fpresubmission&template=presubmission-inquiry.md&title=) to get feedback from
30
33
one of our editors. We are happy to look at your package and help you understand
Copy file name to clipboardExpand all lines: about-peer-review/code-of-conduct.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,12 @@
1
1
# Community Code of Conduct
2
+
3
+
We keep our Code of Conduct in our governance documentation. [Click here to
4
+
go there now.](https://www.pyopensci.org/governance/code-of-conduct)
5
+
6
+
7
+
## NOTE: we are in the process of moving this file to our governance documentation and making significant changes to our code of conduct.
8
+
9
+
2
10
- We are committed to providing a friendly, safe and welcoming environment for all, regardless of gender, sexual orientation, disability, ethnicity, religion, or similar personal characteristic.
3
11
- Please avoid using openly sexual nicknames or other nicknames that might detract from a friendly, safe and welcoming environment for all.
4
12
- Please be kind and courteous. There’s no need to be mean or rude.
* Anyone can read the review discussion without an account making the process entirely open
35
+
* It facilitates collaboration and supports community around a package
36
+
* It facilitates open discussion between reviewers and package maintainers and the pyOpenSci volunteers
37
+
* Numerous packages store their code bases on GitHub
38
+
39
+
### We use GitHub issue templates and labels to organize the review steps
40
+
41
+
* We use GitHub issue templates as submission templates for new reviews and pre-submission review questions.
42
+
* We label issues to track every step of the package submission and review progress (e.g. [1/initial-editor-checks, 2/reviewers-needed, 6/pyopensci-approved](https://github.com/pyOpenSci/software-review/labels)
43
+
44
+
```{note}
45
+
Click [here](https://github.com/ropensci/software-review/issues/24) to read the review thread from an rOpenSci review of the `ropenaq` package. Note that the process is an ongoing conversation until the package is accepted. Two external reviews are important milestones in the review process.
46
+
```
47
+
48
+
For more detailed overview of the peer review process, [check out our process
The open peer review process lead by pyOpenSci address several issues in the scientific Python
9
-
ecosystem:
8
+
Software peer review refers to a peer-review process that focuses on open source software code, documentation and infrastructure. In pyOpenSci this review includes:
10
9
11
-
1.[Multiple packages that have overlapping functionality. See this example on `PyPI`](https://pypi.org/search/?q=twitter)
12
-
2. Packages that have varying levels of maintenance yet are used by the community to support open science workflows.
13
-
3. Packages that are well-maintained and used but then maintenance comes to a halt when the maintainer needs to step down (burn-out is common and understandable).
14
-
4. Packages using varying types of packaging and documentation approaches making it more difficult to contribute.
15
-
5. Packages that are not documented enough to support:
16
-
* Contributions from others
17
-
* Directions on how to get started using the package functionality (quick start vignettes or tutorials)
18
-
* Packages that are missing OSI licensing and citation information
10
+
* Code quality,
11
+
* Documentation quality,
12
+
* Package usability,
13
+
* Test coverage that supports both maintenance of code function. Test coverage also makes it easier for contributors to see how their contributions impacts other parts of the code,
14
+
* Evaluation of infrastructure such as continuous integration to run rest suites and check code linters, that supports automated checks on pull requests. This infrastructure supports software quality and reliability.
15
+
16
+
## What types of packages does pyOpenSci review?
17
+
pyOpenSci reviews higher level software packages that support scientific workflows.
19
18
20
-
### How is pyOpenSci different from JOSS and other review processes?
21
-
pyOpenSci is different from other review processes
22
-
out there because:
19
+
:::{figure-md} fig-target
23
20
24
-
1. We specifically review to community accepted python packaging standards
25
-
2. We consider accepted packages as vetted and a part of our ecosystem. We recommend those packages to others. If the maintainer needs to step down, we will ensure a new maintainer takes over OR sunset and remove the package from our ecosystem.
21
+
<imgsrc="../images/python-stack-jupyter-earth.png"alt="Image showing the tiers of software in the python ecosystem starting with Python itself and as you move out packages become more domain specific. In this image packages like xarray and numpy are considered core to scientific python. Packages and distributions like astropy, simpeg and metpy are considered to be domain specific."width="700px">
26
22
27
-
The JOSS review process is about publication. There, you will receive a DOI that is cross-ref
28
-
enabled. However JOSS will not followup with the maintainer to ensure that the package is maintained over time.
23
+
Diagram showing the tiers of software in the python ecosystem starting with Python itself and as you move out packages become more domain specific. In this image packages like xarray and numpy are considered core to scientific python. Packages and distributions like astropy, simpeg and metpy are considered to be domain specific.. pyOpenSci's review
24
+
process focuses on domain specific packages rather than core packages as
25
+
these packages tend to have more variability in long term maintenance and
26
+
package infrastructure and quality compared to established core packages. **Source: ["Jupyter meets earth" project](https://jupytearth.org/jupyter-resources/introduction/ecosystem.html)**
27
+
:::
28
+
29
29
30
-
## Why submit your package to pyOpenSci for review?
30
+
Currently, the packages that pyOpenSci reviews also need to fall into the
31
+
technical and applied scope of our organization. This scope may expand over time
32
+
as the organization grows.
31
33
32
-
There is a lot to gain from submitting your package to pyOpenSci.
33
-
But of course, before you submit, please be sure to read the policies
34
-
... to ensure pyOpenSci is the right fit for you.
34
+
## Why does the scientific community need software peer review?
35
35
36
-
First, and foremost, we hope you submit your package for review **because you value the feedback**. We aim to provide useful feedback to package authors and for our review process to be open, non-adversarial, and focused on improving software quality.
36
+
The pyOpenSci open peer review process addresses several issues in the
37
+
scientific Python ecosystem:
37
38
38
-
- Once your package is accepted, your package will receive **support from pyOpenSci members**. You'll retain ownership and control of your package. However, if you need help with ongoing maintenance issues, we will try to find people who can help.
39
-
40
-
- pyOpenSci will **promote your package** through our:
-[social media account](https://twitter.com/pyopensci).
39
+
1.[Multiple packages that have overlapping functionality. See this example of the many packages that interface with Twitter on `PyPI`](https://pypi.org/search/?q=twitter)
40
+
1. Packages that have varying levels of maintenance yet are used by the community to support open science workflows.
41
+
1. Packages that are well-maintained and used but then maintenance comes to a halt when the maintainer needs to step down (burn-out is common and understandable).
42
+
1. Packages using varying types of packaging and documentation approaches making it more difficult to contribute.
43
+
1. Packages that are not documented enough to support:
44
+
* Contributions from others
45
+
* Directions on how to get started using the package functionality (quick start vignettes or tutorials)
46
+
1. Packages that are missing OSI licensing and citation information.
44
47
45
-
- pyOpenSci packages that are in scope for the [Journal of Open-Source Software](https://joss.theoj.org/) and add the necessary accompanying short `paper.md` file, can, at the discretion of JOSS editors, benefit from a fast-tracked review process. [Read more about our partnership with JOSS here](#pyopensci-and-joss).
48
+
### Why is pyOpenSci focused on the Python programming language?
46
49
47
-
## Why do we need peer review for Python scientific software?
50
+
These challenges with open source software exist in other ecosystems as well. [rOpenSci](https://www.ropensci.org), an inspirational, sister organization of pyOpenSci, is an
51
+
example of an organization with similar values that operates in the scientific R programming language
52
+
space. However many of the issues
53
+
faced within the scientific Python community are broader in scale given the
54
+
numerous and diverse applications that the Python programming language is used for.
48
55
49
-
pyOpenSci's [suite of packages](https://pyopensci.org/python-packages/) are fully
50
-
contributed by community members with a great diversity of skills. This diversity
51
-
of developer backgrounds results in a range of quality associated with the suite
52
-
of tools available to process scientific data.
56
+
```{note}
57
+
[This blog post](https://www.numfocus.org/blog/how-ropensci-uses-code-review-to-promote-reproducible-science/) written by editors from our partner organization, rOpenSci, is a good introduction to pyOpenSci software peer review
58
+
```
53
59
54
-
### Peer review helps maintain consistent open source software quality
60
+
### Peer review of open source software helps maintain consistent quality
55
61
56
62
Peer review of python tools that support science is critical to enforcing
57
63
quality and usability standards. All pyOpenSci packages contributed by the
58
64
community undergo a transparent, constructive, non adversarial and open peer
59
65
review process. The goal of that process is to enforce commonly accepted standards.
60
66
These standards include technical structure of the package, usability of the
61
67
package, documenting package functionality in a way that is accessible
62
-
to all levels of users and proper licensing and citation information.
63
-
64
-
### A truly community-founded review process
65
-
66
-
Our peer review process is run by volunteer members of the Python scientific
67
-
community:
68
-
69
-
* Editors manage the incoming package review submissions and ensure
70
-
reviews move forward progress of submissions;
71
-
* authors create, submit and improve their package;
72
-
* Reviewers, two per submission, examine the software code and user experience.
73
-
74
-
```{note}
75
-
[This blog post](https://www.numfocus.org/blog/how-ropensci-uses-code-review-to-promote-reproducible-science/) written by editors from our partner organization, rOpenSci, is a good introduction to pyOpenSci software peer review
76
-
```
77
-
### How do I know a python package is pyOpenSci vetted?
78
-
79
-
You can identify pyOpenSci packages that have been peer-reviewed by the green
80
-
"peer-reviewed" badge at the top their README, []() linking to the specific issue
81
-
where the tool was reviewed. [See this example from devicely, one of our packages](https://github.com/hpi-dhc/devicely).
82
-
83
-
### How do reviews work?
84
-
85
-
We use GitHub for our entire review process. We like GitHub because:
68
+
to all levels of users and proper licensing and citation information.
86
69
87
-
* It's free to create an account
88
-
* It facilitates collaboration and supports community around a package
89
-
* It facilitates open discussion via issues
90
-
* It supports version control
91
-
* Numerous packages store their code bases on GitHub
92
-
93
-
We make the most of [GitHub](https://github.com/)infrastructure in
94
-
our review process.
95
-
96
-
Each package review is contained within an issue in the [pyOpenSci/software-review GitHub repository](https://github.com/pyopensci/software-review/).
97
-
98
-
99
-
```{note}
100
-
For instance, click [here](https://github.com/ropensci/software-review/issues/24) to read the review thread from an rOpenSci review of the `ropenaq` package. Note that the process is an ongoing conversation until the package is accepted. Two external reviews are important milestones in the review process.
101
-
```
102
-
103
-
### GitHub tools including issue submission templates and labels help us streamline peer review
104
-
We use GitHub features including:
105
-
106
-
* issue templates (as submission templates), and
107
-
* labelling issues to track progress of submissions (from editor checks to approval).
108
-
* Project boards to track help wanted items
109
-
110
-
All of this functionality supports a streamlined and open peer review
111
-
process.
112
-
113
-
## Why review a package for pyOpenSci?
114
-
115
-
We hope you choose to review **to give back to the rOpenSci and scientific communities.** Our mission to expand the ability to efficiently use scientific data and promote a culture of open reproducible is only possible through the volunteer efforts of community members like you.
116
-
117
-
- Peer review is a two-way conversation. By reviewing packages, you'll have the chance to **continue to learn development practices from authors and other reviewers**.
118
-
- The open nature of our review process allows you to **network and meet colleagues and collaborators** through the review process. Our community is friendly and filled with supportive members expert in Python package development, a diversity of science domains and computer science.
119
-
120
-
### Volunteer to review for us
121
-
- To volunteer to be one of our reviewers, fill out [this short form](https://forms.gle/9dv99gri6XKNU8177). In the form you will provide your contact information and areas of expertise. We are always looking for more reviewers with both general package-writing experience and domain expertise in the fields where packages are used. Some of our reviewers focus on package usability and documentation. This allows you to review even if you don't have strong technical background. We will pair you with a second reviewer that can focus more on the technical aspect of the review.
122
70
123
71
## Why are reviews open?
124
72
@@ -144,42 +92,14 @@ comments in public and without the cover of anonymity.
144
92
> believe that having direct and public communication between authors and
145
93
> reviewers improves quality and fairness of reviews.
146
94
95
+
### How do I know that a Python package has been reviewed by pyOpenSci?
147
96
148
-
### If you submit to pyOpenSci You Can Also Be Accepted by JOSS
149
-
We have a strong partnership with JOSS (Journal of Open Source Software); JOSS
150
-
accepts our review as their own. If your package is within JOSS' scope you can
151
-
then submit it to JOSS, linking to the accepted pyOpenSci review. Note that
152
-
JOSS won't accept packages that are don't have research applications such as
153
-
API wrappers. JOSS will then accept our review (you will not need a second
154
-
review with JOSS!). JOSS will review your paper and you will get a JOSS badge
155
-
to add next to your pyOpenSci badge of review. And a cross-ref enabled DOI.
156
-
157
-
158
-
## pyOpenSci and JOSS
159
-
160
-
> You don't have to chose between pyOpenSci and JOSS; You can submit your package to both.
161
-
162
-
pyOpenSci and [the Journal of Open Source Software (JOSS)](https://joss.theoj.org/)
163
-
are complementary, partner organizations; and you don't have to chose one or the
164
-
other! After a package to pyOpenSci has been reviewed and accepted by pyOpenSci
165
-
you can chose to also register it with JOSS. JOSS has [more limited scope](https://joss.readthedocs.io/en/latest/review_criteria.html) of the
166
-
for packages that it will review. For instance while pyOpenSci will review and
167
-
accept API wrappers, JOSS won't.
168
-
169
-
If your package is accepted by pyOpenSci and in scope for JOSS, JOSS will fast
170
-
track your package through their process given it was already reviewed by us.
171
-
Once accepted by JOSS, you now have both a pyOpenSci acceptance and one by JOSS.
172
-
Joss will then give you a cross-ref supported DOI for citation.
97
+
You can identify pyOpenSci packages that have been peer-reviewed by the green
98
+
"peer-reviewed" badge at the top of their `README.md` file, [](). This badge is added by the package author after the package
99
+
has successfully completed review and ideally links to the specific GitHub issue
100
+
where the tool was reviewed. [See this example from devicely, one of our accepted pyOpenSci ecosystem packages](https://github.com/hpi-dhc/devicely).
173
101
174
-
### Why Two Review Processes JOSS and pyOpenSci?
175
102
176
-
the pyOpenSci review process is different from that of JOSS in a few ways:
177
-
* pyOpenSci is specific to the Python community and thus will enforce community specific python specific standards.
178
-
* pyOpenSci places heavy emphasis on documentation and usability in our reviews and associated standardization of both.
179
-
* pyOpenSci builds community around and visibility for it's tools.
180
-
* pyOpenSci supports long term tool maintenance.
181
103
104
+
********
182
105
183
-
JOSS reviews are [more limited in scope](https://joss.readthedocs.io/en/latest/review_criteria.html) compared to pyOpenSci and the
0 commit comments