[PR #72] [MERGED] docs: a star chart at the bottom of the README #101

Closed
opened 2026-10-15 20:53:25 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/rehan-remade/universal-modder/pull/72
Author: @rehan-remade
Created: 10/5/2026
Status: ✅ Merged
Merged: 10/5/2026
Merged by: @rehan-remade

Base: main ← Head: docs/star-chart


📝 Commits (1)

  • b79e8fc docs: a star chart at the bottom of the README

📊 Changes

5 files changed (+304 additions, -0 deletions)

View changed files

➕ .github/star-chart/glyphs.json (+1 -0)
➕ .github/star-chart/make_glyphs.py (+65 -0)
➕ .github/star-chart/star_chart.py (+202 -0)
➕ .github/workflows/star-chart.yml (+30 -0)
📝 README.md (+6 -0)

📄 Description

Adds a Star history section at the bottom of the README, with a star chart drawn in the brand rather than the stock star-history.com one.

The star chart

What it looks like

  • A void panel with stepped corners, like the pipeline image, so it reads in both GitHub themes.
  • The star count in Geist Pixel, with "stars" and the update time in Sometype Mono.
  • The curve as 4 px bone cells over a dithered magenta glow. The brand's magenta tile sits as the period at the latest point.
  • Dotted gridlines and dates in ash. Gridline steps and date ticks scale as the repo grows: days, then weeks, then months with the year shown once per year.

How it stays current

  • .github/workflows/star-chart.yml runs every 6 hours, and on demand from the Actions tab.
  • .github/star-chart/star_chart.py uses only the standard library and gh api. It reads every stargazer's starred_at and writes stars.svg.
  • The workflow force-pushes that one file as the only commit on a star-chart branch, and the README loads it from there. main gets no bot commits, and the branch never grows.
  • I published the first chart on star-chart from my machine, so the image works as soon as this merges.
  • That branch has no workflow files, and pushes made with GITHUB_TOKEN never start other workflows. So the test workflow doesn't run on it; I checked that no run started.
  • The stargazers API stops paging at 40,000 stars. The docstring notes that the script should sample pages after that.

Why it's paths, not text

  • The SVG has no <text> and no web fonts, so it looks the same everywhere.
  • Geist Pixel digits are stored as bitmaps on the font's 38-unit grid. Sometype Mono is stored as outlines.
  • glyphs.json is 13.7 KB. make_glyphs.py rebuilds it from the brand fonts if the type ever changes. Both fonts are under the SIL OFL.

Checks

  • Drew the chart from the live repo at 3,540 stars. Viewed it at 1x and 2x, and in the README preview in both themes.
  • Ran edge cases: no stars, one star, a three-year history and 41,000 stars. Every one produced an SVG that parses.
  • uv run --with pytest pytest -q tests: 57 passed.
  • um kb check --index: pass.
  • um publish check .: 0 failures. Its one warning is the existing Project Zomboid note.

🤖 Generated with Claude Code


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/rehan-remade/universal-modder/pull/72 **Author:** [@rehan-remade](https://github.com/rehan-remade) **Created:** 10/5/2026 **Status:** ✅ Merged **Merged:** 10/5/2026 **Merged by:** [@rehan-remade](https://github.com/rehan-remade) **Base:** `main` ← **Head:** `docs/star-chart` --- ### 📝 Commits (1) - [`b79e8fc`](https://github.com/rehan-remade/universal-modder/commit/b79e8fc3d61e4c97d24d4bb5d656ae8d687336ab) docs: a star chart at the bottom of the README ### 📊 Changes **5 files changed** (+304 additions, -0 deletions) <details> <summary>View changed files</summary> ➕ `.github/star-chart/glyphs.json` (+1 -0) ➕ `.github/star-chart/make_glyphs.py` (+65 -0) ➕ `.github/star-chart/star_chart.py` (+202 -0) ➕ `.github/workflows/star-chart.yml` (+30 -0) 📝 `README.md` (+6 -0) </details> ### 📄 Description Adds a **Star history** section at the bottom of the README, with a star chart drawn in the brand rather than the stock star-history.com one. ![The star chart](https://raw.githubusercontent.com/rehan-remade/universal-modder/star-chart/stars.svg) ## What it looks like - A void panel with stepped corners, like the pipeline image, so it reads in both GitHub themes. - The star count in Geist Pixel, with "stars" and the update time in Sometype Mono. - The curve as 4 px bone cells over a dithered magenta glow. The brand's magenta tile sits as the period at the latest point. - Dotted gridlines and dates in ash. Gridline steps and date ticks scale as the repo grows: days, then weeks, then months with the year shown once per year. ## How it stays current - `.github/workflows/star-chart.yml` runs every 6 hours, and on demand from the Actions tab. - `.github/star-chart/star_chart.py` uses only the standard library and `gh api`. It reads every stargazer's `starred_at` and writes `stars.svg`. - The workflow force-pushes that one file as the only commit on a `star-chart` branch, and the README loads it from there. `main` gets no bot commits, and the branch never grows. - I published the first chart on `star-chart` from my machine, so the image works as soon as this merges. - That branch has no workflow files, and pushes made with `GITHUB_TOKEN` never start other workflows. So the test workflow doesn't run on it; I checked that no run started. - The stargazers API stops paging at 40,000 stars. The docstring notes that the script should sample pages after that. ## Why it's paths, not text - The SVG has no `<text>` and no web fonts, so it looks the same everywhere. - Geist Pixel digits are stored as bitmaps on the font's 38-unit grid. Sometype Mono is stored as outlines. - `glyphs.json` is 13.7 KB. `make_glyphs.py` rebuilds it from the brand fonts if the type ever changes. Both fonts are under the SIL OFL. ## Checks - Drew the chart from the live repo at 3,540 stars. Viewed it at 1x and 2x, and in the README preview in both themes. - Ran edge cases: no stars, one star, a three-year history and 41,000 stars. Every one produced an SVG that parses. - `uv run --with pytest pytest -q tests`: 57 passed. - `um kb check --index`: pass. - `um publish check .`: 0 failures. Its one warning is the existing Project Zomboid note. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-15 20:53:25 +00:00
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
rehan-remade/universal-modder#101
No description provided.