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.

Teams with access to this repository:

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.

Individuals and teams with access to this repository include:

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.

Teams with access to this repository:

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.

Teams with access to this repository:

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.

Teams with access to this repository:

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.

Teams with access to this repository:

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.

The pyOpenSci Executive Council has access to this repo.

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.

Teams with access to this repository:

peer-review-metrics repository#

The pyOpenSci peer review metrics repository contains the code for a dashboard created using MyST Markdown. Myst-md is a community developed tool that makes it easier for scientists to create fully reproducible (and interactive) workflows and reports that are easily shared.

Only pyOpenSci GitHub organization admins have direct access to modify this repository.

lessons repository#

pyOpenSci is devoted to building diverse, supportive community around the Python open source tools that drive open science. The lessons repository contains the source files for all of the pyOpenSci tutorials.

The pyOpenSci Lesson Development Team has access to this repo.