An interactive swimlane visualizer for the per-repository pin history of
autoware.repos
across Autoware releases.
Live: https://autowarefoundation.github.io/autoware-repos-visualizer/
- One lane per repository: the meta repo on top, then the
core,universe,launcher, andsensor_componentgroups. - One dot per commit on each lane's default branch. Time on the X axis, newest on the left.
- The current
autoware.repospin renders as an accent-colored bubble. Hollow accent rings at the lane edges mark pins that fall outside the current zoom window, so no pin is ever hidden. - Selecting an Autoware version in the right sidebar draws a colored polyline through every sub-repo's pin for that release. Tagged commits on the meta lane are always shown in the version's color.
- A dashed vertical line marks "now".
The frontend reads web/public/data/commits.json. Two ways to populate
it:
Reuse the snapshot the deployed site already serves.
cd web
npm ci
mkdir -p public/data
curl -fsSL \
https://raw.githubusercontent.com/autowarefoundation/autoware-repos-visualizer/data/commits.json \
-o public/data/commits.json
npm run devRequires cloning the meta repo plus every entry in autoware.repos
(several GB total).
git clone https://github.com/autowarefoundation/autoware.git \
autoware-meta/autoware
pip install vcstool
mkdir -p src
vcs import src < autoware-meta/autoware/repositories/autoware.repos
cd web
npm ci
npm run data
npm run dev.
├── autoware-meta/autoware/ upstream meta repo; drives autoware.repos at every tag
├── src/ sub-repo clones; drive per-lane commit history
└── web/
├── scripts/generate-data.ts builds commits.json from the two clone trees
└── src/ Vite + Svelte + TypeScript + d3 swimlane
Two GitHub Actions decouple data refresh from frontend deploy:
update-data.yml: daily cron plus manual dispatch. Caches the heavy clone trees, reconcilessrc/against the latestautoware.repos, regeneratescommits.json, and force-pushes it onto an orphandatabranch.pages.yml: runs on push tomainand after every successfulupdate-datarun. Pullscommits.jsonfrom thedatabranch viagit show, builds the static site, and deploys to GitHub Pages.
The split keeps Pages builds fast and the main branch code-only.