From ba272d9ce93eae91614c2be5dd68a300155f2511 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 31 Jan 2023 16:34:35 -0700 Subject: [PATCH 01/31] Fix: update package scope page with more specifics and examples --- about/package-scope.md | 224 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 221 insertions(+), 3 deletions(-) diff --git a/about/package-scope.md b/about/package-scope.md index 3652271b..8e437857 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -18,8 +18,6 @@ Currently, the packages that pyOpenSci reviews also need to fall into the technical and applied scope of our organization. This scope may expand over time as the organization grows. - - ## Is Your Package in Scope For pyOpenSci Review? pyOpenSci only reviews packages that fall within our specified domain and @@ -30,9 +28,229 @@ open a [pre-submission inquiry using a GitHub Issue](https://github.com/pyOpenSc one of our editors. We are happy to look at your package and help you understand whether it is in scope or not. -```{include} /appendices/scope.md +## About the scope of packages that we review + +pyOpenSci supports packages that support both open reproducible science, +data processing and and the various stages of managing the +data lifecycle. Packages submitted to pyOpenSci should fit into one or +more of the categories below. + +```{admonition} Package Use Metrics Are Not a Requirement for Review +:class: important +pyOpenSci has no requirements surrounding the volume community use of your +package. +If you package is well developed, the number of GitHub stars or PyPI or conda +downloads is NOT considered as a part of our scope evaluation. + +We welcome young packages that are just entering the scientific Python +ecosystem to apply for review if they are relevant to the science community and +fit into at least one scope category below. ``` +If you are unsure whether your package fits into one of the general or +statistical categories, please open an issue as a pre-submission inquiry (Examples). + +```{note} +This is a living document. The categories below may change through time. +This may mean in some cases, some previously peer review-accepted packages +may not be in-scope today. We strive for consistency in our peer review process. However, we also evaluate packages on a case-by-case basis. +In some cases exceptions are made. +``` + +## Package scope categories + +The following categories are the current domain areas that fall into the +pyOpenSci domain scope. Note that your package should have some level of +demonstrated scientific application. This could be a use case that you can +link to or a tutorial that demonstrates it's potential application for science. + +Below we provide examples of packages from pyOpenSci ecosystem. Because we +have growing community of packages, in some cases we link to R packages +within the rOpenSci community that match the category scope for reference. + +We will update this page as our review process evolves. + +```{note} +Many of the example packages below perform tasks that might fit in multiple +categories. There are just there to provide you with a flavor of the types +of packages that would fall into that category. +``` + +### Data retrieval +Packages for accessing and downloading data from online sources. This category +includes wrappers for accessing APIs. + +Our definition of scientific applications is broad, including data storage +services, journals, and other remote servers, as many data sources may be of +interest to scientists. However, retrieval packages should be focused on data +sources / topics, rather than services. + +*For example a general client for Amazon Web Services data storage would not be in-scope.* + +* Examples: [OpenOmics](https://github.com/pyOpenSci/software-submission/issues/31) + + +### Data extraction + +These packages aid in retrieving data from unstructured sources such as text, +images, and PDFs. They might also parse scientific data types and outputs from +scientific equipment. + +* Examples: [devicely](https://github.com/pyOpenSci/software-submission/issues/37), [jointly](https://github.com/pyOpenSci/software-submission/issues/45) + +### Data processing & munging + +Data munging tools are tools that support processing data discussed above. This +category focuses on tools for handling data in specific formats that scientists +may be interested in working with. These data may also be generated from +scientific workflows or exported from instruments and wearables. + +* Examples: [physcraper](https://github.com/pyOpenSci/software-submission/issues/26) + + +### Data deposition + +Tools for depositing data into scientific research repositories. + +* Examples: [This is an example from rOpenSci - eml](https://github.com/ropensci/software-review/issues/80) + +### Data validation and testing: + +Tools that enable automated validation and checking of data quality and +completeness. These tools should be able to support scientific workflows. + +* Example: [pandera](https://github.com/pyOpenSci/software-submission/issues/12) + +### Scientific software wrappers + +Scientific software wrappers refer to packages that provide a Python interface +for existing scientific packages written in other languages. + +These programs must be specific to scientific domains and not general computing +utilities. Wrappers must provide significant added value to the scientific +ecosystem be it in data handling, or improved installation processes for +Python users. + +We strongly encourage submissions that wrap tools that are open-source and +using an OSI-approved license. Exceptions will be evaluated case-by-case, +considering whether open-source options exist. + + +* Examples: We don't have a package in this category yet - *Could be your package?* + +### Workflow Automation & versioning +Tools that automate and link together workflows and as such support +reproducible workflows. These +tools may include build systems and tools to manage continuous integration. +This also includes tools that support version control. + + +* Examples: [Hamilton - currently under review](https://github.com/pyOpenSci/software-submission/issues/74), martin's git package (that is no longer maintained.) + +### Citation management and bibliometrics: + +Tools that facilitate managing references, such as for writing manuscripts, +creating CVs or otherwise attributing scientific contributions, or accessing, +manipulating or otherwise working with bibliometric data. (Example: [Example from rOpenSci - RefManageR](https://github.com/ropensci/software-review/issues/119)) + +### Data visualization & analysis +These are packages that enhance a scientists experience visualizing and +analyzing data. + +* Examples: [PyGmt - (also spatial and data munging)](https://github.com/pyOpenSci/software-submission/issues/43), + +### Database software bindings + + Bindings and wrappers for database APIs. + + * Example: [Example from rOpenSci - rrlite](https://github.com/ropensci/software-review/issues/6) + + +## Specialty topics + +In addition, we have some specialty topics with a broad domain focused scope. + +### Geospatial + +Packages focused on the retrieval, manipulation, and analysis of spatial data. + +* Examples: [PyGmt](https://github.com/pyOpenSci/software-submission/issues/43), +[Moving Pandas ](https://github.com/pyOpenSci/software-submission/issues/18) + +### Pangeo + +We have a [partnership with Pangeo](../partners/pangeo). Often times packages submitted as a part of that partnership are also in the geospatial domain. + +* Examples: [xclim - under review now](https://github.com/pyOpenSci/software-submission/issues/73) + +### Education + +Packages to aid with instruction. + + +## Package technical scope + +To be in technical scope for a pyOpenSci review, your package: + +* Should have maintenance workflows documented. +* Should be structured in a way that someone else could contribute to it. +* Should declare vendor dependencies using standard approaches rather than including code from other packages within your repository. + +### Notes on scope categories +- pyOpenSci is still developing as a community. If your scientific Python +package does not fit into one of the categories or if you have any other +questions, we'd encourage you to open a pre-submission inquiry. We're happy to help. +- Data visualization packages come in many varieties, ranging from small +hyper-specific methods for one type of data to general, do-it-all packages +(e.g. matplotlib). pyOpenSci accepts packages that are somewhere in between the +two. If you're interested in submitting your data visualization package, please +open a pre-submission inquiry first. + +## Python package technical scope + +pyOpenSci may continue to update its technical scope criteria for package +review as more packages with varying structural approaches are reviewed. +Your package **may not be in technical scope** for us to review at this time if +fits any of the out-of-technical-scope criteria listed below. + +```{important} + +**If the code base of your package is exceedingly complex in terms of +structure of maintenance needs**, we may not be able to review it. + +pyOpenSci has a goal of supporting long term maintenance of open source +Python tools. It is thus important for us to know that if you need to step down as a maintainer, the package infrastructure and documentation is +in place to support us finding a new maintainer who can take over you +package's maintenance. + +**Examples of technically complex package structures that may be difficult for us to +review** + +## Example 1: Your package is an out of sync fork of another package repository that is being actively maintained. + +Sometimes we understand that a package maintainer may need to step down. In +that case, we strongly suggest that the original package owner, transfer the +package repository to a new organization along with PyPI credentials. A new +organization would allow transfer of ownership of package maintenance rather +than several forks existing. + +If your package is a divergent fork of a maintained repository we will encourage you +to work with the original maintainers to merge efforts. + +However, if there is a case where a forked repository is warranted, please +consider submitting a pre-submission inquiry first and explain why the package is a +fork rather than an independent parent repository. + +### Example 2: Vendored dependencies + +If your package is a wrapper that wraps around another tool, we prefer that +the dependency be added as a dependency to your package. This allows +maintenance of the original code base to be independent from your package's +maintenance. +``` + + (package-overlap)= ## Package Overlap pyOpenSci encourages competition among packages, forking and re-implementation From b839139b4429c14260119641d8d3057877a78694 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 31 Jan 2023 16:34:54 -0700 Subject: [PATCH 02/31] Fix: pydata theme header bug fixed --- conf.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/conf.py b/conf.py index 8b6d742b..f60d1bf1 100644 --- a/conf.py +++ b/conf.py @@ -8,7 +8,7 @@ author = 'pyOpenSci Editorial Team and Community' # The full version, including alpha/beta/rc tags -release = '0.1' +release = '0.5' # -- General configuration --------------------------------------------------- @@ -35,7 +35,15 @@ # For generating sitemap html_baseurl = 'https://www.pyopensci.org/software-peer-review/' -# Link to our repo for easy PR/ editing +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = "pydata_sphinx_theme" +html_title = "Software Peer Review Guide" +html_logo = "_static/logo.png" +html_static_path = ["_static"] + +# Theme options html_theme_options = { "announcement": "

Submit Your Python Package for Peer Review!

", "external_links": [ @@ -95,12 +103,6 @@ # -- Options for HTML output ------------------------------------------------- -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -html_theme = 'pydata_sphinx_theme' -html_title = "pyOpenSci Software Peer Review Guide" -html_logo = "images/logo/logo.png" # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, From f70c92fbcb950408b80765f9dfcb5e848f7925a6 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 31 Jan 2023 16:35:17 -0700 Subject: [PATCH 03/31] Fix: more cleanup of links throughout --- CODE_OF_CONDUCT.md | 6 +++ {images/logo => _static}/logo.png | Bin about/intro.md | 2 +- appendices/scope.md | 74 ------------------------------ code-of-conduct.md | 4 -- how-to/author-guide.md | 9 ++-- how-to/editor-in-chief-guide.md | 2 +- 7 files changed, 14 insertions(+), 83 deletions(-) create mode 100644 CODE_OF_CONDUCT.md rename {images/logo => _static}/logo.png (100%) delete mode 100644 appendices/scope.md delete mode 100644 code-of-conduct.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..15f3ae03 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,6 @@ +# pyOpenSci Code of Conduct + +All individuals participating in any pyOpenSci program such as our peer review process, need to abide by our code of conduct. + +[Click here to +read our full code of conduct now.](https://www.pyopensci.org/governance/CODE_OF_CONDUCT.html) diff --git a/images/logo/logo.png b/_static/logo.png similarity index 100% rename from images/logo/logo.png rename to _static/logo.png diff --git a/about/intro.md b/about/intro.md index 67c765d1..eb69e630 100644 --- a/about/intro.md +++ b/about/intro.md @@ -20,7 +20,7 @@ Why Open Review Matters How Review Works <../our-process/how-review-works> Review Timeline <../our-process/review-timeline> Peer Review Policies <../our-process/policies> - +Code of Conduct <../CODE_OF_CONDUCT> ``` diff --git a/appendices/scope.md b/appendices/scope.md deleted file mode 100644 index e2811498..00000000 --- a/appendices/scope.md +++ /dev/null @@ -1,74 +0,0 @@ -## Python package domain scope - -The following categories are the current domain areas that fall into the -pyOpenSci domain scope. - -- **Data retrieval:** Packages for accessing and downloading data from online sources. Includes wrappers for accessing APIs. -- **Data extraction:** Packages that aid in retrieving data from unstructured sources such as text, images and PDFs. -- **Data munging:** Tools for processing data from scientific data formats. -- **Data deposition:** Tools for depositing data in scientific research repositories. -- **Reproducibility:** Tools to scientists ensure that their research is reproducible. E.g. version control, automated testing, or citation tools. -- **Geospatial:** Packages focused on the retrieval, manipulation, and analysis of spatial data. -- **Education:** Packages to aid with instruction. -- **Data visualization:** Packages for visualizing and analyzing data. - -## Package technical scope - -To be in technical scope for a pyOpenSci review, your package: - -* Should have maintenance workflows documented. -* Should be structured in a way that someone else could contribute to it. -* Should declare vendor dependencies using standard approaches rather than including code from other packages within your repository. - -### Notes on scope categories -- pyOpenSci is still developing as a community. If your scientific Python -package does not fit into one of the categories or if you have any other -questions, we'd encourage you to open a pre-submission inquiry. We're happy to help. -- Data visualization packages come in many varieties, ranging from small -hyper-specific methods for one type of data to general, do-it-all packages -(e.g. matplotlib). pyOpenSci accepts packages that are somewhere in between the -two. If you're interested in submitting your data visualization package, please -open a pre-submission inquiry first. - -## Python package technical scope - -pyOpenSci may continue to update its technical scope criteria for package -review as more packages with varying structural approaches are reviewed. -Your package **may not be in technical scope** for us to review at this time if -fits any of the out-of-technical-scope criteria listed below. - -```{important} - -**If the code base of your package is exceedingly complex in terms of -structure of maintenance needs**, we may not be able to review it. - -pyOpenSci has a goal of supporting long term maintenance of open source -Python tools. It is thus important for us to know that if you need to step down as a maintainer, the package infrastructure and documentation is -in place to support us finding a new maintainer who can take over you -package's maintenance. - -**Examples of technically complex package structures that may be difficult for us to -review** - -## Example 1: Your package is an out of sync fork of another package repository that is being actively maintained. - -Sometimes we understand that a package maintainer may need to step down. In -that case, we strongly suggest that the original package owner, transfer the -package repository to a new organization along with PyPI credentials. A new -organization would allow transfer of ownership of package maintenance rather -than several forks existing. - -If your package is a divergent fork of a maintained repository we will encourage you -to work with the original maintainers to merge efforts. - -However, if there is a case where a forked repository is warranted, please -consider submitting a pre-submission inquiry first and explain why the package is a -fork rather than an independent parent repository. - -### Example 2: Vendored dependencies - -If your package is a wrapper that wraps around another tool, we prefer that -the dependency be added as a dependency to your package. This allows -maintenance of the original code base to be independent from your package's -maintenance. -``` diff --git a/code-of-conduct.md b/code-of-conduct.md deleted file mode 100644 index 01d49167..00000000 --- a/code-of-conduct.md +++ /dev/null @@ -1,4 +0,0 @@ -# Community Code of Conduct - -We keep our Code of Conduct in our governance documentation. [Click here to -go there now.](https://www.pyopensci.org/governance/CODE_OF_CONDUCT.html) diff --git a/how-to/author-guide.md b/how-to/author-guide.md index 89703dba..0f8ba3fe 100644 --- a/how-to/author-guide.md +++ b/how-to/author-guide.md @@ -126,8 +126,11 @@ with input regarding the fit of your package for pyOpenSci review. This can take up to a week. Our current categories for determining package scope are below: - -```{include} ../appendices/scope.md + +```{button-link} /about/package-scope +:color: primary +:class: sd-rounded-pill +Click here to view our technical and domain scope requirements. ``` ## 4. Submit Your Package for Peer Review @@ -142,7 +145,7 @@ to your package to meet minimal criteria before review. They also may reject you package if it does not fall within our scope. ```{button-link} /editor-in-chief-guide.html#editor-checklist-template -:color: secondary +:color: primary :class: sd-rounded-pill Click here to view the editor checks that will be used to evaluate your package. ``` diff --git a/how-to/editor-in-chief-guide.md b/how-to/editor-in-chief-guide.md index 6219cf5a..e1a9b4c8 100644 --- a/how-to/editor-in-chief-guide.md +++ b/how-to/editor-in-chief-guide.md @@ -128,7 +128,7 @@ the aim, goals and functionality of the package. If a package has overlapping functionality with other packages, we require you -to mention in your documentation (README) and in this issue [how it is "best in class"](https://www.pyopensci.org/contributing-guide/about/package-scope.md#package-overlap). Please add a more detailed comparison to the packages you mention in the README so we can evaluate? +to mention in your documentation (README) and in this issue [how it is "best in class"](https://www.pyopensci.org/software-peer-review/about/package-scope.html#package-overlap). Please add a more detailed comparison to the packages you mention in the README so we can evaluate? ``` From eb5733b564357d1f1763f8308ac4131f5693755a Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 31 Jan 2023 17:01:38 -0700 Subject: [PATCH 04/31] Fix: EIC template button link incorrect --- how-to/author-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/how-to/author-guide.md b/how-to/author-guide.md index 0f8ba3fe..d7cc50d3 100644 --- a/how-to/author-guide.md +++ b/how-to/author-guide.md @@ -144,7 +144,7 @@ Once the issue is opened, our editor-in-chief and an editor from our editorial b to your package to meet minimal criteria before review. They also may reject your package if it does not fall within our scope. -```{button-link} /editor-in-chief-guide.html#editor-checklist-template +```{button-link} /how-to/editor-in-chief-guide.html#editor-checklist-template :color: primary :class: sd-rounded-pill Click here to view the editor checks that will be used to evaluate your package. From e2c00669a94330dcbeeeee1e51d0ae5a66fbc775 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Wed, 1 Feb 2023 10:18:53 -0700 Subject: [PATCH 05/31] Update about/package-scope.md Co-authored-by: Alex Batisse --- about/package-scope.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/about/package-scope.md b/about/package-scope.md index 8e437857..f1b2c8ff 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -39,7 +39,7 @@ more of the categories below. :class: important pyOpenSci has no requirements surrounding the volume community use of your package. -If you package is well developed, the number of GitHub stars or PyPI or conda +If your package is well developed, the number of GitHub stars or PyPI or conda downloads is NOT considered as a part of our scope evaluation. We welcome young packages that are just entering the scientific Python From c3ec5c6c5886b2ba3fca0ea7e3784c5390c3cb17 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Wed, 1 Feb 2023 10:19:02 -0700 Subject: [PATCH 06/31] Update about/package-scope.md Co-authored-by: Alex Batisse --- about/package-scope.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/about/package-scope.md b/about/package-scope.md index f1b2c8ff..56ac24d4 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -62,7 +62,7 @@ In some cases exceptions are made. The following categories are the current domain areas that fall into the pyOpenSci domain scope. Note that your package should have some level of demonstrated scientific application. This could be a use case that you can -link to or a tutorial that demonstrates it's potential application for science. +link to or a tutorial that demonstrates its potential application for science. Below we provide examples of packages from pyOpenSci ecosystem. Because we have growing community of packages, in some cases we link to R packages From 59c2bd588090c2abe6b8511fd4c7562c3929ac28 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Wed, 1 Feb 2023 10:19:10 -0700 Subject: [PATCH 07/31] Update about/package-scope.md Co-authored-by: Alex Batisse --- about/package-scope.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/about/package-scope.md b/about/package-scope.md index 56ac24d4..996ee5ce 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -101,7 +101,7 @@ scientific equipment. ### Data processing & munging Data munging tools are tools that support processing data discussed above. This -category focuses on tools for handling data in specific formats that scientists +category focuses on tools for handling data in specific formats that scientists may be interested in working with. These data may also be generated from scientific workflows or exported from instruments and wearables. From 35bfc623f0fbec10e2e8430cd5bc4af152c8ed03 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 14 Feb 2023 11:12:49 -0700 Subject: [PATCH 08/31] Update about/package-scope.md Co-authored-by: David Nicholson --- about/package-scope.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/about/package-scope.md b/about/package-scope.md index 996ee5ce..6540bb22 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -57,7 +57,7 @@ may not be in-scope today. We strive for consistency in our peer review process. In some cases exceptions are made. ``` -## Package scope categories +## Package categories The following categories are the current domain areas that fall into the pyOpenSci domain scope. Note that your package should have some level of From f2b3c9dd7ea88979d8c82c78380491595b184ce2 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 14 Feb 2023 11:17:00 -0700 Subject: [PATCH 09/31] Update about/package-scope.md Co-authored-by: David Nicholson --- about/package-scope.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/about/package-scope.md b/about/package-scope.md index 6540bb22..083278ef 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -31,7 +31,7 @@ whether it is in scope or not. ## About the scope of packages that we review pyOpenSci supports packages that support both open reproducible science, -data processing and and the various stages of managing the +data processing and the various stages of managing the data lifecycle. Packages submitted to pyOpenSci should fit into one or more of the categories below. From 07d219c53fa3c75bb6f6e4fc7314bc33d57941d6 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 14 Feb 2023 11:17:31 -0700 Subject: [PATCH 10/31] Update about/package-scope.md Co-authored-by: David Nicholson --- about/package-scope.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/about/package-scope.md b/about/package-scope.md index 083278ef..82720f42 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -72,7 +72,7 @@ We will update this page as our review process evolves. ```{note} Many of the example packages below perform tasks that might fit in multiple -categories. There are just there to provide you with a flavor of the types +categories. The examples are just there to provide you with a flavor of the types of packages that would fall into that category. ``` From 1248d93fd3239f2d8a0c830947e4edf8cbc47995 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 14 Feb 2023 11:21:28 -0700 Subject: [PATCH 11/31] Update about/package-scope.md Co-authored-by: David Nicholson --- about/package-scope.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/about/package-scope.md b/about/package-scope.md index 82720f42..1f292df7 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -158,7 +158,7 @@ manipulating or otherwise working with bibliometric data. (Example: [Example fro These are packages that enhance a scientists experience visualizing and analyzing data. -* Examples: [PyGmt - (also spatial and data munging)](https://github.com/pyOpenSci/software-submission/issues/43), +* Examples: [PyGMT - (also spatial and data munging)](https://github.com/pyOpenSci/software-submission/issues/43), ### Database software bindings From bbcf51651f7ff9236e7154a3c0eddc5e80d4b73e Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 14 Feb 2023 11:22:56 -0700 Subject: [PATCH 12/31] Update about/package-scope.md Co-authored-by: David Nicholson --- about/package-scope.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/about/package-scope.md b/about/package-scope.md index 1f292df7..fe56adae 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -209,7 +209,7 @@ open a pre-submission inquiry first. ## Python package technical scope -pyOpenSci may continue to update its technical scope criteria for package +pyOpenSci may continue to update its criteria for technical scope review as more packages with varying structural approaches are reviewed. Your package **may not be in technical scope** for us to review at this time if fits any of the out-of-technical-scope criteria listed below. From c78faac8f77a3cbfa18b7fb3cab4b6ce72fb18d1 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 14 Feb 2023 11:23:16 -0700 Subject: [PATCH 13/31] Update about/package-scope.md Co-authored-by: David Nicholson --- about/package-scope.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/about/package-scope.md b/about/package-scope.md index fe56adae..2915f4cc 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -217,7 +217,7 @@ fits any of the out-of-technical-scope criteria listed below. ```{important} **If the code base of your package is exceedingly complex in terms of -structure of maintenance needs**, we may not be able to review it. +structure or maintenance needs**, we may not be able to review it. pyOpenSci has a goal of supporting long term maintenance of open source Python tools. It is thus important for us to know that if you need to step down as a maintainer, the package infrastructure and documentation is From e80bc22dc633fb9f54cef8d132b73b48ee3970a9 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 14 Feb 2023 11:26:07 -0700 Subject: [PATCH 14/31] Update about/package-scope.md Co-authored-by: David Nicholson --- about/package-scope.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/about/package-scope.md b/about/package-scope.md index 2915f4cc..bbadcd91 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -37,7 +37,7 @@ more of the categories below. ```{admonition} Package Use Metrics Are Not a Requirement for Review :class: important -pyOpenSci has no requirements surrounding the volume community use of your +pyOpenSci has no requirements surrounding the community use of your package. If your package is well developed, the number of GitHub stars or PyPI or conda downloads is NOT considered as a part of our scope evaluation. From 57ccb6e8fe9e1918c46dacb9aa14606de69d8e5e Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 14 Feb 2023 12:06:24 -0700 Subject: [PATCH 15/31] Update about/package-scope.md Co-authored-by: David Nicholson --- about/package-scope.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/about/package-scope.md b/about/package-scope.md index bbadcd91..9e3ecf46 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -33,7 +33,7 @@ whether it is in scope or not. pyOpenSci supports packages that support both open reproducible science, data processing and the various stages of managing the data lifecycle. Packages submitted to pyOpenSci should fit into one or -more of the categories below. +more of the categories below and should be within our technical scope. ```{admonition} Package Use Metrics Are Not a Requirement for Review :class: important From 272d5bad4173bf7d0248df032b90faabec1072e3 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 14 Feb 2023 11:13:08 -0700 Subject: [PATCH 16/31] Fix: scope categories update --- about/package-scope.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/about/package-scope.md b/about/package-scope.md index 9e3ecf46..ab2c5aed 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -39,12 +39,14 @@ more of the categories below and should be within our technical scope. :class: important pyOpenSci has no requirements surrounding the community use of your package. -If your package is well developed, the number of GitHub stars or PyPI or conda + +If your package is well developed, the number of GitHub stars or PyPI / Conda downloads is NOT considered as a part of our scope evaluation. We welcome young packages that are just entering the scientific Python ecosystem to apply for review if they are relevant to the science community and -fit into at least one scope category below. +fit into at least one scope category below. We also welcome mature packages with +a growing or established community! ``` If you are unsure whether your package fits into one of the general or @@ -126,10 +128,9 @@ completeness. These tools should be able to support scientific workflows. Scientific software wrappers refer to packages that provide a Python interface for existing scientific packages written in other languages. -These programs must be specific to scientific domains and not general computing -utilities. Wrappers must provide significant added value to the scientific -ecosystem be it in data handling, or improved installation processes for -Python users. +These packages should have a clear scientific application. Wrappers must provide +significant added value to the scientific ecosystem be it in data handling, or +improved installation processes for Python users. We strongly encourage submissions that wrap tools that are open-source and using an OSI-approved license. Exceptions will be evaluated case-by-case, @@ -196,6 +197,7 @@ To be in technical scope for a pyOpenSci review, your package: * Should have maintenance workflows documented. * Should be structured in a way that someone else could contribute to it. * Should declare vendor dependencies using standard approaches rather than including code from other packages within your repository. +* Should avoid collecting any sort of user-data (telemetry) and if it does collect such data should use an opt-in approach. Opt-in means that the user needs to agree to have data collected and sent to developers prior to it being collected. ### Notes on scope categories - pyOpenSci is still developing as a community. If your scientific Python From 665bfe1d3a79309ac5aa3ad000110da5e0b00629 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 14 Feb 2023 12:10:05 -0700 Subject: [PATCH 17/31] Fix: update typos and add review feedback --- about/package-scope.md | 92 ++++++++++++++++++++++++++---------------- 1 file changed, 57 insertions(+), 35 deletions(-) diff --git a/about/package-scope.md b/about/package-scope.md index ab2c5aed..c2c4805f 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -20,27 +20,36 @@ as the organization grows. ## Is Your Package in Scope For pyOpenSci Review? -pyOpenSci only reviews packages that fall within our specified domain and -technical scope listed below. +pyOpenSci reviews packages that fall within a list of specified categories and +domains. Packages must also meet our technical scope requirements. If you are unsure whether your package is in scope for review, please 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 one of our editors. We are happy to look at your package and help you understand whether it is in scope or not. -## About the scope of packages that we review +### About the types of packages that we review +<<<<<<< HEAD pyOpenSci supports packages that support both open reproducible science, data processing and the various stages of managing the +======= +pyOpenSci reviews packages that support open reproducible science, +data processing and and the various stages of managing the +>>>>>>> b2ad9be (Fix: update typos and add review feedback) data lifecycle. Packages submitted to pyOpenSci should fit into one or more of the categories below and should be within our technical scope. ```{admonition} Package Use Metrics Are Not a Requirement for Review :class: important -pyOpenSci has no requirements surrounding the community use of your -package. -If your package is well developed, the number of GitHub stars or PyPI / Conda +When we evaluate whether you package is within our scope, we only consider: + +1. how the package is developed and +2. how the package relates to and supports the broader scientific ecosystem + +pyOpenSci does not evaluate how much community use your package has. +As such, the number of GitHub stars or PyPI / Conda downloads is NOT considered as a part of our scope evaluation. We welcome young packages that are just entering the scientific Python @@ -50,7 +59,7 @@ a growing or established community! ``` If you are unsure whether your package fits into one of the general or -statistical categories, please open an issue as a pre-submission inquiry (Examples). +statistical categories, please open an issue as a [pre-submission inquiry](https://github.com/pyOpenSci/software-submission/issues/new?assignees=&labels=0%2Fpresubmission&template=presubmission-inquiry.md&title=). ```{note} This is a living document. The categories below may change through time. @@ -74,7 +83,7 @@ We will update this page as our review process evolves. ```{note} Many of the example packages below perform tasks that might fit in multiple -categories. The examples are just there to provide you with a flavor of the types +categories. There examples are there to provide you with a flavor of the types of packages that would fall into that category. ``` @@ -85,9 +94,8 @@ includes wrappers for accessing APIs. Our definition of scientific applications is broad, including data storage services, journals, and other remote servers, as many data sources may be of interest to scientists. However, retrieval packages should be focused on data -sources / topics, rather than services. - -*For example a general client for Amazon Web Services data storage would not be in-scope.* +sources / topics, rather than services. For example a general client for Amazon +Web Services data storage would not be in-scope. * Examples: [OpenOmics](https://github.com/pyOpenSci/software-submission/issues/31) @@ -132,14 +140,14 @@ These packages should have a clear scientific application. Wrappers must provide significant added value to the scientific ecosystem be it in data handling, or improved installation processes for Python users. -We strongly encourage submissions that wrap tools that are open-source and -using an OSI-approved license. Exceptions will be evaluated case-by-case, +We strongly encourage submissions that wrap tools that are open-source with +an OSI-approved license. Exceptions will be evaluated case-by-case, considering whether open-source options exist. * Examples: We don't have a package in this category yet - *Could be your package?* -### Workflow Automation & versioning +### Workflow automation & versioning Tools that automate and link together workflows and as such support reproducible workflows. These tools may include build systems and tools to manage continuous integration. @@ -168,9 +176,12 @@ analyzing data. * Example: [Example from rOpenSci - rrlite](https://github.com/ropensci/software-review/issues/6) -## Specialty topics +## Domain areas -In addition, we have some specialty topics with a broad domain focused scope. +In addition, our scope includes focused domain areas. These areas are based on +partnerships that we form with communities and also expertise that we hold +within our organization. As we develop [new community partnerships](/partners/scientific-communities) and grow, +we will expand this list. ### Geospatial @@ -195,9 +206,35 @@ Packages to aid with instruction. To be in technical scope for a pyOpenSci review, your package: * Should have maintenance workflows documented. -* Should be structured in a way that someone else could contribute to it. * Should declare vendor dependencies using standard approaches rather than including code from other packages within your repository. -* Should avoid collecting any sort of user-data (telemetry) and if it does collect such data should use an opt-in approach. Opt-in means that the user needs to agree to have data collected and sent to developers prior to it being collected. +* Should not have an exceedingly complex structure. Others should be able to contribute and/or take over maintenance if needed. + +```{admonition} pyOpenSci's goal is to support long(er) term maintenance +pyOpenSci has a goal of supporting long term maintenance of open source +Python tools. It is thus important for us to know that if you need to step down as a maintainer, the package infrastructure and documentation is +in place to support us finding a new maintainer who can take over you +package's maintenance. +``` + +### Telemetry & user-informed consent + +Your package should avoid collecting any sort of use-data (telemetry). With +that in mind, we understand that package-use data can be invaluable for the +development process. If the package does collect such data, it should do so +by prioritizing user informed-consent. This means that before any data are +collected, the user understands: + +1. What data are collected +2. How the data are collected. +3. How the data are used + +This often entails `opt-in` consent to collect data meaning that the user, once +informed of what will be collected, needs to agree to have data collected and +sent to developers prior to it being collected. + +We will evaluate telemetry data collected by packages on a case-by-case basis +and reserve the right to not review a package if the data collection is overly +invasive. *TODO:UPDATING THIS LANGUAGE* ### Notes on scope categories - pyOpenSci is still developing as a community. If your scientific Python @@ -209,27 +246,14 @@ hyper-specific methods for one type of data to general, do-it-all packages two. If you're interested in submitting your data visualization package, please open a pre-submission inquiry first. -## Python package technical scope +## Examples of packages that might be out of technical scope pyOpenSci may continue to update its criteria for technical scope review as more packages with varying structural approaches are reviewed. Your package **may not be in technical scope** for us to review at this time if fits any of the out-of-technical-scope criteria listed below. -```{important} - -**If the code base of your package is exceedingly complex in terms of -structure or maintenance needs**, we may not be able to review it. - -pyOpenSci has a goal of supporting long term maintenance of open source -Python tools. It is thus important for us to know that if you need to step down as a maintainer, the package infrastructure and documentation is -in place to support us finding a new maintainer who can take over you -package's maintenance. - -**Examples of technically complex package structures that may be difficult for us to -review** - -## Example 1: Your package is an out of sync fork of another package repository that is being actively maintained. +### Example 1: Your package is an out of sync fork of another package repository that is being actively maintained. Sometimes we understand that a package maintainer may need to step down. In that case, we strongly suggest that the original package owner, transfer the @@ -250,8 +274,6 @@ If your package is a wrapper that wraps around another tool, we prefer that the dependency be added as a dependency to your package. This allows maintenance of the original code base to be independent from your package's maintenance. -``` - (package-overlap)= ## Package Overlap From 3d7a6f829430382502fb9c29b6f91b0edbc504d7 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 14 Feb 2023 12:26:13 -0700 Subject: [PATCH 18/31] Fix: working of telemetry clause --- about/package-scope.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/about/package-scope.md b/about/package-scope.md index c2c4805f..08e260e3 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -218,23 +218,24 @@ package's maintenance. ### Telemetry & user-informed consent -Your package should avoid collecting any sort of use-data (telemetry). With +Your package should avoid collecting usage analytics. With that in mind, we understand that package-use data can be invaluable for the development process. If the package does collect such data, it should do so -by prioritizing user informed-consent. This means that before any data are +by prioritizing user-informed-consent. This means that before any data are collected, the user understands: 1. What data are collected 2. How the data are collected. 3. How the data are used +4. How and where the data are stored -This often entails `opt-in` consent to collect data meaning that the user, once -informed of what will be collected, needs to agree to have data collected and -sent to developers prior to it being collected. +This often entails `opt-in` consent to collect data. `opt-in` means that the +user, once informed of what will be collected, and how/where that data is +stored, needs to agree to such collection prior to it being collected. We will evaluate telemetry data collected by packages on a case-by-case basis and reserve the right to not review a package if the data collection is overly -invasive. *TODO:UPDATING THIS LANGUAGE* +invasive. ### Notes on scope categories - pyOpenSci is still developing as a community. If your scientific Python @@ -248,7 +249,7 @@ open a pre-submission inquiry first. ## Examples of packages that might be out of technical scope -pyOpenSci may continue to update its criteria for technical scope +pyOpenSci may continue to update its criteria for technical scope review as more packages with varying structural approaches are reviewed. Your package **may not be in technical scope** for us to review at this time if fits any of the out-of-technical-scope criteria listed below. From 4c5a12e59256841209509deed73f7d8e460050ac Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 14 Feb 2023 12:27:50 -0700 Subject: [PATCH 19/31] Fix: missed a conflict --- about/package-scope.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/about/package-scope.md b/about/package-scope.md index 08e260e3..fdb4c090 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -30,13 +30,8 @@ whether it is in scope or not. ### About the types of packages that we review -<<<<<<< HEAD -pyOpenSci supports packages that support both open reproducible science, -data processing and the various stages of managing the -======= pyOpenSci reviews packages that support open reproducible science, data processing and and the various stages of managing the ->>>>>>> b2ad9be (Fix: update typos and add review feedback) data lifecycle. Packages submitted to pyOpenSci should fit into one or more of the categories below and should be within our technical scope. From c9c90c272d105f263a89f9bac97b8b5c36081e37 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 14 Feb 2023 12:55:17 -0700 Subject: [PATCH 20/31] Update about/package-scope.md Co-authored-by: Yuvi Panda --- about/package-scope.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/about/package-scope.md b/about/package-scope.md index fdb4c090..658574d2 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -228,7 +228,7 @@ This often entails `opt-in` consent to collect data. `opt-in` means that the user, once informed of what will be collected, and how/where that data is stored, needs to agree to such collection prior to it being collected. -We will evaluate telemetry data collected by packages on a case-by-case basis +We will evaluate usage data collected by packages on a case-by-case basis and reserve the right to not review a package if the data collection is overly invasive. From 1fb11a64d442345946ac749b3ab7138279bd87ba Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 14 Feb 2023 12:58:20 -0700 Subject: [PATCH 21/31] Apply suggestions from code review --- about/package-scope.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/about/package-scope.md b/about/package-scope.md index 658574d2..e3fac24b 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -221,7 +221,7 @@ collected, the user understands: 1. What data are collected 2. How the data are collected. -3. How the data are used +3. What you plan to do with the data 4. How and where the data are stored This often entails `opt-in` consent to collect data. `opt-in` means that the From 4fe7f024a1acdcd20c6197039974c9b3a091a3a2 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 14 Feb 2023 13:01:58 -0700 Subject: [PATCH 22/31] Update about/package-scope.md Co-authored-by: Stefan van der Walt --- about/package-scope.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/about/package-scope.md b/about/package-scope.md index e3fac24b..d434cd44 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -229,7 +229,7 @@ user, once informed of what will be collected, and how/where that data is stored, needs to agree to such collection prior to it being collected. We will evaluate usage data collected by packages on a case-by-case basis -and reserve the right to not review a package if the data collection is overly +and reserve the right not to review a package if the data collection is overly invasive. ### Notes on scope categories From cc7e9ce6b4fb68abdb944a48e8fec1820e761c30 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 14 Feb 2023 13:11:24 -0700 Subject: [PATCH 23/31] Update about/package-scope.md --- about/package-scope.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/about/package-scope.md b/about/package-scope.md index d434cd44..b6d62573 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -224,9 +224,7 @@ collected, the user understands: 3. What you plan to do with the data 4. How and where the data are stored -This often entails `opt-in` consent to collect data. `opt-in` means that the -user, once informed of what will be collected, and how/where that data is -stored, needs to agree to such collection prior to it being collected. +Once the user is informed of what will be collected and how that data will be handled, stored and used, you can implement `opt-in` consent. `opt-in` means that the user agrees to usage-data collection prior to it being collected (rather than having to opt-out when using your package). We will evaluate usage data collected by packages on a case-by-case basis and reserve the right not to review a package if the data collection is overly From 31f4a032a95f270fdf6eadd08eb6ceb631d5c87c Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 14 Feb 2023 13:19:52 -0700 Subject: [PATCH 24/31] Fix: a few broken links --- about/intro.md | 2 +- appendices/glossary.md | 2 +- CODE_OF_CONDUCT.md => code-of-conduct.md | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename CODE_OF_CONDUCT.md => code-of-conduct.md (100%) diff --git a/about/intro.md b/about/intro.md index eb69e630..00c48be0 100644 --- a/about/intro.md +++ b/about/intro.md @@ -20,7 +20,7 @@ Why Open Review Matters How Review Works <../our-process/how-review-works> Review Timeline <../our-process/review-timeline> Peer Review Policies <../our-process/policies> -Code of Conduct <../CODE_OF_CONDUCT> +Code of Conduct <../code-of-conduct> ``` diff --git a/appendices/glossary.md b/appendices/glossary.md index 0a5531b5..c0bf24c4 100644 --- a/appendices/glossary.md +++ b/appendices/glossary.md @@ -11,7 +11,7 @@ definitions for reference. * **docstring**: A miniature piece of documentation within the source code, usually documenting a specific function, class, or other piece of code. * **linting/linter**: A linter is a program that you can run on your code to identify potential errors. There are many linters for Python, e.g. flake8. * **module**: A file containing Python code. Modules can define functions, classes, and more, and can be imported by other Python code to use those defined objects. Some files are meant to be run directly instead of imported. These are "scripts". -* **open source**: In simple terms, software for which the source code is freely available and can be modified and redistributed. What meets the standard of "open source" can be controversial, but the Open Source Initiative has a more thorough set of [guidelines](https://opensource.org/osd-annotated). +* **open source**: In simple terms, software for which the source code is freely available and can be modified and redistributed. What meets the standard of "open source" can be controversial, but the Open Source Initiative has a more thorough set of [guidelines](https://opensource.org/definition/). * **slug**: A short title, containing only letters, numbers, underscores, and hyphens. For example, a slug might replace spaces with underscores. Your package's "slug" is a handy shorthand. * **software license**: Contains the terms of use, modification, and distribution for a piece of software. Open source licenses generally grant freedom to modify and share software, but sometimes there are specific conditions. Read more from [OSI](https://opensource.org/licenses). * **testing**: Code tests check units of code to make sure that they are producing the expected result. For example, if you have a function "sum_nums" that sums numbers, you could write a test that makes sure that sum_nums(2, 2) == 4. Writing full tests helps to avoid bugs as you are writing or modifying your code. diff --git a/CODE_OF_CONDUCT.md b/code-of-conduct.md similarity index 100% rename from CODE_OF_CONDUCT.md rename to code-of-conduct.md From 06ada727562fc22f554cd2bbca075372c55ec07a Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 21 Feb 2023 11:45:44 -0700 Subject: [PATCH 25/31] Update about/package-scope.md Co-authored-by: David Nicholson --- about/package-scope.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/about/package-scope.md b/about/package-scope.md index b6d62573..6abd1c7f 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -65,8 +65,8 @@ In some cases exceptions are made. ## Package categories -The following categories are the current domain areas that fall into the -pyOpenSci domain scope. Note that your package should have some level of +The following are the current categories that fall into scope for +pyOpenSci. In addition to fitting into one or more of these categories, your package should have some level of demonstrated scientific application. This could be a use case that you can link to or a tutorial that demonstrates its potential application for science. From 2eef270ded2315e882feebc51e5ec00b0decae41 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 21 Feb 2023 11:46:10 -0700 Subject: [PATCH 26/31] Update about/package-scope.md Co-authored-by: David Nicholson --- about/package-scope.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/about/package-scope.md b/about/package-scope.md index 6abd1c7f..5b0ace19 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -92,7 +92,7 @@ interest to scientists. However, retrieval packages should be focused on data sources / topics, rather than services. For example a general client for Amazon Web Services data storage would not be in-scope. -* Examples: [OpenOmics](https://github.com/pyOpenSci/software-submission/issues/31) +* Examples: [OpenOmics](https://github.com/pyOpenSci/software-submission/issues/31), [pyDov](https://github.com/pyOpenSci/software-submission/issues/19), [Physcraper](https://github.com/pyOpenSci/software-review/issues/26) ### Data extraction From 9efc539e382f4beba6c54d9f0daf445e237cafa6 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 21 Feb 2023 11:46:23 -0700 Subject: [PATCH 27/31] Update about/package-scope.md Co-authored-by: Stefan van der Walt --- about/package-scope.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/about/package-scope.md b/about/package-scope.md index 5b0ace19..cfd1c30f 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -41,7 +41,7 @@ more of the categories below and should be within our technical scope. When we evaluate whether you package is within our scope, we only consider: 1. how the package is developed and -2. how the package relates to and supports the broader scientific ecosystem +2. how the package relates to and supports the broader scientific ecosystem. pyOpenSci does not evaluate how much community use your package has. As such, the number of GitHub stars or PyPI / Conda From 6de8c5223ef2b85dc200bcd493a8964983cd8dbd Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 21 Feb 2023 11:49:06 -0700 Subject: [PATCH 28/31] Apply suggestions from code review Co-authored-by: David Nicholson --- about/package-scope.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/about/package-scope.md b/about/package-scope.md index cfd1c30f..9f66885a 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -105,12 +105,12 @@ scientific equipment. ### Data processing & munging -Data munging tools are tools that support processing data discussed above. This +Data [munging tools transform data in a way that makes further analysis possible (as [defined on Wikipedia](https://en.wikipedia.org/wiki/Data_wrangling)). Munging complements the other categories so it's common for packages to include some functionality to munge data. This category focuses on tools for handling data in specific formats that scientists may be interested in working with. These data may also be generated from scientific workflows or exported from instruments and wearables. -* Examples: [physcraper](https://github.com/pyOpenSci/software-submission/issues/26) +* Examples: [devicely](https://github.com/pyOpenSci/software-submission/issues/37), [jointly](https://github.com/pyOpenSci/software-submission/issues/45), [MovingPandas](https://github.com/pyOpenSci/software-submission/issues/18), [OpenOmics](https://github.com/pyOpenSci/software-submission/issues/31), [Physcraper](https://github.com/pyOpenSci/software-submission/issues/26) ### Data deposition @@ -140,7 +140,7 @@ an OSI-approved license. Exceptions will be evaluated case-by-case, considering whether open-source options exist. -* Examples: We don't have a package in this category yet - *Could be your package?* +* Examples: [PyGMT](https://github.com/pyOpenSci/software-submission/issues/43) ### Workflow automation & versioning Tools that automate and link together workflows and as such support @@ -230,7 +230,7 @@ We will evaluate usage data collected by packages on a case-by-case basis and reserve the right not to review a package if the data collection is overly invasive. -### Notes on scope categories +### What if my package seems like its category or domain is out of scope? - pyOpenSci is still developing as a community. If your scientific Python package does not fit into one of the categories or if you have any other questions, we'd encourage you to open a pre-submission inquiry. We're happy to help. From 46570ddb337dd2c4ab30e4eb6812d2cab4e834af Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 21 Feb 2023 11:51:07 -0700 Subject: [PATCH 29/31] Fix: small changes from review --- about/package-scope.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/about/package-scope.md b/about/package-scope.md index 9f66885a..5d5f859e 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -35,18 +35,17 @@ data processing and and the various stages of managing the data lifecycle. Packages submitted to pyOpenSci should fit into one or more of the categories below and should be within our technical scope. -```{admonition} Package Use Metrics Are Not a Requirement for Review +```{admonition} Your Package Does Not Need to Have Widespread Use to be Reviewed :class: important +We review packages with the goal of improving package quality and usability for scientists. +As such, we review packages across a spectrum of small to large user bases. The popularity of your package is not a consideration in our review process! + When we evaluate whether you package is within our scope, we only consider: 1. how the package is developed and 2. how the package relates to and supports the broader scientific ecosystem. -pyOpenSci does not evaluate how much community use your package has. -As such, the number of GitHub stars or PyPI / Conda -downloads is NOT considered as a part of our scope evaluation. - We welcome young packages that are just entering the scientific Python ecosystem to apply for review if they are relevant to the science community and fit into at least one scope category below. We also welcome mature packages with From 152c2f3713d44c829892937ca1d187bd59f106cb Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 21 Feb 2023 12:09:14 -0700 Subject: [PATCH 30/31] Fix: more reviewer feedback integrated --- about/package-scope.md | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/about/package-scope.md b/about/package-scope.md index 5d5f859e..54d69304 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -64,7 +64,7 @@ In some cases exceptions are made. ## Package categories -The following are the current categories that fall into scope for +The following are the current categories that fall into scope for pyOpenSci. In addition to fitting into one or more of these categories, your package should have some level of demonstrated scientific application. This could be a use case that you can link to or a tutorial that demonstrates its potential application for science. @@ -138,7 +138,6 @@ We strongly encourage submissions that wrap tools that are open-source with an OSI-approved license. Exceptions will be evaluated case-by-case, considering whether open-source options exist. - * Examples: [PyGMT](https://github.com/pyOpenSci/software-submission/issues/43) ### Workflow automation & versioning @@ -147,9 +146,7 @@ reproducible workflows. These tools may include build systems and tools to manage continuous integration. This also includes tools that support version control. - -* Examples: [Hamilton - currently under review](https://github.com/pyOpenSci/software-submission/issues/74), martin's git package (that is no longer maintained.) +* 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) ### Citation management and bibliometrics: @@ -193,7 +190,8 @@ We have a [partnership with Pangeo](../partners/pangeo). Often times packages su ### Education Packages to aid with instruction. - + +* Examples: [pyrolite](https://github.com/morganjwilliams/pyrolite) ## Package technical scope @@ -246,6 +244,17 @@ review as more packages with varying structural approaches are reviewed. Your package **may not be in technical scope** for us to review at this time if fits any of the out-of-technical-scope criteria listed below. +Your package is in technical scope if it is: +* Pure Python or Python with built extensions +* Available from PyPI and/or community conda channels such as conda-forge or bioconda + +Your package might be out of in technical scope if it is: +* Not published in a community channel such as PyPI or a channel on anaconda cloud +* Exceedingly complex in its structure or maintenance needs + +A few examples of packages that may be too technically challenging for us to +find a new maintainer for in the future are below. + ### Example 1: Your package is an out of sync fork of another package repository that is being actively maintained. Sometimes we understand that a package maintainer may need to step down. In From f5b50d91fb83f2ebccc464b0cfee8b3348e5cec3 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Tue, 21 Feb 2023 12:09:54 -0700 Subject: [PATCH 31/31] Remove telemetry statement for now --- about/package-scope.md | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/about/package-scope.md b/about/package-scope.md index 54d69304..1335003b 100644 --- a/about/package-scope.md +++ b/about/package-scope.md @@ -208,25 +208,6 @@ in place to support us finding a new maintainer who can take over you package's maintenance. ``` -### Telemetry & user-informed consent - -Your package should avoid collecting usage analytics. With -that in mind, we understand that package-use data can be invaluable for the -development process. If the package does collect such data, it should do so -by prioritizing user-informed-consent. This means that before any data are -collected, the user understands: - -1. What data are collected -2. How the data are collected. -3. What you plan to do with the data -4. How and where the data are stored - -Once the user is informed of what will be collected and how that data will be handled, stored and used, you can implement `opt-in` consent. `opt-in` means that the user agrees to usage-data collection prior to it being collected (rather than having to opt-out when using your package). - -We will evaluate usage data collected by packages on a case-by-case basis -and reserve the right not to review a package if the data collection is overly -invasive. - ### What if my package seems like its category or domain is out of scope? - pyOpenSci is still developing as a community. If your scientific Python package does not fit into one of the categories or if you have any other