Skip to content

Commit e058759

Browse files
authored
add: how to submit a package for review
2 parents d08ed53 + 749881b commit e058759

11 files changed

+258
-2
lines changed

_data/navigation.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ main:
66
- title: "About peer review"
77
icon:
88
url: "/about-peer-review/index.html"
9+
- title: "How to submit a package"
10+
icon:
11+
url: "/how-to-submit-a-package-to-pyopensci.html"
912
- title: "Community partners"
1013
icon:
1114
url: "/partners.html"

_includes/head/custom.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
<!-- custom head content-->
22
<link rel="icon" href="/images/favicon.ico" type="image/x-icon">
3+
<link rel="preconnect" href="https://fonts.googleapis.com">
4+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
5+
<link href="https://fonts.googleapis.com/css2?family=Itim&family=Poppins:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet" async fetchpriority="high">
6+
<link href="https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,opsz,wght@0,6..12,200..1000;1,6..12,200..1000&display=swap" rel="stylesheet">
37
<!-- Matomo -->
48
<script type="text/javascript">
59
var _paq = window._paq = window._paq || [];

_pages/how-to-submit-package.md

Lines changed: 237 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,237 @@
1+
---
2+
layout: single
3+
title: "How to submit a Python package to pyOpenSci for review"
4+
header:
5+
overlay_image: images/header.png
6+
overlay_filter: 0.8
7+
author_profile: false
8+
published: true
9+
site-map: true
10+
permalink: /how-to-submit-a-package-to-pyopensci.html
11+
classes: wide
12+
toc: true
13+
---
14+
15+
## <i class="fa-solid fa-rocket" style="color:#a193c6"></i> Submit your Python package for review
16+
17+
Awesome, you’ve built a Python package! How do you ensure it follows best practices and gets seen by the broader Python community?
18+
19+
**pyOpenSci’s peer review process** connects you with community reviewers and editors who will help you refine your package's structure, documentation, maintainability, and usability. pyOpenSci accepted packages:
20+
* Join a [vetted ecosystem]({{ '/python-packages.html' | relative_url }}) of high-quality scientific tools
21+
* Benefit from increased community visibility
22+
* Can be fast-tracked for publication in [Journal of Open Source Software (JOSS)](https://www.pyopensci.org/software-peer-review/partners/joss.html) through our end-to-end review.
23+
24+
**[<i class="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)**{: .btn .btn--success}
25+
<!--
26+
<figure>
27+
<source srcset="{{ '/images/peer-review/pyos-joss-peer-review.webp' | relative_url }}" type="image/webp">
28+
<img src="{{ '/images/peer-review/pyos-joss-peer-review.png' | relative_url }}" alt="A flowchart showing how a package submitted to pyOpenSci can also be fast-tracked for JOSS publication.">
29+
<figcaption>
30+
Packages accepted into pyOpenSci can also be published in JOSS through a streamlined process.
31+
</figcaption>
32+
</figure> -->
33+
34+
<div class="notice notice--info" markdown="1">
35+
36+
Need help with your Python package?
37+
{: .header }
38+
39+
If you need help getting your package ready for review, you can submit a help request in our software-submission repository.
40+
41+
You can also check out the [pyOpenSci Package Guide](https://www.pyopensci.org/python-package-guide/) which contains both
42+
43+
* [Beginning-to-end Python packaging tutorials](https://www.pyopensci.org/python-package-guide/tutorials/intro.html)
44+
45+
and overviews of:
46+
47+
* [continuous integration](https://www.pyopensci.org/python-package-guide/tests/tests-ci.html#run-tests-with-continuous-integration),
48+
* [testing](https://www.pyopensci.org/python-package-guide/#tests), and
49+
* [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).
50+
51+
</div>
52+
53+
## <i class="fa-solid fa-list-check" style="color:#81c0aa;"></i> Step-by-step guide to submitting your package for review
54+
55+
Our **open peer review process** happens on GitHub using structured issues in the [**pyOpenSci software submission repository**](https://github.com/pyopensci/software-submission). Our review process is **open, constructive, and focused on improving your software for others to use**.
56+
57+
58+
**[<i class="fa-solid fa-book"></i> Read our Author Guide for an overview of the process](https://www.pyopensci.org/software-peer-review/how-to/author-guide.html)**{: .btn .btn--success}
59+
60+
### <i class="fa-solid fa-hourglass" style="color:#81c0aa;"></i> What happens after you submit your package?
61+
62+
Once you submit your package, our **Editor-in-Chief** will review it to confirm:
63+
- <i class="fa-solid fa-check" style="color:#81c0aa;"></i> It fits within **pyOpenSci’s scope**
64+
- <i class="fa-solid fa-check" style="color:#81c0aa;"></i> It meets **infrastructure and documentation requirements**
65+
66+
67+
### <i class="fa-solid fa-calendar-days" style="color:#81c0aa;"></i> Expected timeline
68+
The timeline of your review depends upon a few things:
69+
70+
* Whether we have an editor on board (or need to find one) to lead a review of your package
71+
* How long it takes your editor to find reviewers
72+
* How much work your package needs before the review begins.
73+
74+
However, once we find editors and reviewers for your package, you can expect a timeline like this:
75+
76+
- <i class="fa-solid fa-clock" style="color:#81c0aa;"></i> **Initial Pre-review checks:** ~2 weeks (varies based on submission volume)
77+
- <i class="fa-solid fa-users" style="color:#81c0aa;"></i> **Finding editors and reviews to lead the review peer review:** ~2-4 weeks (depends on package complexity and availability)
78+
- <i class="fa-solid fa-users" style="color:#81c0aa;"></i> **Running the review:** 4-8+ weeks. This depends on the amount of reviewer feedback you get and how long it takes for you to respond to that feedback.
79+
80+
📖 **Read the full review process in our** [Peer Review Guide](https://www.pyopensci.org/software-peer-review/how-to/author-guide.html).
81+
82+
### <i class="fa-solid fa-magnifying-glass" style="color:#a193c6"></i> 1. Check if your package is in pyOpenSci's scope
83+
84+
Before submitting your package for review, make sure that it fits within [**pyOpenSci’s peer review scope**](https://www.pyopensci.org/software-peer-review/about/package-scope.html).
85+
Our package scope focuses on the scientific domains and areas in which we review.
86+
87+
If you are unsure if your package is in scope, [**🔗 submit a pre-submission inquiry**](#submission-type) to get feedback from our editorial team and ask questions.
88+
89+
### <i class="fa-brands fa-github-alt" style="color:#a193c6"></i> 2. Check that your package meets are pre-review requirements
90+
91+
It's also a good idea to check that your package meets [**pyOpenSci’s minimum Python package requirements**](https://www.pyopensci.org/software-peer-review/how-to/editor-in-chief-guide.html#editor-checklist-template). So check that your package meets those criteria before you submit.
92+
The Editor in Chief will check your package against these criteria before the review begins.
93+
94+
If you have any questions or need help getting your package up to pyOpenSci standards, we are here to help. Submit a help-request issue in our software-submission repo or ask a question in our Discourse.
95+
96+
<div class="notice" markdown="1">
97+
Our packaging guide covers the core criteria which include:
98+
* <i class="fa-solid fa-box" style="color:#81c0aa;"></i> **Your package is installable:** through [PyPI](https://www.pyopensci.org/python-package-guide/package-structure-code/publish-python-package-pypi-conda.html#what-is-pypi) (preferred) and/or a [Conda channel](https://www.pyopensci.org/python-package-guide/package-structure-code/publish-python-package-pypi-conda.html#what-is-conda-and-anaconda-org) (e.g., conda-forge, bioconda).
99+
* <i class="fa-solid fa-book" style="color:#81c0aa;"></i> **It has clear documentation:** including user guides, tutorials, and API documentation.
100+
* <i class="fa-solid fa-vial" style="color:#81c0aa;"></i> **It has automated [testing](https://www.pyopensci.org/python-package-guide/tests/write-tests.html) & [Continuous Integration (CI)](https://www.pyopensci.org/python-package-guide/tests/tests-ci.html) setup:**
101+
* <i class="fa-brands fa-github" style="color:#81c0aa;"></i> **It has core [documentation files](https://www.pyopensci.org/python-package-guide/documentation/repository-files/intro.html):** Including `README.md`, `LICENSE`, `CONTRIBUTING.md`, and a Code of Conduct file.
102+
</div>
103+
104+
105+
### <i class="fa-brands fa-github-alt" style="color:#a193c6"></i> 3. Submit your package for review
106+
107+
Once you have determined that your package is in scope and meets our core packaging requirements, it's time to submit it for review:
108+
109+
1. **Go to our software submission GitHub repository**: [pyOpenSci/software-submission](https://github.com/pyOpenSci/software-submission/issues/new/choose)
110+
2. **Click on the Issues tab**
111+
3. <a id="submission-type"></a> <i class="fa-solid fa-list-check" style="color:#81c0aa;"></i> **Select the appropriate issue template**
112+
4. **Complete the issue form** and submit it
113+
114+
**<i class="fa-solid fa-link"></i> [Submit your package here](https://github.com/pyOpenSci/software-submission/issues/new/choose)**{: .btn .btn--success}
115+
116+
<div class="notice notice--success" markdown="1">
117+
There are **three templates in our Issue Submission repo**:
118+
119+
- **<i class="fa-solid fa-hand-holding-heart" style="color:#81c0aa;"></i> Help request:** Need guidance on testing, docs, or packaging? Submit a help request, and our editorial team will assist.
120+
- [**<i class="fa-solid fa-magnifying-glass" style="color:#81c0aa;"></i> Pre-submission inquiry:**](https://github.com/pyOpenSci/software-submission/issues/new?template=presubmission-inquiry.md) Unsure if your package [fits our scope](https://www.pyopensci.org/software-peer-review/about/package-scope.html)? Submit an inquiry for feedback before review.
121+
- **<i class="fa-solid fa-check" style="color:#81c0aa;"></i> Full submission:** Ready for peer review? Submit your package to kick off the process.
122+
123+
124+
<figure>
125+
<source srcset="{{ '/images/peer-review/pyopensci-software-review-issue-selection.webp' | relative_url }}" type="image/webp">
126+
<img src="{{ '/images/peer-review/pyopensci-software-review-issue-selection.png' | relative_url }}" 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.">
127+
<figcaption>
128+
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.
129+
</figcaption>
130+
</figure>
131+
</div>
132+
133+
134+
<figure>
135+
<img src="{{ '/images/peer-review/peer-review-submit-issue.gif' | relative_url }}" style="max-width:100%" alt="Animated gif showing how to find the GitHub issue submission process for peer review.">
136+
<figcaption>
137+
How to open a new review submission in our GitHub repository.
138+
</figcaption>
139+
</figure>
140+
141+
142+
#### <i class="fa-solid fa-check" style="color:#81c0aa;"></i> Guidelines for filling out the review issue template
143+
144+
When you fill out the review template, please consider the following:
145+
146+
##### Basic template criteria
147+
* **Complete all sections of the template.** If you have questions about fields, you can ask about them in the review issue.
148+
* **Do not modify existing formatting:** Please do not modify the template structure by adding elements to the template fields such as bold, italics, etc.
149+
* **Submit your issue only when fully completed:** If you can, try to avoid submitting an issue and then continuously editing it. If you'd like to work on the issue over time, consider forking our repository and working on the issue in your fork before submitting it as an option.
150+
* **If you made a pre-submission inquiry**, paste the link to the corresponding issue in your issue submission to link your submission request to the pre-submission discussion.
151+
152+
##### Long term maintenance and code of conduct
153+
154+
To be considered for review, you must agree to the following when filling our the review submission:
155+
1. **Follow our Code of Conduct:** Ensure respectful and constructive communication during and after the review.
156+
2. **Commit to maintaining your package for at least 2 years maintenance:** Package maintenance is on area that distinguishes pyOpenSci from JOSS. If your primary goal is publication rather than ongoing package maintenance, consider submitting directly to [JOSS](https://joss.theoj.org/) instead.
157+
158+
```markdown
159+
## Code of Conduct & Commitment to Maintain Package
160+
161+
- [ ] I agree to abide by [pyOpenSci's Code of Conduct][PyOpenSciCodeOfConduct] during the review process and in maintaining my package after should it be accepted.
162+
- [ ] I have read and will commit to package maintenance after the review as per the [pyOpenSci Policies Guidelines][Commitment].
163+
```
164+
165+
##### Our partnerships
166+
167+
Becoming published or affiliated with one of our partners is optional.
168+
169+
<figure>
170+
<source srcset="{{ '/images/peer-review/pyos-partnerships-peer-review.webp' | relative_url }}" type="image/webp">
171+
<img src="{{ '/images/peer-review/pyos-partnerships-peer-review.png' | relative_url }}" alt="A flowchart showing how a package submitted to pyOpenSci can also be fast-tracked for JOSS publication." style="width: 70%; display: block; margin: 0 auto;">
172+
<figcaption>
173+
Packages accepted into pyOpenSci can also be published in JOSS through a streamlined process.
174+
175+
</figcaption>
176+
</figure>
177+
178+
* **If you are interested in a fast track review through JOSS, be sure to check the JOSS box** JOSS will accept our review as theirs and only review your paper.md file.
179+
* **Community Affiliation:** If you are interested in becoming affiliated with a partner community like [Astropy](https://www.pyopensci.org/software-peer-review/partners/astropy.html), be sure to click the community partner. Learn more about [community affiliation through pyOpenSci's peer review process here](https://www.pyopensci.org/software-peer-review/partners/scientific-communities.html).
180+
181+
```markdown
182+
## Community Partnerships
183+
184+
If your package is associated with an existing community please check below:
185+
186+
- [ ] Astropy:[My package adheres to Astropy community standards](https://www.pyopensci.org/software-peer-review/partners/astropy.html)
187+
- [ ] Pangeo: My package adheres to the [Pangeo standards listed in the pyOpenSci peer review guidebook][PangeoCollaboration]
188+
```
189+
190+
##### Please fill out our survey
191+
192+
Completing the [pyOpenSci pre-review survey](https://forms.gle/F9mou7S3jhe8DMJ16) is a huge help to our team of volunteers, future package authors, and pyOpenSci as an organization. It helps us track submissions as well as continuously improve our peer review process.
193+
194+
##### <i class="fa-solid fa-eye-slash" style="color:#81c0aa;"></i> Template sections that you can ignore
195+
196+
Some template sections are **for editors only** and should be left blank. These include:
197+
198+
- **Editorial assignments:** "EiC," "Editor," "Reviewer 1," "Reviewer 2"
199+
- **JOSS-specific fields:** "JOSS DOI," "Version accepted," "Date accepted"
200+
201+
```yaml
202+
# All of the fields below will be filled out by out editorial team
203+
EiC: TBD
204+
Editor: TBD
205+
Reviewer 1: TBD
206+
Reviewer 2: TBD
207+
Archive: TBD
208+
JOSS DOI: TBD
209+
Version accepted: TBD
210+
Date accepted (month/day/year): TBD
211+
```
212+
213+
<!-- <div class="notice notice--info" markdown="1">
214+
<i class="fa-solid fa-circle-exclamation" style="color:#81c0aa;"></i> **Why does filling out our review template matter?**
215+
Our peer review workflow relies on scripts to process submission data. If the template structure is modified, it will break our automated processes!
216+
</div> -->
217+
218+
<div class="notice notice--success" markdown="1">
219+
220+
<i class="fa-solid fa-graduation-cap" style="color:#81c0aa;"></i> Need help?
221+
{: .header }
222+
223+
Check out our [**<i class="fa-solid fa-link"></i> Python packaging guide**](https://www.pyopensci.org/python-package-guide/) for best practices on packaging, testing, and infrastructure setup.
224+
225+
</div>
226+
227+
Once you're ready, **submit your issue**, and our editors will take it from there! 🚀
228+
229+
<div class="notice notice--info" markdown="1">
230+
## <i class="fa-regular fa-comments"></i> Connect with us!
231+
232+
If you found this how-to guide useful, or if you have suggestions for improving it, we'd love to hear from you! Reach out to us on:
233+
234+
* [BlueSky](https://bsky.app/profile/pyopensci.org)
235+
* [Fosstodon](https://fosstodon.org/@pyOpenSci)
236+
* [LinkedIn](https://www.linkedin.com/company/pyopensci)
237+
</div>

_sass/minimal-mistakes/_notices.scss

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,12 @@
8181
@include notice($light-gray);
8282
}
8383

84+
.notice .header {
85+
font-size: 1.5rem!important;
86+
font-weight: 700;
87+
margin-bottom: 1rem;
88+
}
89+
8490
/* Primary notice */
8591

8692
.notice--primary {
@@ -149,10 +155,14 @@
149155
.notice {
150156
border-radius: 15px !important;
151157
box-shadow: 0 1px 1px rgba(189, 193, 196, 0.25) !important;
152-
padding: 3em;
158+
padding: 3rem;
159+
160+
font-size: 1.7rem !important;
161+
font-weight: 700;
162+
margin-bottom: 1rem;
153163

154164
p, li {
155-
font-size: 1.1em!important;
165+
font-size: 1.1rem!important;
156166
}
157167

158168
h2, h3 {
@@ -184,6 +194,8 @@
184194
}
185195
}
186196
}
197+
198+
187199
/* max 480 px */
188200
@media screen and (max-width: 480px) {
189201
.notice {
Loading
Loading
Binary file not shown.
54.1 KB
Loading
16.8 KB
Binary file not shown.
231 KB
Loading
40 KB
Binary file not shown.

0 commit comments

Comments
 (0)