Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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/[email protected]
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>

---

## Commits Per Repository

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