Skip to content

pyosmeta

PyPI License CITE DOI

Run pyos meta tests codecov Update Contribs & reviewers Publish to PyPI .github/workflows/test-run-script.yml

Description

pyosmeta provides the tools and scripts used to manage pyOpenSci's contributor and peer review metadata. This repo contains several modules and several CLI scripts, including:

  • parse-history
  • update-contributors
  • update-reviews
  • update-review-teams

Since pyOpenSci uses this tool for its website, we expect this package to have infrequent releases.

How the metadata workflow works

The canonical YAML files live in the pyopensci.github.io website repo under data/:

A weekly (or manually dispatched) GitHub Action on the website repo (update-contribs-reviews.yml) checks out that repo, installs pyosmeta, runs the three CLIs below in order, then opens a PR with updates to those two files.

flowchart LR
  subgraph website["pyopensci.github.io (website repo)"]
    direction TB
    contribYml["data/contributors.yml"]
    pkgYml["data/packages.yml"]
    contribYml ~~~ pkgYml
  end

  subgraph pyosMeta["pyosMeta package"]
    direction TB
    updateContribs["update-contributors"]
    updateReviews["update-reviews"]
    pickle1["all_contribs.pickle"]
    pickle2["all_reviews.pickle"]
    updateTeams["update-review-teams"]
  end

  website ~~~ pyosMeta

  contribYml -->|"Read existing yml"| updateContribs
  pkgYml -->|"Read existing yml"| updateReviews
  updateContribs --> pickle1 --> updateTeams
  updateReviews --> pickle2 --> updateTeams
  updateTeams -->|"Update yml file"| contribYml
  updateTeams -->|"Update yml file"| pkgYml
Loading

What each step does

  1. update-contributors — Loads the published contributors.yml, finds new people from pyOpenSci .all-contributorsrc files, and (with --update) refreshes profile fields from GitHub. If a person already has a name in the YAML, that value is kept and not overwritten from GitHub.
  2. update-reviews — Parses accepted review issues, fetches fresh GitHub metrics per package, then gap-fills any missing gh_meta from the existing packages.yml so previously published metrics are not deleted when an API call fails.
  3. update-review-teams — Merges the two pickle outputs (no extra API calls), links reviewers/editors/maintainers to packages, and writes data/contributors.yml and data/packages.yml relative to the current working directory (the website checkout in CI).

parse-history is a one-time helper for date_added values; it is not part of the weekly pipeline.

For local setup and how to run the scripts, see the Development Guide.

Installation

pyosMeta is available on PyPI and can be installed with pip:

pip install pyosmeta

Usage

After installing pyosmeta, the main entry points are:

  • update-contributors
  • update-reviews
  • update-review-teams
  • parse-history (one-time helper; not part of the weekly pipeline)

See How the metadata workflow works for what each weekly script does, and the Development Guide for how to run them locally.

Contributing

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Ivan Ogasawara
Ivan Ogasawara

💻 👀 🎨
Meer (Miriam) Williamson
Meer (Miriam) Williamson

💻 👀
Tiffany Xiao
Tiffany Xiao

💻 👀
austinlg96
austinlg96

💻 👀 🎨
JAKE
JAKE

👀 💻 🎨
Luiz Irber
Luiz Irber

💻 👀
Barnabas Bulpett (He/Him)
Barnabas Bulpett (He/Him)

💻 👀
Juanita Gomez
Juanita Gomez

💻 👀
Sarah Kaiser
Sarah Kaiser

💻 👀
Sultan Orazbayev
Sultan Orazbayev

💻 👀
Simon
Simon

💻 👀
Carol Willing
Carol Willing

💻 👀
Ofek Lev
Ofek Lev

💻 👀
Sviatoslav Sydorenko (Святослав Сидоренко)
Sviatoslav Sydorenko (Святослав Сидоренко)

💻 👀
Steven Silvester
Steven Silvester

💻 👀
P. L. Lim
P. L. Lim

💻 👀
Jonny Saunders
Jonny Saunders

💻 👀
Elise Hinman
Elise Hinman

💻 👀
Hari Prakash Vel Murugan
Hari Prakash Vel Murugan

📖
mrgah
mrgah

💻 👀
Kerry McAdams
Kerry McAdams

💻 👀
Cheng H. Lee
Cheng H. Lee

👀
steven
steven

💻 👀
Inessa Pawson
Inessa Pawson

👀 💻 🚇 🐛
Toshio Kuratomi
Toshio Kuratomi

💻 👀

This project follows the all-contributors specification. Contributions of any kind welcome!

Code of Conduct

Everyone interacting in the pyOpenSci project's codebases, issue trackers, chat rooms, and communication venues is expected to follow the pyOpenSci Code of Conduct.

License

MIT License

About

A package that updates pyOpenSci contributor and package metadata on our website

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

10 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages