17 Commits

Author SHA1 Message Date
farhan
32ad20d842 fix(instructors): repair broken TinyTorch Instructor Guide link
The sidebar entry pointed to https://mlsysbook.ai/tinytorch/INSTRUCTOR.html
which 404s — INSTRUCTOR.md lives in tinytorch/ but is not part of the
TinyTorch Quarto project (tinytorch/quarto/), so it never gets rendered
or published.

Point at the canonical GitHub source instead until the TinyTorch site
is updated to publish the instructor guide as a real page.
2026-05-03 09:13:38 +05:00
Vijay Janapa Reddi
6921b80c88 feat(kits|labs|instructors): tier-B versioning batch
Adds the Tier B (lite) versioning pattern to all three Quarto-only
sites in one commit — they have identical shape, so fragmenting would
add review burden without isolation benefit.

For each project:
  - workflow_dispatch inputs: release_type/description/site_only/
    explicit_version/confirm. Same shape as Tier A workflows so
    operators see one consistent UI across the monorepo.
  - New `prepare:` job calls _release-prepare.yml with tier=B and the
    project's previous_tag_pattern.
  - New manifest emit step before deploy: hashes the project's content
    directory (excluding _build, .quarto, etc.) and writes
    release-manifest.json into the build output. URL convention
    matches the deploy path: /kits/, /labs/, /instructors/.
  - New create-tag job: tags <project>-v<release_id> on success.
    Tier B intentionally skips AI-generated release notes — the
    description plus auto-generated commit list (where available) is
    sufficient given the rapid iteration cadence and lower citation
    stakes than book/staffml/tinytorch/mlsysim.
  - Quarto _quarto.yml: <meta name="release-manifest"> in
    include-in-header and shared/release/release-pill.html in
    include-after-body.

No changes to Marimo notebook structure (labs), Quarto build commands,
PDF builds, or any project's content files.
2026-04-28 18:19:53 -04:00
Vijay Janapa Reddi
acd0632506 fix(instructors): drop broken /labs/INSTRUCTOR_GUIDE.html sidebar entry
The Resources sidebar in instructors/_quarto.yml advertised a "Labs
Instructor Guide" pointing at /labs/INSTRUCTOR_GUIDE.html, but no such
file exists anywhere in the labs/ source tree — so the link has always
404'd. Playwright smoke against the live instructor site picks this up
as a hard broken link.

Drop the entry. If a labs instructor guide is authored in the future,
re-add with a real href.
2026-04-22 10:51:07 -04:00
Vijay Janapa Reddi
8a36d39bb2 fix(shared): centralize font loading via site-head.html + fix carousel (#1403)
- Replace inline Google Fonts <link> tags in all 8 site configs with
  a single `- file: shared/config/site-head.html` reference, so fonts
  (Inter 400-800, JetBrains Mono) and Font Awesome are inherited from
  one shared file instead of duplicated across every _quarto.yml
- Add missing Inter weight 800 (was only in site-head.html, not configs)
- Add carousel CSS + JS for MLSys·im landing page (arrows, dots, slides,
  auto-rotation, keyboard nav) — fixes non-functional < > buttons
2026-04-18 16:33:45 -04:00
Vijay Janapa Reddi
4c0bade02b feat: add announcement bars to site, instructors, and slides portals
All 7 public-facing Quarto sites now have consistent announcement
bars with icon: megaphone, type: primary, position: below-navbar.
Previously only tinytorch, labs, kits, book, and mlsysim had them.
2026-04-18 16:31:30 -04:00
Vijay Janapa Reddi
e7dddf5934 refactor(navbar): standardize fonts, logos, and dark mode across all sites
- instructors: remove Outfit display font, use Inter for headers like
  all other sites. Remove redundant @import and h1-h4 font override.
- mlsysim: replace site-specific logo.svg with ecosystem shield logo
- tinytorch: replace TinyTorch-specific logo with ecosystem shield logo

All Quarto sites now have identical navbar: same shield logo, same Inter
font stack, same dark mode toggle, same shared responsive behavior.
2026-04-18 09:56:11 -04:00
Vijay Janapa Reddi
a3160d83e5 refactor(monorepo): remove redundant navbar props — shared config handles it
Tested: Quarto metadata-files merge DOES inherit responsive properties
(background, pinned, collapse, collapse-below) from navbar-common.yml.
Local configs only need logo, search, title, and site-specific left: items.

Removed 4 redundant lines from each of: mlsysim, labs, kits, instructors, site.
Single source of truth: shared/config/navbar-common.yml
2026-04-03 08:49:41 -04:00
Vijay Janapa Reddi
7933dae571 fix(monorepo): consistent navbar responsive props across ALL subsites
Added background/pinned/collapse/collapse-below to navbar blocks in:
- labs/_quarto.yml
- kits/_quarto.yml
- instructors/_quarto.yml
- site/_quarto.yml (was already fixed by sed)

All 5 subsites + mlsysim now have identical responsive navbar behavior.
Fixed duplicate background: in instructors config.
2026-04-03 08:49:41 -04:00
Vijay Janapa Reddi
1e4600a09b feat(slides): integrate TinyML courseware as third slide track
Add TinyML (HarvardX edX Professional Certificate) as a peer of
Vol I and Vol II in the slides subsite. PDFs are served from the
tinyMLx/courseware repo via JS base URL pattern — zero binary
bloat in this repo.

- slides/tinyml.qmd: module-based catalog (5 chapters, 43 sections)
  with human-readable titles and textbook cross-references
- slides/tinyml/README-edx-original.md: original edX curriculum map
- slides/styles.css: module-card, section-list, team-box components
- slides/index.qmd: TinyML card alongside Vol I/II
- slides/_quarto.yml: navbar dropdown + sidebar entry
- instructors/tinyml-syllabus.qmd: 10-12 week semester plan
- instructors/_quarto.yml: navbar + sidebar entry
- .github/workflows/slides-publish-live.yml: package TinyML ZIPs
  from tinyMLx/courseware into the slides-latest release
2026-03-21 14:02:49 -04:00
Vijay Janapa Reddi
396506d29d refactor(site): unify 4 site subsites into single Quarto project
Architecture:
- Merge landing, about, community, newsletter into one site/ project
- Move navbar-common.yml to shared/config/ (used by 12 configs)
- Create shared/config/footer-site.yml for centralized footer
- Create shared/scripts/subscribe-modal.js as canonical copy
- Single _quarto.yml replaces 4 independent configs
- One site_libs/ copy replaces four

Features gained:
- Google Analytics on ALL hub pages (was only on book volumes)
- Subscribe modal on landing page (was missing)
- Centralized footer with consistent links

Workflows updated:
- site-preview-dev.yml: matrix strategy → single build job
- site-publish-live.yml: loop over subsites → single build + deploy
- sync-newsletter.yml: builds from unified site project
- publish-all-live.yml: removed stale subsite input
- rewrite-dev-urls.sh: added --shallow flag for unified builds

All 12 navbar-common.yml references updated:
  book vol1/vol2, site (unified), slides, instructors, interviews,
  kits, labs, mlsysim
2026-03-21 13:30:24 -04:00
Vijay Janapa Reddi
301679cd4d feat(subsites): standardize layout, fonts, and navbar across all portals
- Remove hero/splash layouts from slides, instructors, newsletter
- Switch all subsites to default Quarto layout (sidebar + TOC) matching kits pattern
- Add Google Fonts (Inter + JetBrains Mono) to slides portal
- Change instructors and interviews navbar from dark to light for consistency
- Replace indigo accent with crimson in instructors SCSS to match ecosystem
- Add slide preview carousel with 7 actual Beamer slide renders across Vol I and Vol II
2026-03-20 10:58:00 -04:00
Vijay Janapa Reddi
665af60f85 refactor(site): use native Quarto metadata-files for shared navbar
Replace the generate-navbar.py script approach with direct metadata-files
references to navbar-common.yml. Quarto natively merges navbar arrays,
so site-local dropdowns defined inline in each _quarto.yml get appended
to the shared navbar automatically.

- Delete generate-navbar.py script (no longer needed)
- Delete all _navbar-generated.yml and _navbar-local.yml files
- Each subsite now references ../book/quarto/config/shared/html/navbar-common.yml
  directly via metadata-files
- Sites with local dropdowns (slides, instructors, mlsysim) define them inline
  in their _quarto.yml navbar.left — Quarto merges with the shared left items
- Zero tooling, zero generated files, zero maintenance scripts
2026-03-19 10:48:41 -04:00
Vijay Janapa Reddi
5790e2706c feat(site): centralize navbar across all subsites
Single source of truth for the navigation bar in navbar-common.yml.
New 5-dropdown structure: Read | Build | Teach | Community | About.

- Add generate-navbar.py script to merge shared + site-local dropdowns
- Add _navbar-local.yml for slides, instructors, mlsysim (site-specific menus)
- Generate _navbar-generated.yml for all 6 subsites (committed, no CI changes needed)
- Strip hardcoded navbars from all _quarto.yml configs (landing, vol1, vol2, slides,
  instructors, mlsysim, kits, labs, newsletter)
- Add community/ and about/ paths to rewrite-dev-urls.sh for dev preview

To update navbar: edit navbar-common.yml, run generate-navbar.py --all, commit.
2026-03-19 10:41:25 -04:00
Vijay Janapa Reddi
bfb9aecbeb chore: update CI workflows, Quarto configs, and landing site
Update labs preview/publish workflows. Add config entries across all
Quarto sub-sites. Update landing site index and codespell ignore list.
2026-03-18 14:53:03 -04:00
Vijay Janapa Reddi
c1d3a372f1 fix: resolve CI failures across all ecosystem workflows
- Fix leaderboard script: unterminated string literal (line 60) and
  python-level typo in setup-python
- Fix instructors _quarto.yml: duplicate href key (Labs/Slides entries)
- Fix 2 SVGs: escape < in text content (ml-cicd-pipeline, precision-engineering)
- Fix codespell: add 'rithm' and 'Activ' to ignore list (split-word SVG text)
- Fix labs plans: add YAML front matter to 6 .md files to prevent
  Quarto YAML alias errors from **Story patterns
- Fix labs-validate-dev: use regular install instead of editable for mlsysim
  (hatchling sources remap incompatible with editable mode)
- Fix mlsysim hardware.qmd: replace Registry.list() with direct attribute
  iteration (Registry class shadowed by package __init__)
2026-03-16 16:20:11 -04:00
Vijay Janapa Reddi
f6fe16a198 feat(ecosystem): add Lecture Slides to all site navbars and landing page
- Landing site: Added "Slides" to quick links and navbar dropdown
- Instructors: Added "Lecture Slides" link in navbar Textbook menu
- Labs: Added "Lecture Slides" link in navbar menu
- Kits: Added "Lecture Slides" link in navbar menu
- Slides portal: Fixed teaching guide anchor links

All ecosystem sites now cross-link to the slides portal at mlsysbook.ai/slides/
2026-03-16 16:08:31 -04:00
Vijay Janapa Reddi
954f09b34d feat(instructors): add The Blueprint instructor site — course in a box
Complete instructor-facing Quarto site with 10 pages:
- Landing page with hero, semester cards, and component overview
- 8-step getting started checklist for adopting instructors
- Week-by-week syllabi for both semesters with direct links
- Course component map with SVG diagrams
- Pedagogy guide with facilitation strategies and cheat sheet
- Assessment rubrics with sample student work
- TA training guide with grading workflows
- Customization guide for quarters, seminars, and emphases
- FAQ addressing common adoption questions

Includes 4 SVG diagrams, ecosystem-aligned SCSS (light + dark),
and navbar structure matching the book sites.
2026-03-15 16:28:50 -04:00