1 of 32

How Project Pythia Leverages GitHub for Community Contributions

APRIL 19, 2023

Julia Kent

NCAR, Software Engineer/Project Scientist

This work supported through the National Science Foundation Award #2026899.

2 of 32

Project Pythia Team

Your Face Here

Slide 2 of 32

3 of 32

Overview of Project Pythia

Slide 3 of 32

4 of 32

Challenge - Scientific Python Ecosystem

Slide 4 of 32

  • How do my packages interact?
  • Are they stable?
  • Are they trustworthy?

5 of 32

Challenge - Petabytes of Data

Slide 5 of 32

“Move the Compute to Where the Data Is”

6 of 32

Solution - Project Pythia

The go-to resource for learning the Scientific Python Ecosystem

  • Geoscience focused

  • From beginner to power user

  • Tutorials, videos, examples, online courses, and sample data

  • Community owned

Slide 6 of 32

7 of 32

Pangeo Education Working Group

Responsibilities:

  • Training on Cloud/HPC
  • Training on Python Packages
  • Training on Analysis Best Practices
  • Strong Documentation
  • Community for Helping Each Other
  • Experience Sharing

Slide 7 of 32

8 of 32

The Portal

projectpythia.org

Slide 8 of 32

9 of 32

The Resource Gallery

projectpythia.org/resource-gallery.html

Contribute!

Slide 9 of 32

10 of 32

The Foundations Book

Slide 10 of 32

11 of 32

The Cookbook Gallery

cookbooks.projectpythia.org

Slide 11 of 32

12 of 32

Example from CMIP6 Cookbook

Imports

https://cookbooks.projectpythia.org/cmip6-cookbook/notebooks/foundations/esgf-opendap.html

Slide 12 of 32

13 of 32

Example from CMIP6 Cookbook

Search using ESGF API

https://cookbooks.projectpythia.org/cmip6-cookbook/notebooks/foundations/esgf-opendap.html

Slide 13 of 32

14 of 32

Example from CMIP6 Cookbook

Lazily Load Data with Xarray as Open-source Project for a Network Data Access Protocol (OPeNDAP) endpoints

https://cookbooks.projectpythia.org/cmip6-cookbook/notebooks/foundations/esgf-opendap.html

Slide 14 of 32

15 of 32

Example from CMIP6 Cookbook

Weight by Area and Compute Global-Average Surface Air Temperature

https://cookbooks.projectpythia.org/cmip6-cookbook/notebooks/foundations/esgf-opendap.html

Slide 15 of 32

16 of 32

Example from CMIP6 Cookbook

Plot Result

https://cookbooks.projectpythia.org/cmip6-cookbook/notebooks/foundations/esgf-opendap.html

Slide 16 of 32

17 of 32

A Community Tool

Slide 17 of 32

18 of 32

Contributor’s Guide

Slide 18 of 32

19 of 32

Outreach

Slide 19 of 32

20 of 32

Open Meetings

Slide 20 of 32

21 of 32

How We Use GitHub

Slide 21 of 32

22 of 32

Everything

on

GitHub

Across

27

Repositories

Slide 22 of 32

23 of 32

GitHub Workflow

Slide 23 of 32

24 of 32

GitHub Project Board

Slide 24 of 32

25 of 32

GitHub Actions

Slide 25 of 32

26 of 32

Appropriate Settings

  • Allow Actions to Run
  • GitHub Secrets shared with 3rd Party Apps
  • Branch protections

Slide 26 of 32

27 of 32

All checks must pass before merging

Slide 27 of 32

28 of 32

Sample GH Action Code

Slide 28 of 32

29 of 32

Site Previews

Slide 29 of 32

30 of 32

Need GitHub help?

Earth System Data Science Office Hours

https://ncar.github.io/esds/office-hours/

Slide 30 of 32

31 of 32

Attend our Cookbook Cook-Off June 21-23, 2023!

https://projectpythia.org/pythia-cookoff-2023/

Slide 31 of 32

32 of 32

Acknowledgements

NSF EarthCube program (award #2026899)

Pangeo community

Numerous technical staff

ISS Conference Committee

Slide 32 of 32