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/package-scope.md
+95-47Lines changed: 95 additions & 47 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# The Scope of Packages that pyOpenSci Reviews
1
+
# The Scope of Packages that pyOpenSci Reviews
2
2
3
3
The mission of pyOpenSci's open peer review process is to:
4
4
@@ -10,6 +10,7 @@ of Open Source software for those who wish to obtain a Journal paper
10
10
through our review.
11
11
12
12
## What types of packages does pyOpenSci review?
13
+
13
14
pyOpenSci reviews higher level software packages that support scientific workflows.
14
15
15
16
:::{figure-md} fig-target
@@ -22,7 +23,6 @@ these packages tend to have more variability in long term maintenance and
22
23
package infrastructure and quality compared with established core packages. **Source: ["Jupyter meets earth" project](https://jupytearth.org/jupyter-resources/introduction/ecosystem.html)**
23
24
:::
24
25
25
-
26
26
:::{admonition} This is a living document
27
27
:class: note
28
28
@@ -49,7 +49,7 @@ data processing and the various stages of managing the
49
49
data lifecycle. Packages submitted to pyOpenSci should fit into one or
50
50
more of the categories below and should be within our technical scope.
51
51
52
-
```{admonition} Your Package Does Not Need to Widely Used to be Reviewed
52
+
:::{admonition} Your Package Does Not Need to Widely Used to be Reviewed
53
53
:class: important
54
54
55
55
We review packages with the goal of improving package quality and usability for scientists.
@@ -64,8 +64,7 @@ We welcome young packages that are just entering the scientific Python
64
64
ecosystem to apply for review if they are relevant to the science community and
65
65
fit into at least one scope category below. We also welcome mature packages with
66
66
a growing or established community!
67
-
```
68
-
67
+
:::
69
68
70
69
## Package categories that are in-scope for pyOpenSci
71
70
@@ -76,13 +75,14 @@ link to or a tutorial that demonstrates its potential application for science.
76
75
77
76
Below we provide examples of packages from pyOpenSci ecosystem.
78
77
79
-
```{note}
78
+
:::{note}
80
79
Many of the example packages below perform tasks that might fit in multiple
81
80
categories. Examples are there to provide you with a flavor of the types
82
81
of packages that would fall into that category.
83
-
```
82
+
:::
84
83
85
84
### Data retrieval
85
+
86
86
Packages for accessing and downloading data from online sources. This category
87
87
includes wrappers for accessing APIs.
88
88
@@ -92,16 +92,15 @@ interest to scientists. However, retrieval packages should be focused on data
92
92
sources / topics, rather than services. For example a general client for Amazon
Tools that automate and link together workflows and as such support
146
145
reproducible workflows. These
147
146
tools may include build systems and tools to manage continuous integration.
148
147
This also includes tools that support version control.
149
148
150
-
* Examples: Both of these tools are not pyOpenSci reviewed as of yet but are examples of tools that might be in scope for this category - [snakemake](https://snakemake.readthedocs.io/en/stable/), [pyGitHub ](https://github.com/PyGithub/PyGithub)
149
+
- Examples: Both of these tools are not pyOpenSci reviewed as of yet but are examples of tools that might be in scope for this category - [snakemake](https://snakemake.readthedocs.io/en/stable/), [pyGitHub ](https://github.com/PyGithub/PyGithub)
151
150
152
151
### Citation management and bibliometrics:
153
152
@@ -156,17 +155,17 @@ creating CVs or otherwise attributing scientific contributions, or accessing,
156
155
manipulating or otherwise working with bibliometric data. (Example: [Example from rOpenSci - RefManageR](https://github.com/ropensci/software-review/issues/119))
157
156
158
157
### Data visualization and analysis
158
+
159
159
These are packages that enhance a scientist's experience in visualizing and
160
160
analyzing data.
161
161
162
-
* Examples: [PyGMT - (also spatial and data munging)](https://github.com/pyOpenSci/software-submission/issues/43),
162
+
- Examples: [PyGMT - (also spatial and data munging)](https://github.com/pyOpenSci/software-submission/issues/43),
163
163
164
164
### Database software bindings
165
165
166
-
Bindings and wrappers for database APIs.
167
-
168
-
* Example: [Example from rOpenSci - rrlite](https://github.com/ropensci/software-review/issues/6)
166
+
Bindings and wrappers for database APIs.
169
167
168
+
- Example: [Example from rOpenSci - rrlite](https://github.com/ropensci/software-review/issues/6)
170
169
171
170
## Scope for packages that support analytics, statistics and modeling
172
171
@@ -177,12 +176,12 @@ credible journal.
177
176
178
177
We consider the following when determining whether an analytics-related package is within our review scope:
179
178
180
-
1. If your package facilitates a scientist using a **known or vetted statistical, AI or Analytical approach** we consider that in-scope. Before submitting to us, please ensure that your package's documentation directs users to existing paper(s) or pre-print(s) that document that approach's application. Further, be sure to link to these publications in your package review submission.
179
+
1. If your package facilitates a scientist using a **known or vetted statistical, AI or Analytical approach** we consider that in-scope. Before submitting to us, please ensure that your package's documentation directs users to existing paper(s) or pre-print(s) that document that approach's application. Further, be sure to link to these publications in your package review submission.
181
180
182
181
The review for this package:
183
182
184
-
* requires at least 1 domain specialist
185
-
* will never vet the analytical method itself.
183
+
- requires at least 1 domain specialist
184
+
- will never vet the analytical method itself.
186
185
187
186
2. If your package introduces a novel or newer analytic approach that is not yet vetted/ accepted by a scientific journal, we can not review it. We cannot review projects that exist as a proof-of-concept demonstration of a model or analytical approach that might accompany a paper. In this case, the approach should be sent to a scientific journal for vetting.
188
187
@@ -202,31 +201,76 @@ we will expand this list.
202
201
203
202
Packages focused on the retrieval, manipulation, and analysis of spatial data.
We have a [community affiliated package partnership with Astropy](../partners/astropy). To see packages currently under review for Astropy affiliation, visit the [open issues page](https://github.com/pyOpenSci/software-submission/issues?q=is%3Aissue+is%3Aopen) and select the `astropy` label.
218
+
222
219
### Pangeo
223
220
224
221
We have a [partnership with Pangeo](../partners/pangeo). Often times packages submitted as a part of that partnership are also in the geospatial domain.
- Why this functionality warrants a standalone package
256
+
- The specific scientific workflows it enables
257
+
- How it differs from or complements existing tools
258
+
259
+
The final decision on whether a package represents sufficient scholarly effort
260
+
rests with the editor and will be made on a case-by-case basis.
261
+
262
+
:::{note}
263
+
**Relationship to JOSS requirements:**
264
+
265
+
The Journal of Open Source Software (JOSS) has a [substantial scholarly effort requirement](https://joss.readthedocs.io/en/latest/submitting.html#substantial-scholarly-effort)
266
+
for all submitted packages. While pyOpenSci may review packages that don't meet JOSS's
267
+
minimum requirements, such packages will not be eligible for the fast-track
268
+
JOSS submission process described in our [partnership with JOSS](../partners/joss).
269
+
270
+
Our more flexible approach allows us to support useful scientific packages
271
+
that may be outside JOSS scope while maintaining our partnership for
272
+
packages that meet both organizations' criteria.
273
+
:::
230
274
231
275
### Telemetry & user-informed consent
232
276
@@ -247,29 +291,29 @@ We will evaluate usage data collected by packages on a case-by-case basis
247
291
and reserve the right not to review a package if the data collection is overly
248
292
invasive.
249
293
250
-
251
294
To be in technical scope for a pyOpenSci review, your package:
252
295
253
-
* Should have maintenance workflows documented.
254
-
* Should declare vendor dependencies using standard approaches rather than including code from other packages within your repository.
255
-
* Should not have an exceedingly complex structure. Others should be able to contribute and/or take over maintenance if needed.
296
+
- Should have maintenance workflows documented.
297
+
- Should declare vendor dependencies using standard approaches rather than including code from other packages within your repository.
298
+
- Should not have an exceedingly complex structure. Others should be able to contribute and/or take over maintenance if needed.
256
299
257
-
```{admonition} pyOpenSci's goal is to support long(er) term maintenance
300
+
:::{admonition} pyOpenSci's goal is to support long(er) term maintenance
258
301
pyOpenSci has a goal of supporting long term maintenance of open source
259
302
Python tools. It is thus important for us to know that if you need to step down as a maintainer, and that the package infrastructure and documentation is
260
303
in place to support us finding a new maintainer who can take over your
261
304
package's maintenance.
262
-
```
305
+
:::
263
306
264
307
### What if my package seems like its category or domain is out of scope?
308
+
265
309
- pyOpenSci is still developing as a community. If your scientific Python
266
-
package does not fit into one of the categories or if you have any other
267
-
questions, we encourage you to open a pre-submission inquiry. We're happy to help.
310
+
package does not fit into one of the categories or if you have any other
311
+
questions, we encourage you to open a pre-submission inquiry. We're happy to help.
268
312
- Data visualization packages come in many varieties, ranging from small
269
-
hyper-specific methods for one type of data to general, do-it-all packages
270
-
(e.g. matplotlib). pyOpenSci accepts packages that are somewhere in between the
271
-
two. If you're interested in submitting your data visualization package, please
272
-
open a pre-submission inquiry first.
313
+
hyper-specific methods for one type of data to general, do-it-all packages
314
+
(e.g. matplotlib). pyOpenSci accepts packages that are somewhere in between the
315
+
two. If you're interested in submitting your data visualization package, please
316
+
open a pre-submission inquiry first.
273
317
274
318
## Examples of packages that might be out of technical scope
275
319
@@ -279,12 +323,14 @@ Your package **may not be in technical scope** for us to review at this time if
279
323
it fulfills any of the out-of-technical-scope criteria listed below.
280
324
281
325
Your package is in technical scope if it is:
282
-
* Pure Python or Python with built extensions
283
-
* Available from PyPI and/or community conda channels such as conda-forge or bioconda
326
+
327
+
- Pure Python or Python with built extensions
328
+
- Available from PyPI and/or community conda channels such as conda-forge or bioconda
284
329
285
330
Your package might be out of in technical scope if it is:
286
-
* Not published in a community channel such as PyPI or a channel on anaconda cloud
287
-
* Exceedingly complex in its structure or maintenance needs
331
+
332
+
- Not published in a community channel such as PyPI or a channel on anaconda cloud
333
+
- Exceedingly complex in its structure or maintenance needs
288
334
289
335
A few examples of packages that may be too technically challenging for us to
290
336
find a new maintainer for in the future are below.
@@ -312,7 +358,9 @@ maintenance of the original code base to be independent from your package's
312
358
maintenance.
313
359
314
360
(package-overlap)=
361
+
315
362
## Package Overlap
363
+
316
364
pyOpenSci encourages competition among packages, forking and re-implementation
317
365
as they improve options of users. However, we strive to make packages in the
318
366
pyOpenSci suite to represent our top recommendations for the tasks that they
@@ -324,7 +372,7 @@ being:
324
372
325
373
- More open in licensing or development practices
326
374
- Broader in functionality (e.g., providing access to more data sets, providing
327
-
a greater suite of functions), but not only by duplicating additional packages
375
+
a greater suite of functions), but not only by duplicating additional packages
328
376
- Better in usability and performance
329
377
- Actively maintained while alternatives are poorly or no longer actively maintained
0 commit comments