Submit your Python package for review
Awesome, you’ve built a Python package! How do you ensure it follows best practices and gets seen by the broader Python community?
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:
- Join a vetted ecosystem of high-quality scientific tools
- Benefit from increased community visibility
- Can be fast-tracked for publication in Journal of Open Source Software (JOSS) through our end-to-end review.
Learn more about the benefits of our peer review process <!–

–>
Need help with your Python package?
If you need help getting your package ready for review, you can submit a help request in our software-submission repository.
You can also check out the pyOpenSci Package Guide which contains both
and overviews of:
- continuous integration,
- testing, and
- documentation, all of which are required for a package to be accepted into the pyOpenSci ecosystem.
Step-by-step guide to submitting your package for review
Our open peer review process happens on GitHub using structured issues in the pyOpenSci software submission repository. Our review process is open, constructive, and focused on improving your software for others to use.
Read our Author Guide for an overview of the process
What happens after you submit your package?
Once you submit your package, our Editor-in-Chief will review it to confirm:
- It fits within pyOpenSci’s scope
- It meets infrastructure and documentation requirements
Expected timeline
The timeline of your review depends upon a few things:
- Whether we have an editor on board (or need to find one) to lead a review of your package
- How long it takes your editor to find reviewers
- How much work your package needs before the review begins.
However, once we find editors and reviewers for your package, you can expect a timeline like this:
- Initial Pre-review checks: ~2 weeks (varies based on submission volume)
- Finding editors and reviews to lead the review peer review: ~2-4 weeks (depends on package complexity and availability)
- 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.
📖 Read the full review process in our Peer Review Guide.
1. Check if your package is in pyOpenSci’s scope
Before submitting your package for review, make sure that it fits within pyOpenSci’s peer review scope. Our package scope focuses on the scientific domains and areas in which we review.
If you are unsure if your package is in scope, 🔗 submit a pre-submission inquiry to get feedback from our editorial team and ask questions.
2. Check that your package meets are pre-review requirements
It’s also a good idea to check that your package meets pyOpenSci’s minimum Python package requirements. So check that your package meets those criteria before you submit. The Editor in Chief will check your package against these criteria before the review begins.
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.
Our packaging guide covers the core criteria which include:
- Your package is installable: through PyPI (preferred) and/or a Conda channel (e.g., conda-forge, bioconda).
- It has clear documentation: including user guides, tutorials, and API documentation.
- It has automated testing & Continuous Integration (CI) setup:
- It has core documentation files: Including
README.md
,LICENSE
,CONTRIBUTING.md
, and a Code of Conduct file.
3. Submit your package for review
Once you have determined that your package is in scope and meets our core packaging requirements, it’s time to submit it for review:
- Go to our software submission GitHub repository: pyOpenSci/software-submission
- Click on the Issues tab
- Select the appropriate issue template
- Complete the issue form and submit it
There are three templates in our Issue Submission repo:
- Help request: Need guidance on testing, docs, or packaging? Submit a help request, and our editorial team will assist.
- Pre-submission inquiry: Unsure if your package fits our scope? Submit an inquiry for feedback before review.
- Full submission: Ready for peer review? Submit your package to kick off the process.


Guidelines for filling out the review issue template
When you fill out the review template, please consider the following:
Basic template criteria
- Complete all sections of the template. If you have questions about fields, you can ask about them in the review issue.
- Do not modify existing formatting: Please do not modify the template structure by adding elements to the template fields such as bold, italics, etc.
- 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.
- 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.
Long term maintenance and code of conduct
To be considered for review, you must agree to the following when filling our the review submission:
- Follow our Code of Conduct: Ensure respectful and constructive communication during and after the review.
- 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 instead.
## Code of Conduct & Commitment to Maintain Package
- [ ] 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.
- [ ] I have read and will commit to package maintenance after the review as per the [pyOpenSci Policies Guidelines][Commitment].
Our partnerships
Becoming published or affiliated with one of our partners is optional.

- 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.
- Community Affiliation: If you are interested in becoming affiliated with a partner community like Astropy, be sure to click the community partner. Learn more about community affiliation through pyOpenSci’s peer review process here.
## Community Partnerships
If your package is associated with an existing community please check below:
- [ ] Astropy:[My package adheres to Astropy community standards](https://www.pyopensci.org/software-peer-review/partners/astropy.html)
- [ ] Pangeo: My package adheres to the [Pangeo standards listed in the pyOpenSci peer review guidebook][PangeoCollaboration]
Please fill out our survey
Completing the pyOpenSci pre-review survey 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.
Template sections that you can ignore
Some template sections are for editors only and should be left blank. These include:
- Editorial assignments: “EiC,” “Editor,” “Reviewer 1,” “Reviewer 2”
- JOSS-specific fields: “JOSS DOI,” “Version accepted,” “Date accepted”
# All of the fields below will be filled out by out editorial team
EiC: TBD
Editor: TBD
Reviewer 1: TBD
Reviewer 2: TBD
Archive: TBD
JOSS DOI: TBD
Version accepted: TBD
Date accepted (month/day/year): TBD
Need help?
Check out our Python packaging guide for best practices on packaging, testing, and infrastructure setup.
Once you’re ready, submit your issue, and our editors will take it from there! 🚀