Submit Your Python Package for Peer Review - Learn More!

pyOpenSci GitHub repositories#

pyOpenSci manages multiple GitHub repositories to support various community activities. Below is a description of each repository.

Software-review repository#

The software-review repository is where community package submissions are peer-reviewed. All submissions are made through GitHub Issues. Learn more about our peer review process here.

Important

Important: If a pyOpenSci core member identifies an issue with the review submission template, consult both the editorial team and core team before making any changes. This template’s data are processed by a Python workflow, and even small modifications could disrupt the language processing.

Software-peer-review guidebook repository#

This repository hosts our software peer review guidebook, which documents the processes and guidelines for authors, editors, the Editor in Chief, and the peer review triage team as they manage our open peer review process. It also details our peer review policies, partnerships, and the templates used in the review process.

Python-package-guide repository#

The python-package-guide repository contains our community-developed guidelines and tutorials on Python packaging. These resources are beginner-friendly and reflect Python packaging best practices.

pyosMeta repository#

The pyosMeta repository contains a Python package published on PyPI that we use to track our package review and contributor data. This data is used in a GitHub action to update our website.

pyopensci.github.io repository#

This repository contains code and content that builds and publishes our pyOpenSci website. The website, pyOpenSci, is hosted on GitHub and uses the Jekyll Minimal Mistakes theme. The Python packages page, contributor page, and peer review team page are all updated automatically using a GitHub action workflow that is supported by the pyosMeta Python package discussed above. The workflow runs every other week but can be triggered manually as a workflow dispatch.

Critical CI workflows in this repository#

The contributor workflow action is a custom GitHub action that is used to update the following website pages:

  • contributor page

  • package listing page

  • editorial, advisory council, and executive council listing

It runs as a cron job every other week but also can be run manually as a workflow dispatch. If you need to update our package listing or contributor list on the fly, please run this action.

The action will:

  1. Parse through all of our accepted pyOpenSci packages.

  2. Collect package names, authors, reviewers, and editors.

  3. Collect metadata for the package authors, reviewers, and editors using the GitHub (REST) API.

  4. Create 2 output YAML files discussed below.

The YAML output files are then used to populate content on the website.

Metadata stored in this repository#

  1. Packages.yml: Updates the Python Packages page by parsing reviews from software-review repository issues.

  2. Contributors.yml: Updates the Our Community page by parsing data from all organization repositories.

pyOpenSci Sphinx theme#

Platform: Sphinx book template that builds on top of the pydata_sphinx_theme

All of our pyOpenSci Sphinx books (handbook, packaging guide, software review guide) have been customized to match our pyOpenSci branding. This repo contains the start of a Sphinx theme that will incorporate all of our branding, so we do not have to manually apply the branding and update it individually in each repo. Instead, we can update branding in the theme, and it will be applied across all of our repositories that use the theme.

Creating a theme was inspired by the 2i2c Sphinx theme.

Handbook repository#

Platform: Sphinx book running the pydata_sphinx_theme

This is where we store our organization governance, code of conduct, and processes around how we operate as an organization.

pyosPackage repository#

The pyosPackage repo contains an example pure-Python package that complements our package guide & tutorials. We will build this package example out over time for folks that just want to see a working package without creating one themselves.