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
65 changes: 6 additions & 59 deletions .github/workflows/update-reports.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,68 +4,15 @@ 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
reports:
uses: NASA-IMPACT/dse-oss-reports/.github/workflows/reports.yml@33eb4f01af27504d3a35e32fbbc679435e300b5b # v0.2.0
permissions:
contents: write
pull-requests: write

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

- name: Get current date
id: date
run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT

- 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 }}
GH_PAT: ${{ secrets.GH_PAT }}
run: uv run generate_config.py

- name: Generate commit data
working-directory: reports
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_PAT: ${{ secrets.GH_PAT }}
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 (${{ steps.date.outputs.date }})"
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
with:
dse-oss-reports-ref: further-simplification
secrets:
pat: ${{ secrets.GH_PAT }}
50 changes: 50 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# science-support

Documentation site for the VEDA/EODC Science Support team. Published at <https://nasa-impact.github.io/science-support/>.

## Reporting pipeline

Quarterly objectives, commit charts, and the [Objectives page](https://nasa-impact.github.io/science-support/objectives) are auto-generated by [`dse-oss-reports`](https://github.com/NASA-IMPACT/dse-oss-reports). All team-specific configuration lives in [`team.toml`](./team.toml). Adoption guide and architecture: <https://github.com/NASA-IMPACT/dse-oss-reports#adoption-guide>.

The weekly cron in [`.github/workflows/update-reports.yml`](./.github/workflows/update-reports.yml) calls the library's reusable workflow, which scrapes GitHub issues, fetches commit data, regenerates charts and `docs/objectives.md`, and opens a PR for review.

## Running the pipeline locally

`dse-oss-reports` is pinned in `pyproject.toml`; `uv sync` installs it alongside mkdocs. Then prefix every command with `uv run`.

All commands take `--config team.toml` and run from the repo root.

| Subcommand | What it does | Reads | Writes | PAT? |
|---|---|---|---|---|
| `current-pi` | Print the resolved current PI | `team.toml` | stdout | no |
| `generate-config` | Scrape GitHub issues into the objectives data file | GitHub API | `reports/_objectives_data.json` | yes |
| `fetch` | Pull authored commits + resolved items for a PI | GitHub API, `_objectives_data.json` | `reports/output/{pi}-*.csv` | yes |
| `plot` | Render per-PI charts | `reports/output/{pi}-*.csv` | `docs/images/{pi}-*.png` | no |
| `generate-docs` | Render the objectives page | `_objectives_data.json`, existing PNGs | `docs/objectives.md` | no |
| `run-all` | Run all four pipeline stages in order | everything | everything | yes |

PAT-requiring commands read `DSE_OSS_REPORTS_TOKEN` → `GH_PAT` → `GITHUB_TOKEN` (in that order). Create a fine-grained PAT with public-repo read access at <https://github.com/settings/personal-access-tokens/new>.

### Common workflows

```bash
# Full refresh from GitHub (PAT required, ~1-2 minutes)
export GH_PAT=ghp_...
uv run dse-oss-reports --config team.toml run-all

# Regenerate figures from existing CSVs (no PAT, ~5 seconds)
uv run dse-oss-reports --config team.toml plot # current PI
uv run dse-oss-reports --config team.toml plot --pi pi-26.2 # a specific past PI

# Regenerate the docs page after charts change (no PAT)
uv run dse-oss-reports --config team.toml generate-docs
```

Once `dse-oss-reports` is released, bump the pin in `pyproject.toml` and both refs in `.github/workflows/update-reports.yml` from `@further-simplification` to a versioned tag.

## Building the docs site

```bash
uv sync
uv run mkdocs serve # preview at http://127.0.0.1:8000
```
Binary file added docs/images/pi-26.3-authored-commits.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/pi-26.3-resolved-issues-prs.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
46 changes: 29 additions & 17 deletions docs/objectives.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,52 @@
# Quarterly Objectives

This page tracks quarterly objectives and their related repositories across Program Increments (PIs).
This page tracks quarterly objectives for the VEDA/MAAP Science Support team and the open-source repositories they touch across Program Increments (PIs).

## Current PI: 26.2
## Current PI: 26.3

![PI-26.3 authored commits](images/pi-26.3-authored-commits.png)

![PI-26.3 resolved issues and PRs](images/pi-26.3-resolved-issues-prs.png)

| # | Objective | Contributors | Repos |
|---|-----------|--------------|-------|
| [#1](https://github.com/NASA-IMPACT/science-support/issues/1) | Hub Support | wildintellect, jsignell | repo2docker-action, pangeo-docker-images, pangeo-notebook-veda-image |
| [#2](https://github.com/NASA-IMPACT/science-support/issues/2) | Cloud Optimized Workflows | wildintellect, jsignell | veda-docs, maap-documentation, cloud-optimized-geospatial-formats-guide |
| [#3](https://github.com/NASA-IMPACT/science-support/issues/3) | Open-Source Contributions | jsignell, ircwaves, tylanderson | stac-best-practices, stac-spec, dask, pystac, pystac-client, xarray |
| [#9](https://github.com/NASA-IMPACT/science-support/issues/9) | Data Retention Policy | smk0033 | - |
| [#10](https://github.com/NASA-IMPACT/science-support/issues/10) | VEDA Forum (Stretch) | smk0033 | - |
| [#11](https://github.com/NASA-IMPACT/science-support/issues/11) | AI Embedding Report (Stretch) | omshinde | - |
| [#12](https://github.com/NASA-IMPACT/science-support/issues/12) | Merge MAAP Documentation into VEDA (Stretch) | | - |
| [#31](https://github.com/NASA-IMPACT/science-support/issues/31) | Hub Upgrades | wildintellect, grallewellyn | repo2docker-action, pangeo-docker-images, pangeo-notebook-veda-image |
| [#32](https://github.com/NASA-IMPACT/science-support/issues/32) | Cloud Optimized Workflows | wildintellect, tylanderson | veda-docs, maap-documentation, cloud-optimized-geospatial-formats-guide |
| [#33](https://github.com/NASA-IMPACT/science-support/issues/33) | Open-Source Contributions | gadomski, tylanderson | stac-best-practices, stac-spec, dask, pystac, pystac-client, xarray |
| [#34](https://github.com/NASA-IMPACT/science-support/issues/34) | Data Retention Policy | smk0033 | - |

---

---
## Past PIs

<details markdown>
<summary>PI 26.2 (7 original objectives; 4 closed as completed; 3 closed as not planned)</summary>

## Visualization
| # | Objective | State | Contributors |
|---|-----------|-------|--------------|
| [#1](https://github.com/NASA-IMPACT/science-support/issues/1) | Hub Support | closed (completed) | wildintellect, jsignell |
| [#2](https://github.com/NASA-IMPACT/science-support/issues/2) | Cloud Optimized Workflows | closed (completed) | wildintellect, jsignell |
| [#3](https://github.com/NASA-IMPACT/science-support/issues/3) | Open-Source Contributions | closed (completed) | jsignell, ircwaves, tylanderson |
| [#9](https://github.com/NASA-IMPACT/science-support/issues/9) | Data Retention Policy | closed (completed) | smk0033 |
| [#10](https://github.com/NASA-IMPACT/science-support/issues/10) | VEDA Forum (Stretch) | closed (not planned) | smk0033 |
| [#11](https://github.com/NASA-IMPACT/science-support/issues/11) | AI Embedding Report (Stretch) | closed (not planned) | omshinde |
| [#12](https://github.com/NASA-IMPACT/science-support/issues/12) | Merge MAAP Documentation into VEDA (Stretch) | closed (not planned) | - |

The charts use color-coding to show which objective each repo contributes to. Repos that contribute to multiple objectives are shown with split bars.
![PI-26.2 authored commits](images/pi-26.2-authored-commits.png)

![PI-26.2 Commits per Repository](images/pi-26.2-authored-commits.png)
![PI-26.2 resolved issues and PRs](images/pi-26.2-resolved-issues-prs.png)

![PI-26.2 Resolved issues/PRs](images/pi-26.2-resolved-issues-prs.png)
</details>

---

## Configuration

Objectives are configured in [`reports/config.py`](https://github.com/NASA-IMPACT/science-support/blob/main/reports/config.py).
Objectives data lives in [`reports/_objectives_data.py`](https://github.com/NASA-IMPACT/science-support/blob/main/reports/_objectives_data.py) — auto-generated from GitHub issues by `dse_oss_reports.generator.ObjectivesGenerator`.

To regenerate this page from config:
To regenerate this page:

```bash
cd reports
uv run generate_docs.py
```
```
3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@ version = "0.1.0"
description = "Science Support for NASA VEDA and EODC"
readme = "README.md"
dependencies = []
requires-python = ">= 3.11"
requires-python = ">= 3.12"

[dependency-groups]
dev = [
"dse-oss-reports @ git+https://github.com/NASA-IMPACT/dse-oss-reports.git@33eb4f01af27504d3a35e32fbbc679435e300b5b", #v0.2.0
"mike>=2.1.3",
"mkdocs-material[imaging]>=9.6.3",
"mkdocs-jupyter>=0.25.0",
Expand Down
45 changes: 0 additions & 45 deletions reports/README.md

This file was deleted.

Loading