33 Commits

Author SHA1 Message Date
Vijay Janapa Reddi
7bc4f6f835 Reorganize repository: rename docs/ to site/ for clarity
- Delete outdated site/ directory
- Rename docs/ → site/ to match original architecture intent
- Update all GitHub workflows to reference site/:
  - publish-live.yml: Update paths and build directory
  - publish-dev.yml: Update paths and build directory
  - build-pdf.yml: Update paths and artifact locations
- Update README.md:
  - Consolidate site/ documentation (website + PDF)
  - Update all docs/ links to site/
- Test successful: Local build works with all 40 pages

The site/ directory now clearly represents the course website
and documentation, making the repository structure more intuitive.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 16:31:51 -08:00
Vijay Janapa Reddi
fc6f070dfc Add smart sticky bar with under construction badge
- Shows 🚧 Under Construction badge next to brand
- Bar hides on scroll down, reappears on scroll up
- Always visible at top of page
- Badge hidden on mobile to save space
2025-12-02 21:26:13 -05:00
Vijay Janapa Reddi
403d4c2f4c Add .tito/backups and docs/_build to gitignore 2025-11-28 14:59:51 +01:00
Vijay Janapa Reddi
bc3105a969 Add release check workflow and clean up legacy dev files
This commit implements a comprehensive quality assurance system and removes
outdated backup files from the repository.

## Release Check Workflow

Added GitHub Actions workflow for systematic release validation:
- Manual-only workflow (workflow_dispatch) - no automatic PR triggers
- 6 sequential quality gates: educational, implementation, testing, package, documentation, systems
- 13 validation scripts (4 fully implemented, 9 stubs for future work)
- Comprehensive documentation in .github/workflows/README.md
- Release process guide in .github/RELEASE_PROCESS.md

Implemented validators:
- validate_time_estimates.py - Ensures consistency between LEARNING_PATH.md and ABOUT.md files
- validate_difficulty_ratings.py - Validates star rating consistency across modules
- validate_testing_patterns.py - Checks for test_unit_* and test_module() patterns
- check_checkpoints.py - Recommends checkpoint markers for long modules (8+ hours)

## Pedagogical Improvements

Added checkpoint markers to Module 05 (Autograd):
- Checkpoint 1: After computational graph construction (~40% progress)
- Checkpoint 2: After automatic differentiation implementation (~80% progress)
- Helps students track progress through the longest foundational module (8-10 hours)

## Codebase Cleanup

Removed 20 legacy *_dev.py files across all modules:
- Confirmed via export system analysis: only *.py files (without _dev suffix) are used
- Export system explicitly reads from {name}.py (see tito/commands/export.py line 461)
- All _dev.py files were outdated backups not used by the build/export pipeline
- Verified all active .py files contain current implementations with optimizations

This cleanup:
- Eliminates confusion about which files are source of truth
- Reduces repository size
- Makes development workflow clearer (work in modules/XX_name/name.py)

## Formatting Standards Documentation

Documents formatting and style standards discovered through systematic
review of all 20 TinyTorch modules.

### Key Findings

Overall Status: 9/10 (Excellent consistency)
- All 20 modules use correct test_module() naming
- 18/20 modules have proper if __name__ guards
- All modules use proper Jupytext format (no JSON leakage)
- Strong ASCII diagram quality
- All 20 modules missing 🧪 emoji in test_module() docstrings

### Standards Documented

1. Test Function Naming: test_unit_* for units, test_module() for integration
2. if __name__ Guards: Immediate guards after every test/analysis function
3. Emoji Protocol: 🔬 for unit tests, 🧪 for module tests, 📊 for analysis
4. Markdown Formatting: Jupytext format with proper section hierarchy
5. ASCII Diagrams: Box-drawing characters, labeled dimensions, data flow arrows
6. Module Structure: Standard template with 9 sections

### Quick Fixes Identified

- Add 🧪 emoji to test_module() in all 20 modules (~5 min)
- Fix Module 16 if __name__ guards (~15 min)
- Fix Module 08 guard (~5 min)

Total quick fixes: 25 minutes to achieve 10/10 consistency
2025-11-24 14:47:04 -05:00
Vijay Janapa Reddi
a2b106e305 Fix static assets deployment: add missing JS files to conf.py and ensure .nojekyll is copied to build output 2025-11-15 12:00:59 -05:00
Vijay Janapa Reddi
b56af30ba7 Update development documentation and workflow files
- Update GitHub workflow for publishing
- Update December 2024 release notes
- Update module about template and testing documentation
- Update milestone template
2025-11-14 08:28:24 -05:00
Vijay Janapa Reddi
b9f142b2d8 Update site documentation and development guides
- Improve site navigation and content structure
- Update development testing documentation
- Enhance site styling and visual consistency
- Update release notes and milestone templates
- Improve site rebuild script functionality
2025-11-13 10:42:51 -05:00
Vijay Janapa Reddi
dcbee3a638 Add GitHub Pages workflows for live and dev sites 2025-11-12 10:22:50 -05:00
Vijay Janapa Reddi
d03435c5c3 Update documentation for site/ migration and restructuring
Documentation updates across the codebase:

Root documentation:
- README.md: Updated references from book/ to site/
- CONTRIBUTING.md: Updated build and workflow instructions
- .shared-ai-rules.md: Updated AI assistant rules for new structure

GitHub configuration:
- Issue templates updated for new module locations
- Workflow references updated from book/ to site/

docs/ updates:
- STUDENT_QUICKSTART.md: New paths and structure
- module-rules.md: Updated module development guidelines
- NBGrader documentation: Updated for module restructuring
- Archive documentation: Updated references

Module documentation:
- modules/17_memoization/README.md: Updated after reordering

All documentation now correctly references:
- site/ instead of book/
- modules/XX_name/ instead of modules/source/
2025-11-10 19:42:48 -05:00
Vijay Janapa Reddi
acf1bc2afb build: add PDF generation infrastructure for book
Add build scripts and GitHub Actions workflow to support PDF generation:
- build_pdf.sh: LaTeX-based PDF build for professional quality
- build_pdf_simple.sh: HTML-to-PDF build without LaTeX requirement
- Makefile: convenient shortcuts for common build tasks
- GitHub Actions workflow: automated PDF builds on demand

Supports multiple output formats:
- HTML website (default, via jupyter-book)
- PDF via HTML-to-PDF (pyppeteer, no LaTeX needed)
- PDF via LaTeX (professional typography, requires LaTeX)

Usage:
  make html        - Build HTML website
  make pdf-simple  - Build PDF without LaTeX
  make pdf         - Build PDF with LaTeX
2025-11-09 14:51:48 -05:00
Vijay Janapa Reddi
ed38878999 fix: Pin to jupyter-book < 1.0 as v2 has issues with directory handling 2025-11-08 19:06:17 -05:00
Vijay Janapa Reddi
3c7bd5d331 debug: Add directory listing after build to diagnose missing HTML output 2025-11-08 19:04:36 -05:00
Vijay Janapa Reddi
616090d2e7 fix: Remove --all flag from jupyter-book build to only generate HTML 2025-11-08 19:01:53 -05:00
Vijay Janapa Reddi
baa93c9937 debug: Add file listing to diagnose checkout issue 2025-11-08 18:59:53 -05:00
Vijay Janapa Reddi
7b00c46225 fix: Clean before build and exclude appendices directory from Jupyter Book 2025-11-08 18:52:25 -05:00
Vijay Janapa Reddi
1f0e5713b4 fix: Simplify book deployment workflow and remove legacy convert_readmes dependency 2025-11-08 18:47:02 -05:00
Vijay Janapa Reddi
c9bde1d2a5 fix: Use python -m tito.main instead of tito command
- tito entry point not configured in pyproject.toml
- Use module invocation for deploy-book workflow
2025-10-19 13:17:00 -04:00
Vijay Janapa Reddi
e161b018c1 ci: Disable test-notebooks workflow
- This workflow was testing notebook conversion features
- Not required for website deployment
- Website deploys via deploy-book.yml on main branch
- Can re-enable later if needed for CI testing
2025-10-19 13:00:16 -04:00
Vijay Janapa Reddi
ef820791b9 fix: Correct tito command syntax in workflow
- Change 'tito module notebooks' to 'tito notebooks'
- The notebooks command is a top-level command, not a module subcommand
- Fixes workflow test failures
2025-10-19 12:53:02 -04:00
Vijay Janapa Reddi
9a4c329b61 fix: Update GitHub Actions to use v4 of upload-artifact and cache
- Upgrade actions/upload-artifact from v3 to v4
- Upgrade actions/cache from v3 to v4
- Resolves deprecation warnings causing workflow failures
2025-10-19 12:49:23 -04:00
Vijay Janapa Reddi
8160776485 fix: Resolve GitHub Actions workflow failures
- Fix YAML syntax error in test-notebooks.yml (multi-line Python code)
- Add missing setup-dev.sh script referenced by workflow
- Both workflow files now pass YAML validation
2025-10-19 12:46:34 -04:00
Vijay Janapa Reddi
984772dd40 Add documentation standards and development setup
- Create .claude directory with team structure and guidelines
- Add MODULE_DEVELOPMENT_GUIDELINES.md for educational patterns
- Add EDUCATIONAL_PATTERN_TEMPLATE.md for consistent module structure
- Add GIT_WORKFLOW_STANDARDS.md for branch management
- Create setup-dev.sh for automated environment setup
- Add notebook workflow documentation
- Add CI/CD workflow for notebook testing

This commit establishes consistent development standards and documentation
for the TinyTorch educational ML framework development.
2025-09-15 13:30:10 -04:00
Vijay Janapa Reddi
d4d6277604 🔧 Complete module restructuring and integration fixes
📦 Module File Organization:
- Renamed networks_dev.py → dense_dev.py in 05_dense module
- Renamed cnn_dev.py → spatial_dev.py in 06_spatial module
- Added new 07_attention module with attention_dev.py
- Updated module.yaml files to reference correct filenames
- Updated #| default_exp directives for proper package exports

🔄 Core Package Updates:
- Added tinytorch.core.dense (Sequential, MLP architectures)
- Added tinytorch.core.spatial (Conv2D, pooling operations)
- Added tinytorch.core.attention (self-attention mechanisms)
- Updated all core modules with latest implementations
- Fixed tensor assignment issues in compression module

🧪 Test Integration Fixes:
- Updated integration tests to use correct module imports
- Fixed tensor activation tests for new module structure
- Ensured compatibility with renamed components
- Maintained 100% individual module test success rate

Result: Complete 14-module TinyTorch framework with proper organization,
working integrations, and comprehensive test coverage ready for production use.
2025-07-18 02:10:49 -04:00
Vijay Janapa Reddi
1296722175 Fix GitHub Actions: install requirements.txt before tito CLI to include rich dependency 2025-07-15 23:36:14 -04:00
Vijay Janapa Reddi
a81321b373 Fix GitHub Actions: create and activate virtual environment for tito CLI 2025-07-15 23:33:43 -04:00
Vijay Janapa Reddi
308f57ff2f Fix GitHub Actions workflow: remove virtual environment complexity in CI 2025-07-15 23:29:09 -04:00
Vijay Janapa Reddi
4f052f5914 Fix GitHub workflow to properly activate virtual environment
- Combine venv setup and tito execution in same step
- Add pytest installation for tito environment validation
- Add explanatory comments about GitHub Actions shell behavior
- Remove environment skipping hack in favor of proper setup
- Workflow now uses tito CLI consistently for book generation
2025-07-15 23:26:34 -04:00
Vijay Janapa Reddi
c3644c7620 Streamline GitHub workflow to use tito commands
- Replace manual steps with tito book build
- Install tito CLI in workflow
- Add tito/** to trigger paths
- Simplify build process for consistency
2025-07-15 22:53:34 -04:00
Vijay Janapa Reddi
de5b7ec838 Simplify book directory structure
 Remove unnecessary nesting: book/tinytorch-course/ → book/
 Update all path references in scripts and workflows
 Cleaner development experience with shorter paths
 Book builds successfully with simplified structure

Changes:
- Move all book files up one directory level
- Update convert_modules.py paths
- Update GitHub Actions workflow paths
- Update book configuration paths
- Test confirms everything works correctly
2025-07-15 18:21:59 -04:00
Vijay Janapa Reddi
891ab98acd Implement interactive access with learning goals admonitions
 Add learning goals extraction with beautiful admonition blocks
 Create hybrid book approach (overview pages + interactive buttons)
 Generate both notebooks (Binder/Colab) and book pages
 Update GitHub Actions for main branch deployment
 All 14 modules now have consistent formatting

Features:
- Extract content from source files (no duplication)
- Interactive launch buttons (GitHub/Binder/Colab)
- Learning objectives as 🎯 tip admonitions
- Notebooks generated in-place for direct access
- Clean separation: dev → main → website deployment
2025-07-15 18:19:29 -04:00
Vijay Janapa Reddi
d2dcb60b98 fix: Update GitHub Actions workflow to trigger on dev branch
- Changed trigger from main to dev branch (repository default)
- Updated deploy condition to check for dev branch
- Ensures workflow runs on correct branch for this repository
2025-07-15 13:09:53 -04:00
Vijay Janapa Reddi
9860258643 feat: Update GitHub Actions workflow for raw export builds
- Add module conversion step before book building
- Install jupytext dependency for conversion script
- Maintains existing GitHub Pages deployment pipeline
- Automatically converts modules/source/ to notebooks on deploy
2025-07-15 12:51:32 -04:00
Vijay Janapa Reddi
036bfbd6fc 🚀 Set up Jupyter Book infrastructure for TinyTorch course
- Created interactive Jupyter Book structure in book/tinytorch-course/
- Configured for GitHub Pages, Binder, and Colab integration
- Set up automated deployment with GitHub Actions
- Designed comprehensive course structure with 4 main parts:
  * Foundation (Setup, Tensors, Activations)
  * Building Blocks (Layers, Networks, CNNs)
  * Training Systems (DataLoader, Autograd, Optimizers, Training)
  * Production & Performance (Compression, Kernels, Benchmarking, MLOps)
- Added engaging introduction with interactive features
- Ready for module conversion from *_dev.py to executable notebooks

Next: Convert modules/source/*_dev.py files to interactive chapters
2025-07-15 10:14:40 -04:00