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
## <iclass="fa-solid fa-screwdriver-wrench"></i> Congratulations, you’ve created a package!
15
14
16
-
Creating a Python package is an incredible contribution to the open source ecosystem---don't forget to take a moment to celebrate! But the adventure doesn't have to stop there. If you intend to maintain your package over time and want additional community support and visibility for your work, you can also submit your package to pyOpenSci's open peer review process.
17
15
18
-
> Learn how to create a Python packaging using the [pyOpenSci Python packaging tutorials](https://www.pyopensci.org/python-package-guide/tutorials/intro.html), which will walk you through the process, start to finish.
19
16
20
-
## <iclass="fa-solid fa-circle-chevron-down"></i> Why you should submit to pyOpenSci's open peer review process
17
+
## <iclass="fa-solid fa-rocket"style="color:#a193c6"></i> Submit Your Python Package for pyOpenSci Review
21
18
22
-
pyOpenSci's peer review process is run by a team of dedicated volunteers. It provides the opportunity for package maintainers to have their code, documentation, and infrastructure vetted by both domain and Python experts. Because pyOpenSci invests in recruiting a diverse team of editors and reviewers for different scientific domains and packaging expertise backgrounds, our review process provides an enhanced feedback experience.
19
+
You’ve created a Python package—now what? How do you ensure it follows best practices, is well-documented, and reaches the right audience?
23
20
24
-
In addition, pyOpenSci's partnership with the [Journal of Open Source Software](https://www.pyopensci.org/software-peer-review/partners/joss.html) means that if your package is accepted by pyOpenSci and in scope for JOSS, it will be fast-tracked through JOSS’ review process. This means through a single review, your package can become both a part of the growing pyOpenSci ecosystem of Python packages and also published and citable via JOSS.
21
+
**pyOpenSci’s peer review process** connects you with experts who will help refine your package’s structure, documentation, and usability. Accepted packages become part of our vetted ecosystem, increasing their visibility and credibility. You may also have the opportunity to publish in the [Journal of Open Source Software (JOSS)](https://www.pyopensci.org/software-peer-review/partners/joss.html).
25
22
26
-
pyos-joss-peer-review.png
27
23
24
+
### <iclass="fa-solid fa-circle-chevron-down"style="color:#a193c6"></i> Why submit a Python package for software peer review?
25
+
- <iclass="fa-solid fa-eye"style="color:#81c0aa;"></i> **Visibility & support:** Gain expert feedback on your code, documentation, and packaging.
26
+
- <iclass="fa-solid fa-check-circle"style="color:#81c0aa;"></i> **Quality & best practices:** Ensure your package follows open-source and scientific standards.
27
+
- <iclass="fa-solid fa-book-open"style="color:#81c0aa;"></i> **JOSS publication:** Get the option to publish in the Journal of Open Source Software (JOSS) after acceptance.
28
28
29
-
Read more about the benefits of utilizing pyOpenSci's open peer review process in our [Peer Review Guide](https://www.pyopensci.org/software-peer-review/about/benefits.html).
29
+
<iclass="fa-solid fa-book"style="color:#81c0aa;"></i> **[Learn more about the benefits of our peer review process](https://www.pyopensci.org/software-peer-review/about/benefits.html)**
30
30
31
-
## <iclass="fa-solid fa-magnifying-glass"></i> What pyOS looks for in a package
32
31
33
-
When submitting to pyOpenSci, there are several criteria we use to evaluate if the package is in-scope for our review process:
34
-
1. Package maintenance: we understand that life happens, but we ask that you commit to maintaining your package for at least 1-2 years after the pyOpenSci review process is complete.
35
-
2. Your package should meet all of the initial Editor checks, which include:
36
-
-**Installation:** the package can be installed from a community repository such as PyPI (preferred), and/or a community channel on conda (e.g. conda-forge, bioconda).
37
-
-**Fit:** the package meets criteria for [fit](https://www.pyopensci.org/software-peer-review/about/package-scope.html#what-types-of-packages-does-pyopensci-review) and [overlap](https://www.pyopensci.org/software-peer-review/about/package-scope.html#package-overlap).
38
-
-**Documentation:** the package has sufficient online documentation to allow us to evaluate package function and scope *without installing the package*.
39
-
-**GitHub:** core GitHub repository files are present.
40
-
-**Issue submission documentation:** all of the information is filled out in the `YAML` header of the issue (located at the top of the issue template).
41
-
-**Automated tests:** the package has a testing suite and is tested via a Continuous Integration service.
42
-
-**Repository:** the repository link resolves correctly.
43
-
-**Package overlap:** The package doesn't entirely overlap with the functionality of other packages that have already been submitted to pyOpenSci.
44
-
-**Archive** (JOSS only, may be post-review): The repository DOI resolves correctly.
45
-
-**Version** (JOSS only, may be post-review): Does the release version given match the GitHub release (v1.0.0)?
46
-
-**Survey:** the initial onboarding survey was filled out.
<img src="/images/peer-review/pyos-joss-peer-review.png" alt="A flowchart showing how a package submitted to pyOpenSci can also be fast-tracked for JOSS publication.">
35
+
<figcaption>
36
+
Packages accepted into pyOpenSci can also be published in JOSS through a streamlined process.
37
+
38
+
</figcaption>
39
+
</figure>
40
+
41
+
Read more about the benefits of pyOpenSci's open peer review process in our [Peer Review Guide](https://www.pyopensci.org/software-peer-review/about/benefits.html).
42
+
43
+
<divclass="notice"markdown="1">
44
+
<iclass="fa-solid fa-graduation-cap"style="color:#81c0aa;"></i> **New to Python packaging?**
45
+
46
+
If you're still working on your package and want guidance, check out our
47
+
[**Python packaging tutorials**](https://www.pyopensci.org/python-package-guide/tutorials/intro.html). Our tutorials provide step-by-step guidance that walks you through the process of creating your first package from start to finish.
48
+
</div>
49
+
50
+
51
+
## <iclass="fa-solid fa-list-check"style="color:#81c0aa;"></i> Step-by-step guide to submitting your package for review
52
+
53
+
Our **open peer review process** happens through GitHub issues in the
54
+
[**pyOpenSci software submission repository**](https://github.com/pyopensci/software-submission). This ensures a **transparent and constructive** review process focused on improving:
55
+
56
+
-**Package structure & quality:** Ensure best practices in documentation, testing, and maintenance.
57
+
-**Usability & reproducibility:** Improve user experience and scientific reliability.
58
+
-**Visibility:** Join a vetted ecosystem of high-quality, community-endorsed Python tools.
59
+
60
+
Follow the steps below to submit your package for review.
61
+
62
+
### <iclass="fa-solid fa-magnifying-glass"style="color:#a193c6"></i> 1. Check if your package is in pyOpenSci's scope
63
+
64
+
Before submitting, ensure your package fits within [**pyOpenSci’s peer review scope**](https://www.pyopensci.org/software-peer-review/about/package-scope.html).
65
+
66
+
Your package is a good fit if:
67
+
68
+
-**Supports a scientific application:** Examples include data retrieval, processing, and visualization.
-**Does not significantly overlap:** Your package should provide new functionality rather than duplicate an existing package in the ecosystem.
71
+
72
+
73
+
#### <iclass="fa-solid fa-circle-question"style="color:#81c0aa;"></i> Unsure if your package is in scope?
74
+
75
+
If you're unsure, **submit a pre-submission inquiry** to get feedback from our editorial team before starting the full review process.
76
+
77
+
🔗 **[Check how to submit a pre-submission inquiry](#3-submit-your-package-for-review-or-submit-a-presubmission-inquiry)**
78
+
*(Jump to the next section for full details on submitting a pre-submission inquiry.)*
79
+
80
+
## TODO: move this somewhere better.
81
+
📖 Read the Author Guide – A detailed walkthrough of the review process
82
+
83
+
### <iclass="fa-solid fa-tools"style="color:#a193c6"></i> 2. Check if your package meets our pre-review requirements
84
+
85
+
Once you have determined your package is in scope, check that it meets [**pyOpenSci’s pre-review requirements**](https://www.pyopensci.org/software-peer-review/how-to/pre-review-checks.html). Our Editor in Chief will review your package against these criteria before the review formally begins.
47
86
48
-
You can get more details about each of these criteria in our [Authors Guide](https://www.pyopensci.org/software-peer-review/how-to/author-guide.html).
87
+
#### <iclass="fa-solid fa-list"style="color:#81c0aa;"></i> Summary of python package pre-review requirements
88
+
89
+
Our requirements represent the basic elements that every Python package should have to be both usable and maintainable.
90
+
91
+
- <iclass="fa-solid fa-box"style="color:#81c0aa;"></i> **Be installable** – Available on [PyPI](https://pypi.org/) (preferred) or a Conda channel (e.g., conda-forge, bioconda).
92
+
- <iclass="fa-solid fa-book"style="color:#81c0aa;"></i> **Have clear documentation** – Includes user guides, tutorials, and API documentation.
93
+
- <iclass="fa-solid fa-vial"style="color:#81c0aa;"></i> **Include automated testing & CI** – A test suite with continuous integration setup.
94
+
- <iclass="fa-brands fa-github"style="color:#81c0aa;"></i> **Contain key repository files** – Includes `README.md`, `LICENSE`, `CONTRIBUTING.md`, and a code of conduct.
95
+
96
+
97
+
<divclass="notice notice--success"markdown="1">
98
+
99
+
### <iclass="fa-solid fa-graduation-cap"style="color:#81c0aa;"></i> Need help preparing your package?
100
+
Check out our [**<iclass="fa-solid fa-link"></i> Python packaging guide**](https://www.pyopensci.org/python-package-guide/) for best practices on packaging, testing, and infrastructure setup.
101
+
102
+
</div>
103
+
104
+
105
+
### <iclass="fa-brands fa-github-alt"style="color:#a193c6"></i> 3. Submit your package for review or submit a presubmission inquiry
106
+
107
+
Once your have determined that you package it in scope and meets our core packaging requirements, it's time to submit your package for peer review. To submit a package for review, you need to **open an issue** in pyOpenSci’s software submission repository. Follow these steps:
108
+
109
+
1.**Go to our submission repository**: [pyOpenSci/software-submission](https://github.com/pyOpenSci/software-submission/issues/new/choose)
110
+
2.**Click on the Issues tab**
111
+
3.**Select the appropriate issue template**
112
+
4.**Complete the issue form** and submit it
49
113
50
-
## <iclass="fa-brands fa-github-alt"></i> Choosing the correct issue for submission via GitHub
<img src="/images/website-pages/how-to-submit-package/issue-selection-screen.png" style="max-width:100%" alt="Screenshot of the pyOpenSci issue selection screen on GitHub, with three options: Help Request, Presubmission Inquiry, and Submit Software for Review.">
54
-
</a>
115
+
<img src="/images/peer-review/peer-review-submit-issue.gif" style="max-width:100%" alt="Animated gif showing how to find the GitHub issue submission process for peer review.">
55
116
<figcaption>
56
-
There are three options when you reach the pyOpenSci issue selection screen.
117
+
More....
57
118
</figcaption>
58
119
</figure>
120
+
Once submitted, our editors will review your issue and guide you through the next steps.
59
121
60
-
### Help request
61
122
62
-
If you need some help getting your package ready for review, you can submit a help request here and someone will be assigned to help you out. This is a great way to get guidance on topics like [continuous integration](https://www.pyopensci.org/python-package-guide/tests/tests-ci.html#run-tests-with-continuous-integration), [testing](https://www.pyopensci.org/python-package-guide/#tests), and [full documentation](https://www.pyopensci.org/python-package-guide/#documentation), all of which are required for a package to be accepted into [the pyOpenSci ecosystem](https://www.pyopensci.org/python-packages.html). You can also learn more about each of these processes in [the pyOpenSci Package Guide](https://www.pyopensci.org/python-package-guide/).
123
+
### <iclass="fa-solid fa-list-check"style="color:#81c0aa;"></i> Choose the correct submission type
63
124
64
-
### Pre-submission inquiry
125
+
There are **three submission types** that you can select from:
65
126
66
-
If you're not sure if your package falls within the [scope of packages pyOpenSci accepts](https://www.pyopensci.org/software-peer-review/about/package-scope.html), you can submit a pre-submission inquiry. A pre-submission inquiry opens up a dialogue between you and the pyOpenSci editorial team to determine whether or not your package would be a good fit for a full peer review.
127
+
-**<iclass="fa-solid fa-hand-holding-heart"style="color:#81c0aa;"></i> Help request:** If you need guidance on testing, documentation, or packaging best practices, submit a help request. Our editorial team will make sure that you get the help that you need with your Python package!
128
+
-[**<iclass="fa-solid fa-magnifying-glass"style="color:#81c0aa;"></i> Pre-submission inquiry:**](https://github.com/pyOpenSci/software-submission/issues/new?template=presubmission-inquiry.md) If you are unsure if your package [fits our scope](https://www.pyopensci.org/software-peer-review/about/package-scope.html), you can submit a pre-submission inquiry to get input from our editorial team before submitting.
129
+
-**<iclass="fa-solid fa-check"style="color:#81c0aa;"></i> Full submission:** If you are ready to submit a review, then use this option to submit a full submission for review which will kick-off the editorial peer review process.
67
130
68
-
> A note on data visualization packages: all data visualization packages need to go through the pre-submission inquiry process.
131
+
**<iclass="fa-solid fa-link"></i> [Click here to to our GitHub issue submission page](https://github.com/pyOpenSci/software-submission/issues/new/choose)**
69
132
70
-
### Submit Software for Review
71
-
72
-
When you file an issue using our [Submit Software for Review](https://github.com/pyOpenSci/software-submission/issues/new?assignees=&labels=0%2Fpre-review-checks%2C+New+Submission%21&projects=&template=submit-software-for-review.md&title=) template, you officially kick-off the pyOpenSci open peer review process. Read on for a detailed, step-by-step guide for completing the process!
73
-
74
-
## <iclass="fa-solid fa-heart"></i> Breaking down the pyOpenSci Submit Software for review issue template
<img src="/images/website-pages/how-to-submit-package/submit-software-ui.png" style="max-width:100%" alt="Screenshot of the pyOpenSci Submit Software for Review issue on GitHub.">
<img src="/images/peer-review/pyopensci-software-review-issue-selection.png" style="max-width:100%" alt="Screenshot of the pyOpenSci issue selection screen on GitHub, with three options: Help Request, Presubmission Inquiry, and Submit Software for Review.">
136
+
<figcaption>
137
+
Above are the three issue templates that you can select from when submitting a package for review to pyOpenSci. Select the issue that best fits your current situation.
138
+
</figcaption>
79
139
</figure>
80
140
141
+
**Note:** All **data visualization packages** must go through the pre-submission inquiry process before being considered for review.
142
+
{: .notice .notice--info }
143
+
144
+
### Help request
145
+
146
+
If you need help getting your package ready for review, you can submit a help request here, and someone will be assigned to help you. This is a great way to get guidance on topics like [continuous integration](https://www.pyopensci.org/python-package-guide/tests/tests-ci.html#run-tests-with-continuous-integration), [testing](https://www.pyopensci.org/python-package-guide/#tests), and [full documentation](https://www.pyopensci.org/python-package-guide/#documentation), all of which are required for a package to be accepted into [the pyOpenSci ecosystem](https://www.pyopensci.org/python-packages.html). You can also learn more about each of these processes in [the pyOpenSci Package Guide](https://www.pyopensci.org/python-package-guide/).
147
+
148
+
149
+
150
+
*****
81
151
### Overview of the GitHub issue UI
82
152
83
153
GitHub issue templates are an efficient way to standardize a recurring process, and makes it easier for our editorial board to both evaluate a package as well as identify areas where they need more information. When using an issue template, it's important to keep the formatting the way that it's presented. This means:
0 commit comments