Skip to content

Schema catalog static site and GitHub Pages#422

Merged
yatharthranjan merged 2 commits intomasterfrom
publish_schemas
Apr 15, 2026
Merged

Schema catalog static site and GitHub Pages#422
yatharthranjan merged 2 commits intomasterfrom
publish_schemas

Conversation

@yatharthranjan
Copy link
Copy Markdown
Member

@yatharthranjan yatharthranjan commented Apr 15, 2026

Summary

This PR adds a static HTML data source catalog generated from commons/ and specifications/, plus a workflow to publish it to GitHub Pages when master is updated (path-filtered).

Changes

  • scripts/generate_schema_catalog.py — Builds the catalog: sections by data source (Garmin, Fitbit, Apple Health, etc.), one measurements table per source (with empty columns omitted per source), merged Avro field list with common metadata fields omitted, latest aRMT spec only, Apple Health / HealthKit extra block, search and styling.
  • .github/workflows/schema-catalog-pages.yml — Install PyYAML, run the generator to _site, deploy via actions/deploy-pages (push to master only for deploy; PRs validate the build).
  • requirements-docs.txt — PyYAML for the script.
  • .gitignore__pycache__/, *.py[cod], existing entries for _site/ and .venv-docs/.

Follow-up

Enable GitHub Pages with source GitHub Actions in repo settings if not already configured.

How to test locally

python3 -m venv .venv-docs && .venv-docs/bin/pip install -r requirements-docs.txt
.venv-docs/bin/python scripts/generate_schema_catalog.py --out _site
# open _site/index.html

Example screenshot of the generated site -

image

Add a Python script that builds a static HTML catalog from commons/ and
specifications/, grouped by data source with merged payload fields and
dynamic table columns. Deploy to GitHub Pages from master via Actions.

Also ignore Python __pycache__ and bytecode in .gitignore.
@afolarin
Copy link
Copy Markdown
Member

Very nice.
Should we give a similar treatment to the info in specifications ?

Copy link
Copy Markdown
Member

@afolarin afolarin left a comment

Choose a reason for hiding this comment

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

LGTM

@afolarin
Copy link
Copy Markdown
Member

Perhaps also needs a link to the page static page placed into the Schema repo README.md

Copy link
Copy Markdown
Member

@mpgxvii mpgxvii left a comment

Choose a reason for hiding this comment

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

Nice! LGTM.

@yatharthranjan
Copy link
Copy Markdown
Member Author

Should we give a similar treatment to the info in specifications ?

this combines info from both specs and schemas (you can see specification links at top of each source table)

Perhaps also needs a link to the page static page placed into the Schema repo README.md

Thanks, yes good idea, will add.

@yatharthranjan yatharthranjan merged commit c8b4694 into master Apr 15, 2026
4 checks passed
@yatharthranjan yatharthranjan deleted the publish_schemas branch April 15, 2026 18:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants