Files
cs249r_book/tinytorch/quarto/_quarto.yml
Vijay Janapa Reddi 963c5977d8 feat(tinytorch): emit release manifest + footer pill
Adopt the shared release-versioning pattern. Pure additions: no
existing build steps, configs, or sources are touched. The 6-place
manual version sprawl in the publish workflow stays as-is —
pyproject.toml remains the canonical source the manifest READS from.

quarto/_quarto.yml:
  - <meta name="release-manifest" content="/tinytorch/release-manifest.json">
    added to include-in-header so the pill's runtime fetch resolves
    correctly under /tinytorch/.
  - shared/release/release-pill.html added to include-after-body so
    every rendered page carries the pill in the DOM.

.github/workflows/tinytorch-publish-live.yml:
  - New "📦 Emit release manifest" step inserted between the slide-deck
    download and the gh-pages deploy. Runs scripts/version/release.py
    compute-hash over modules/, quarto/ (excluding _build), pyproject.toml,
    MANIFEST.in. Writes release-manifest.json into the site build dir
    so it deploys at /tinytorch/release-manifest.json.

The pill is best-effort chrome — silent if the manifest is missing,
which keeps preview-dev and local renders from breaking. Production
publishes always emit it before deploy, so the live site shows
"TinyTorch v0.1.10 · Apr 28, 2026" in the footer once this lands.
2026-04-28 18:08:52 -04:00

288 lines
10 KiB
YAML

# =============================================================================
# TINYTORCH WEBSITE CONFIGURATION (Quarto)
# =============================================================================
# Educational ML framework: "Build Your Own ML Framework From Scratch"
# Part of the MLSysBook ecosystem: mlsysbook.ai/tinytorch/
# =============================================================================
project:
type: website
output-dir: _build
# Quarto only auto-copies files it sees referenced from rendered qmd output.
# Assets here are pulled in explicitly:
# - assets/downloads/** PDF viewer asset (loaded from inside a `{=html}`
# script, which Quarto cannot statically resolve)
# and workflow-injected Guide / Paper PDFs.
# - install.sh Served at mlsysbook.ai/tinytorch/install.sh —
# users pipe it to bash for installation.
# - community/** Static community dashboard (HTML + JS), served
# at mlsysbook.ai/tinytorch/community/.
# install.sh and community/ moved here from the retired tinytorch/site/
# (Jupyter Book) tree so this quarto tree is the only source for
# anything published under /tinytorch/.
resources:
- assets/downloads/**
- install.sh
- community/**
website:
title: "TinyTorch"
description: >-
An interactive course for building machine learning systems from the ground up.
Learn by implementing your own PyTorch-style framework with hands-on coding,
real datasets, and production-ready practices.
site-url: https://mlsysbook.ai/tinytorch/
favicon: assets/images/favicon.svg
# Open Graph / Social Media metadata
open-graph:
locale: en_US
site-name: "Machine Learning Systems"
image: assets/images/logos/logo-tinytorch.png
twitter-card:
card-style: summary_large_image
image: assets/images/logos/logo-tinytorch.png
page-navigation: true
reader-mode: false
back-to-top-navigation: true
bread-crumbs: true
search:
keyboard-shortcut: ["/"]
# Shared navbar from navbar-common.yml (via metadata-files).
# Site-local dropdown for quick navigation within TinyTorch.
navbar:
logo: "assets/images/logo.png"
search: true
title: "Machine Learning Systems"
left:
- text: "TinyTorch"
menu:
- icon: fire
text: "TinyTorch Home"
href: ./index.qmd
- text: "Getting Started"
href: getting-started.qmd
- text: "Big Picture"
href: big-picture.qmd
- text: "---"
- text: "Foundation Tier"
href: tiers/foundation.qmd
- text: "Architecture Tier"
href: tiers/architecture.qmd
- text: "Optimization Tier"
href: tiers/optimization.qmd
- text: "Torch Olympics"
href: tiers/olympics.qmd
- text: "---"
- text: "Historical Milestones"
href: milestones/index.qmd
- text: "---"
- text: "TITO CLI"
href: tito/overview.qmd
- text: "Datasets Guide"
href: datasets.qmd
- text: "---"
# Guide and paper PDFs live next to the site they document, not
# in the shared Build menu. Both filenames match the artifacts
# injected by tinytorch-publish-live.yml during deploy.
- icon: file-pdf
text: "TinyTorch Guide (PDF)"
href: assets/downloads/TinyTorch-Guide.pdf
target: _blank
- icon: file-pdf
text: "TinyTorch Paper (PDF)"
href: assets/downloads/TinyTorch-Paper.pdf
target: _blank
sidebar:
- id: main
style: "floating"
background: light
logo: "assets/images/logos/logo-tinytorch-transparent.png"
collapse-level: 2
contents:
- text: "TinyTorch Home"
href: index.qmd
- text: "---"
- section: "🚀 Getting Started"
contents:
- href: preface.qmd
text: "Welcome"
- href: big-picture.qmd
text: "Big Picture"
- href: getting-started.qmd
text: "Quick Start"
- section: "🏗 Foundation Tier"
contents:
- href: tiers/foundation.qmd
text: "📖 Tier Overview"
- href: modules/01_tensor.qmd
text: "01. Tensor"
- href: modules/02_activations.qmd
text: "02. Activations"
- href: modules/03_layers.qmd
text: "03. Layers"
- href: modules/04_losses.qmd
text: "04. Losses"
- href: modules/05_dataloader.qmd
text: "05. DataLoader"
- href: modules/06_autograd.qmd
text: "06. Autograd"
- href: modules/07_optimizers.qmd
text: "07. Optimizers"
- href: modules/08_training.qmd
text: "08. Training"
# Milestones are intentionally OMITTED from the HTML sidebar — they
# interleaved between tiers and broke the Foundation -> Architecture
# -> Optimization -> Capstone reading flow that the sidebar is meant
# to communicate. They remain fully accessible via:
# 1. The top navbar's "Historical Milestones" entry (line 80 above)
# which routes to milestones/index.qmd (the hub page).
# 2. The PDF build (tinytorch/quarto/pdf/_quarto.yml), which
# interleaves them as separate `part:` blocks — that's the
# intended reading experience in print.
# Do not restore milestone sections to the HTML sidebar without
# rethinking that tier-flow design.
- section: "🏛️ Architecture Tier"
contents:
- href: tiers/architecture.qmd
text: "📖 Tier Overview"
- href: modules/09_convolutions.qmd
text: "09. Convolutions"
- href: modules/10_tokenization.qmd
text: "10. Tokenization"
- href: modules/11_embeddings.qmd
text: "11. Embeddings"
- href: modules/12_attention.qmd
text: "12. Attention"
- href: modules/13_transformers.qmd
text: "13. Transformers"
- section: "⏱️ Optimization Tier"
contents:
- href: tiers/optimization.qmd
text: "📖 Tier Overview"
- href: modules/14_profiling.qmd
text: "14. Profiling"
- href: modules/15_quantization.qmd
text: "15. Quantization"
- href: modules/16_compression.qmd
text: "16. Compression"
- href: modules/17_acceleration.qmd
text: "17. Acceleration"
- href: modules/18_memoization.qmd
text: "18. Memoization"
- href: modules/19_benchmarking.qmd
text: "19. Benchmarking"
- section: "🏅 Capstone"
contents:
- href: tiers/olympics.qmd
text: "📖 Competition Overview"
- href: modules/20_capstone.qmd
text: "20. Torch Olympics"
- section: "🎓 Conclusion"
contents:
- href: conclusion.qmd
text: "You Built Something Real"
- section: "🛠️ TITO CLI"
contents:
- href: tito/overview.qmd
text: "Command Overview"
- href: tito/modules.qmd
text: "Module Workflow"
- href: tito/milestones.qmd
text: "Milestone System"
- href: tito/data.qmd
text: "Progress & Data"
- href: tito/testing.qmd
text: "Developer Testing"
- href: tito/troubleshooting.qmd
text: "Troubleshooting"
- section: "📚 Reference"
contents:
- href: datasets.qmd
text: "Datasets Guide"
- href: resources.qmd
text: "Learning Resources"
- section: "🤝 Community"
contents:
- href: team.qmd
text: "Team"
- href: community.qmd
text: "Ecosystem"
- href: credits.qmd
text: "Acknowledgments"
page-footer:
left: |
&copy; 2024-2026 Harvard University. Licensed under <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">CC-BY-NC-SA 4.0</a>
center: |
Part of the <a href="https://mlsysbook.ai">Machine Learning Systems</a> textbook
right:
- icon: github
href: https://github.com/harvard-edge/cs249r_book
aria-label: "View source on GitHub"
- icon: star
href: https://github.com/harvard-edge/cs249r_book
aria-label: "Star this repository"
background: light
border: true
execute:
enabled: false
format:
html:
theme:
light:
- default
- assets/styles/style.scss
dark:
- default
- assets/styles/style.scss
- assets/styles/dark-mode.scss
respect-user-color-scheme: true
toc: true
toc-depth: 3
number-sections: false
code-copy: true
code-overflow: wrap
highlight-style:
light: github
dark: github-dark
link-external-icon: false
link-external-newwindow: true
anchor-sections: true
mermaid:
theme: default
include-in-header:
- file: ../../shared/config/site-head.html
- text: |
<link rel="apple-touch-icon" href="/assets/images/logos/logo-tinytorch.png">
<meta name="theme-color" content="#D4740C">
<!-- Release identity (rendered into the footer pill below).
The publish workflow drops release-manifest.json at
/tinytorch/release-manifest.json before deploy; preview
and local renders silently no-op. -->
<meta name="release-manifest" content="/tinytorch/release-manifest.json">
include-after-body:
- file: assets/scripts/subscribe-modal.js
- file: assets/scripts/ml-timeline.js
- file: assets/scripts/sidebar-subtitle.html
- file: ../../shared/release/release-pill.html
metadata-files:
- ../../shared/config/navbar-common.yml
- config/announcement.yml