Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@ on:
push:
branches:
- main
- fixup-docs
- ab/fy26-roadmap
pull_request:
branches:
- main

jobs:
build:
Expand Down
65 changes: 65 additions & 0 deletions .github/workflows/update-reports.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Update Reports

on:
schedule:
# Run every Monday at 9 AM ET (14:00 UTC)
- cron: '0 14 * * 1'
push:
branches:
- main
paths:
- 'reports/*.py'
- 'reports/pyproject.toml'
workflow_dispatch:

jobs:
update-reports:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write

steps:
- name: Checkout repository
uses: actions/checkout@v5

- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.9.*"
enable-cache: true

- name: Generate config data
working-directory: reports
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: uv run generate_config.py

- name: Generate commit data
working-directory: reports
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: uv run main.py

- name: Generate plot
working-directory: reports
run: uv run plot.py

- name: Generate docs page
working-directory: reports
run: uv run generate_docs.py

- name: Create Pull Request
uses: peter-evans/create-pull-request@v7.0.11
with:
commit-message: "Update reports for ${{ github.run_id }}"
title: "Update reports"
body: |
Automated update of commit reports and visualization.

Generated by GitHub Actions workflow.
branch: update-reports
add-paths: |
reports/output/
docs/images/
docs/objectives.md
Binary file added docs/images/pi-26.1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
84 changes: 84 additions & 0 deletions docs/objectives.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# Quarterly Objectives

This page tracks quarterly objectives and their related repositories across Program Increments (PIs).

## Current PI: 26.1

| # | Objective | Contributors | Repos |
|---|-----------|--------------|-------|
| [#244](https://github.com/NASA-IMPACT/veda-odd/issues/244) | 🗺️ Add dynamic tiling and timeseries support for Virtual Zar... | jbusecke, hrodmn | titiler, icechunk |
| [#245](https://github.com/NASA-IMPACT/veda-odd/issues/245) | 🌍 Add dynamic tiling and timeseries support for datasets in ... | abarciauskas-bgse, hrodmn | titiler, titiler-cmr, titiler-lambda-layer, titiler-md-demo, python_cmr |
| [#246](https://github.com/NASA-IMPACT/veda-odd/issues/246) | 🤖 Support virtualization of additional data products | sharkinsspatial, maxrjones, jbusecke | virtualizarr, obspec-utils, virtual-tiff, hrrr-parser, async-tiff, virtualizarr-data-pipelines, icechunk |
| [#247](https://github.com/NASA-IMPACT/veda-odd/issues/247) | 🛰 Explore scalable, cloud native approaches for search, disc... | sharkinsspatial, kylebarron | obstore, obspec, zarr-datafusion-search, geoarrow-rs, arrow-zarr |
| [#248](https://github.com/NASA-IMPACT/veda-odd/issues/248) | 🤗 Support community adoption of the technologies incubated b... | sharkinsspatial, chuckwondo, maxrjones, abarciauskas-bgse | geozarr-spec, zarr-python, multiscales, geo-proj, spatial, datacube-guide, geozarr-examples, warp-resample-profiling, pangeo.io, pangeo-docker-images, earthdata-cloud-cookbook |

---

<details markdown>
<summary>PI 25.4 (8 objectives, 5 closed)</summary>

| # | Objective | State | Contributors |
|---|-----------|-------|--------------|
| [#121](https://github.com/NASA-IMPACT/veda-odd/issues/121) | Visualize Web-Optimized Zarr (WOZ) in VEDA (previe... | closed | maxrjones |
| [#122](https://github.com/NASA-IMPACT/veda-odd/issues/122) | Research, develop and document methods for Zarr an... | closed | maxrjones, kylebarron |
| [#197](https://github.com/NASA-IMPACT/veda-odd/issues/197) | 🎬 TiTiler-CMR is production ready | open | abarciauskas-bgse, hrodmn |
| [#198](https://github.com/NASA-IMPACT/veda-odd/issues/198) | 🚀 Dataset support for VEDA instances | closed | maxrjones, jbusecke |
| [#203](https://github.com/NASA-IMPACT/veda-odd/issues/203) | 🗺️Research, develop and document methods for Zarr ... | open | maxrjones |
| [#204](https://github.com/NASA-IMPACT/veda-odd/issues/204) | 🛠️ Zarr Development | open | d-v-b, maxrjones |
| [#205](https://github.com/NASA-IMPACT/veda-odd/issues/205) | 🤗 Community engagement | closed | sharkinsspatial, chuckwondo, maxrjones, abarciauskas-bgse |
| [#206](https://github.com/NASA-IMPACT/veda-odd/issues/206) | 📦 Obstore outreach | closed | chuckwondo, kylebarron |

</details>

<details markdown>
<summary>PI 25.3 (6 objectives, 4 closed)</summary>

| # | Objective | State | Contributors |
|---|-----------|-------|--------------|
| [#118](https://github.com/NASA-IMPACT/veda-odd/issues/118) | Support CMR Modernization | open | sharkinsspatial, kylebarron |
| [#119](https://github.com/NASA-IMPACT/veda-odd/issues/119) | Continue to Build Out the VirtualiZarr Ecosystem | closed | sharkinsspatial, maxrjones |
| [#124](https://github.com/NASA-IMPACT/veda-odd/issues/124) | Publish Cloud-Optimized Datasets | open | chuckwondo, abarciauskas-bgse |
| [#126](https://github.com/NASA-IMPACT/veda-odd/issues/126) | Support TiTiler-CMR Adoption | closed | sharkinsspatial, hrodmn |
| [#127](https://github.com/NASA-IMPACT/veda-odd/issues/127) | Community Involvement | closed | maxrjones, abarciauskas-bgse, hrodmn |
| [#165](https://github.com/NASA-IMPACT/veda-odd/issues/165) | Foundational Zarr-Python and Xarray Contributions | closed | d-v-b, maxrjones |

</details>

<details markdown>
<summary>PI 25.2 (8 objectives, 8 closed)</summary>

| # | Objective | State | Contributors |
|---|-----------|-------|--------------|
| [#31](https://github.com/NASA-IMPACT/veda-odd/issues/31) | Increase data format support in VirtualiZarr | closed | chuckwondo, maxrjones |
| [#34](https://github.com/NASA-IMPACT/veda-odd/issues/34) | Visualize OCO-3 Datasets in VEDA | closed | abarciauskas-bgse |
| [#35](https://github.com/NASA-IMPACT/veda-odd/issues/35) | Deliver Virtual Zarr Stores for NASA Datasets Usin... | closed | abarciauskas-bgse |
| [#36](https://github.com/NASA-IMPACT/veda-odd/issues/36) | Support for Modernizing VirtualiZarr to use zarr-p... | closed | sharkinsspatial, abarciauskas-bgse |
| [#37](https://github.com/NASA-IMPACT/veda-odd/issues/37) | Support CMR Modernization | closed | sharkinsspatial, kylebarron |
| [#40](https://github.com/NASA-IMPACT/veda-odd/issues/40) | Upgrade titiler and titiler-xarray to zarr-Python ... | closed | maxrjones |
| [#41](https://github.com/NASA-IMPACT/veda-odd/issues/41) | Draft Web-Optimized Zarr (WOZ) Standard | closed | maxrjones |
| [#76](https://github.com/NASA-IMPACT/veda-odd/issues/76) | Demonstrate how to tile HLS using titiler-cmr | closed | hrodmn |

</details>

---

## Visualization

The commits per repository chart uses color-coding to show which objective each repo contributes to. Repos that contribute to multiple objectives are shown with split bars.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add something like:

the number of merged PRs/commits to default branch should not be interpreted as the relative significance of any given repository in our work, as the development cadence and method varies across these repositories.


![PI-26.1 Commits per Repository](images/pi-26.1.png)

---

## Configuration

Objectives are configured in [`reports/config.py`](https://github.com/NASA-IMPACT/veda-odd/blob/main/reports/config.py).

To regenerate this page from config:

```bash
cd reports
uv run generate_docs.py
```

See [FY26 Roadmap](./fy26-roadmap.md) for the broader context of these objectives.
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ extra:
nav:
- "index.md"
- FY26 Roadmap: "fy26-roadmap.md"
- PI Objectives: "objectives.md"
- ODD Products: "products.md"

theme:
Expand Down
40 changes: 35 additions & 5 deletions reports/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,40 @@
2. Select public repositories
3. Add new token as the environment variable `GH_ODD_PAT`

## Configuration

The `config.py` file contains:
- `TIME_RANGE`: Start and end dates for commit analysis
- `OBJECTIVES`: Quarterly objectives with repos and contributors per objective

### Regenerating objectives from GitHub

To fetch the latest objectives from GitHub issues:

```bash
uv run generate_config.py
```

This generates `objectives_config.py` with objectives and contributors from issues labeled `pi-*-objective`. You'll need to manually add repos to each objective, then copy to `config.py`.

### Regenerating docs/objectives.md

To regenerate the objectives documentation page from config:

```bash
uv run generate_docs.py
```

## Generating data

1. Update the dates in config.py
2. Add any new contributors to config.py
3. Add any new repositories to config.py
4. Run `uv run main.py`
5. Run `uv run plot.py`
1. Run `uv run main.py` (uses 10 parallel workers by default)
2. Run `uv run plot.py`

`TIME_RANGE` is automatically set to the current fiscal quarter (Q1: Oct-Dec, Q2: Jan-Mar, Q3: Apr-Jun, Q4: Jul-Sep).

The generated chart colors bars by PI objective (see [objectives page](https://nasa-impact.github.io/veda-odd/objectives) for details).

## Performance

- **generate_config.py**: Uses GitHub search API to fetch only objective issues (~2-3 seconds)
- **main.py**: Parallelizes API calls with ThreadPoolExecutor (10x faster than sequential)
Loading