* Restructure: Move book content to book/ subdirectory
- Move quarto/ → book/quarto/
- Move cli/ → book/cli/
- Move docker/ → book/docker/
- Move socratiQ/ → book/socratiQ/
- Move tools/ → book/tools/
- Move scripts/ → book/scripts/
- Move config/ → book/config/
- Move docs/ → book/docs/
- Move binder → book/binder
Git history fully preserved for all moved files.
Part of repository restructuring to support MLSysBook + TinyTorch.
Pre-commit hooks bypassed for this commit as paths need updating.
* Update pre-commit hooks for book/ subdirectory
- Update all quarto/ paths to book/quarto/
- Update all tools/ paths to book/tools/
- Update config/linting to book/config/linting
- Update project structure checks
Pre-commit hooks will now work with new directory structure.
* Update .gitignore for book/ subdirectory structure
- Update quarto/ paths to book/quarto/
- Update assets/ paths to book/quarto/assets/
- Maintain all existing ignore patterns
* Update GitHub workflows for book/ subdirectory
- Update all quarto/ paths to book/quarto/
- Update cli/ paths to book/cli/
- Update tools/ paths to book/tools/
- Update docker/ paths to book/docker/
- Update config/ paths to book/config/
- Maintain all workflow functionality
* Update CLI config to support book/ subdirectory
- Check for book/quarto/ path first
- Fall back to quarto/ for backward compatibility
- Maintain full CLI functionality
* Create new root and book READMEs for dual structure
- Add comprehensive root README explaining both projects
- Create book-specific README with quick start guide
- Document repository structure and navigation
- Prepare for TinyTorch integration
- Remove MAINTENANCE_GUIDE.md (duplicate of DEVELOPMENT.md)
- Remove RELEASE_PROCESS.md (covered by PUBLISH_LIVE_WORKFLOW.md)
- Update all docs to use binder CLI instead of deprecated make commands
- Fix references to deleted files
- Update domain from mlsysbook.org to mlsysbook.ai
- Fix outdated paths (tools/scripts/build/ → binder commands)
- Add essential commands reference for daily workflow
- Simplify DEVELOPMENT.md to focus on core commands (clean, build, doctor)
- Verify all documented commands work correctly
Removes tools/scripts/build/ directory containing:
- README.md
- generate_stats.py
- standardize_sources.sh
These scripts appear to have been deprecated or relocated as part of
repository reorganization. The clean.sh script has been moved to
tools/setup/clean.sh.
Release notes are now managed directly on GitHub releases.
All releases have been updated with actual release dates in their
descriptions. Future releases will be handled by publish-live workflow.
Move release notes files from root to docs/releases/ for better
organization and discoverability. These files serve as local backups
of GitHub release notes.
Add automatic version management to publish-live workflow:
- Update version in index.qmd during publish workflow
- Version calculated based on release type (patch/minor/major)
- Committed to dev branch before merge to main
- Version displayed in title metadata and links to releases page
Changes:
- Add update-version job to publish-live.yml workflow
- Create version-link.js to make version link to GitHub releases
- Add comments in index.qmd documenting automation
- Update PUBLISH_LIVE_WORKFLOW.md with version automation docs
- Include version-link.js in HTML builds
This ensures version number stays in sync with GitHub releases
automatically without manual editing.
- Added Jahnic-kb to contributors list for reporting Amdahl's Law error
- Removed cursoragent from contributors list
- Regenerated contributor tables in README and acknowledgements
Creates a systematic framework for aligning chapter learning objectives with quiz assessments, enhancing pedagogical validity and traceability.
The framework outlines structural requirements for learning objectives, Bloom's Taxonomy mapping, question-to-objective mapping, and validation rules. It also specifies the schema for master alignment files and details the implementation process across different phases.
- Updated CLI build commands to use proper --to=format syntax instead of --to format
- Fixed in build_full(), build_chapters(), and build_html_only() methods
- Updated BUILD.md documentation to reflect correct syntax
- Updated manage_captions.py error message with correct syntax
This ensures compatibility with quarto's expected command-line argument format.
- Replace 'hello' command with 'doctor' for system health checks
- Add detailed build command examples for single/multiple chapters
- Add dedicated shortcuts for PDF and EPUB builds
- Restructure requirements section with clear table format
- Add version requirements for all dependencies
- Improve clarity on Python dependencies and their purposes
- Remove glossary.qmd and references.qmd from always_include list
- Update HTML fast build to only include index.qmd + target chapters
- Selective builds now only include index.qmd + target chapter
- Update documentation to reflect minimal 2-file builds
- Ensures truly selective chapter building as requested
Addresses user feedback that glossary and references should be commented out
for selective chapter builds in Binder environments.
- Add detailed explanation of selective PDF build process
- Document automatic chapter commenting system for PDF builds
- Add cloud Binder compatibility section for mybinder.org users
- Include example output showing exactly what gets built
- Clarify that system automatically handles index.qmd + target chapter only
- Add usage examples for both local and cloud environments
📚 Documentation Updates:
- Updated README.md with current binder commands
- Removed references to hello command (replaced with doctor)
- Updated CLI README.md to remove binder_legacy references
- Updated BINDER.md with current command set and shortcuts
- Removed check/check-tags from all documentation
- Updated doctor.py to only check for binder executable
🎯 Key Changes:
- All docs now reference current binder commands only
- Consistent command examples throughout documentation
- Updated shortcuts to match current CLI aliases
- Removed legacy command references
- Focus on build-centric workflow as intended
✅ Documentation Consistency:
- README.md: Updated quick start and development sections
- cli/README.md: Removed legacy references
- docs/BINDER.md: Updated command tables and examples
- All examples use current binder command structure
Refactors the CLI to streamline command usage, making it more intuitive.
It simplifies the build process by introducing default behaviors
and removing unnecessary format specifications. Also introduces 'pdf' command
to build the book in PDF format.
This change enhances the user experience and improves the overall workflow.
- Update CONTAINER_BUILDS.md to reflect current workflow status
- Fix workflow cleanup documentation examples
- Update PUBLISH_LIVE_WORKFLOW.md references
- Clarify that container workflow is now the primary build method
- Update Quarto version from 1.7.13 to 1.7.31 in installation instructions
- Update Python requirement from 3.8+ to 3.9+ to match current needs
- Update binder command examples to use simplified syntax
- Remove outdated chapter-specific build syntax in favor of full builds
This ensures the build documentation reflects current tool versions and usage patterns.
This commit introduces a comprehensive refactoring of the Docker container CI/CD pipeline to improve reliability, maintainability, and efficiency.
Key changes include:
- Consolidated build logic into dedicated workflows (, ).
- Modernized all container build steps to use the robust for superior caching.
- Simplified execution workflows (, ) to only pull pre-built images, enforcing a clean separation of concerns.
- Standardized the Docker directory structure to a more conventional and .
- Removed outdated documentation and corrected all file paths across the repository to align with the new structure.
- Rename docker/quarto-linux-build/ → docker/quarto-build-linux/
- Update all file references to use new folder path
- Now consistent with quarto-build-windows/ naming
- Standardized pattern: docker/quarto-build-{os}/
Files updated:
- .github/workflows/build-linux-container.yml: Dockerfile paths
- docker/quarto-build-linux/Dockerfile: COPY paths
- docker/quarto-build-linux/Dockerfile.enhanced: COPY paths
- docs/CONTAINER_BUILDS.md: documentation references
- docs/CONTAINER_FIXES_2025.md: documentation references
This ensures consistent naming across all Docker assets and makes
the project structure more intuitive.
- Create enhanced build manager that checks container availability
- Automatically builds containers only when needed
- Intelligently routes to fast container builds vs traditional builds
- Maintains backward compatibility with existing workflows
- Fixes container naming consistency across all workflows
- Provides comprehensive reporting and fallback protection
- Designed for safe testing on feature branches
Updates documentation to reflect the new location of the PDF file within the 'assets/downloads' subdirectory.
This change ensures consistent access and organization of downloadable resources.
Updates the PDF download link in the documentation to reflect the new location of the PDF file. This ensures users can access the latest version of the document.
- Document two-tier publishing system
- Clarify website updates vs formal releases
- Update workflow examples for new commands
- Explain deployment strategy and use cases
- Add comprehensive release process documentation for academic textbook
- Update AI prompt to generate textbook-appropriate release notes
- Enhance version guide with examples specific to textbook releases
- Focus on educational content, chapters, and student-facing improvements
This establishes clean release practices going forward with proper
semantic versioning for textbook milestones.
- Fixed Linux and Windows Dockerfiles with proper dependency paths
- Simplified container tests to focus on installation verification
- Updated image naming convention (linux-build, windows-build)
- Added configurable environment variables for better maintainability
- Fixed Windows Ghostscript installation to use chocolatey-only approach
- Enhanced progress tracking and error handling throughout
- Cleaned up both workflows to remove complex integration tests
- Added comprehensive documentation of all fixes
Performance improvements:
- Linux container: 5-10 minutes (vs 45 minutes traditional)
- Windows container: 10-15 minutes (vs 45 minutes traditional)
- build-linux-container.yml: '�� Build Linux Container'
- build-windows-container.yml: '🐳 Build Windows Container'
- docker/quarto-linux-build/: Linux container files
- docker/quarto-build-windows/: Windows container files
- Update all file paths and documentation
- Ensure consistent naming across workflows
- build-container.yml → build-linux-container.yml
- build-container-windows.yml → build-windows-container.yml
- Update documentation to reflect new naming
- Clarify Linux vs Windows container differences
- Add separate scheduling information
- Move Dockerfile to docker/quarto-build/
- Add docker/quarto-build/README.md with documentation
- Add docker/quarto-build/.dockerignore for build optimization
- Update workflow to use new Dockerfile path
- Update documentation to reflect new structure
- Improve organization and maintainability
- Add Dockerfile with all dependencies pre-installed
- Add build-container.yml workflow for container management
- Add quarto-build-container.yml for containerized builds
- Add documentation for container system
- Keep Windows builds unchanged for now
- Expected performance improvement: 45min -> 5-10min for Linux
- Rename script to better reflect dual purpose (changelog + release notes)
- Add comprehensive docstring explaining both use cases
- Update all workflow references to use new script name
- Add configurable AI model variables at top of publish-live.yml
- Update documentation to reflect new script name and purpose
- Improve script organization and clarity
The script now clearly handles both:
1. Changelog entries for CHANGELOG.md
2. Release notes for GitHub releases
This makes the purpose much clearer and the name more descriptive.
- Remove OpenAI API key requirements and dependencies
- Make Ollama the default and only AI option
- Simplify workflow to use only local AI processing
- Remove OpenAI fallback logic
- Update documentation to reflect Ollama-only approach
- Clean up Python dependencies (remove openai package)
This eliminates external API dependencies and simplifies
the AI integration to use only local Ollama models.
- Install Ollama in GitHub Actions workflow
- Pull configurable AI model (default: gemma2:9b)
- Add AI model input to workflow parameters
- Implement fallback to OpenAI if Ollama fails
- Add comprehensive error handling and testing
- Update documentation with AI model configuration
This enables intelligent AI-powered release notes generation
using your existing changelog system with Ollama models.
- Modified publish-live workflow to create DRAFT releases instead of published ones
- Added release notes generator script for comprehensive analysis
- Updated documentation with manual release notes workflow
- Provides full control over release notes while maintaining automation
This allows custom release notes while keeping the PDF workflow automated.
- Modified publish-live workflow to download PDF from artifacts and upload to release assets
- Updated quarto-build deployment to copy PDF to assets but exclude from git commits
- Added PDF exclusion rules to .gitignore
- Removed PDF commit steps from publish.sh and binder scripts
- Created test script to verify PDF handling
- Added comprehensive documentation for the new workflow
This ensures PDF is available for download but not tracked in git repository,
keeping the repo clean while maintaining accessibility.
- Update BINDER.md with publish command and about command
- Update DEVELOPMENT.md with new build workflow
- Update tools/scripts/README.md to reference binder
- Update main README.md with publishing section