The v0.4.2 tag was created but the version in index.qmd was not
updated from v0.4.1. This corrects the mismatch between the git tag
and the displayed version on the website.
- Replace when-format="html" with when-format="html:js" to exclude EPUB
- Remove JavaScript and complex HTML from EPUB builds
- Add conditional content blocks for EPUB/PDF with helpful fallback messages
- Fix foreword.qmd to use native Quarto div syntax instead of raw HTML
- Update acknowledgements with continuously evolving contributor message
- Standardize logo sizes (150px-200px) for consistent appearance
- Update SocratiQ paper link with full title for better citation
This addresses XML parsing errors in EPUB builds caused by JavaScript,
iframes, and style tags that are not reliably supported in EPUB readers.
Key changes:
- acknowledgements.qmd: Conditional display for contributors table/JS
- socratiq.qmd: Conditional display for interactive features
- changelog.qmd: Use html:js instead of html
- index.qmd: Conditional iframe for GitHub button
- foreword.qmd: Replace <div>/<style> with Quarto native syntax
Addresses #1014
Co-authored-by: bluebaer7 <bluebaer7@users.noreply.github.com>
Add two complementary spell checking tools for content validation:
- check_tikz_spelling.py: Extracts and validates all visible text from
TikZ diagrams including node labels, inline annotations, custom pics,
foreach loops, legends, and comments. Uses pattern-based matching for
common typos with optional aspell integration.
- check_prose_spelling.py: Intelligently parses QMD structure to check
only actual prose content while excluding YAML frontmatter, code blocks,
TikZ diagrams, inline code, math expressions, and URLs. Uses aspell with
comprehensive ignore list of 500+ technical terms and acronyms.
Both tools provide detailed output with file paths, line numbers, and
context for identified spelling errors. The TikZ checker found and enabled
fixing of typos like 'gatewey', 'poihnts', and 'Intellignet' across the
codebase.
Corrects the spelling of "Intelligent" in the
"Intelligent Device" node label within the TikZ diagram.
Co-authored-by: jianqingdu <jianqing.du@live.cn>
Merged dev branch to main for publication.
Release Type: patch
Published by: profvjreddi
Dev Commit: origin/dev
Specific Commit: latest dev
Description: Content updates and improvements
Add explicit explanation of why 80% sequential time limits speedup to 1.25x.
Also add Jahnic Beck to contributors for identifying the original calculation error.
Addresses #1009
Co-authored-by: Jahnic Beck <jahnic.beck@kienbaum.de>
Adds resilience to GitHub API status update calls in the baremetal workflow
to prevent Windows build failures due to network timeouts.
Changes:
- Add 10 second timeout to curl commands (down from 21+ seconds)
- Add retry logic with 2 attempts and 2 second delays
- Make status updates non-fatal with continue-on-error flag
- Add clear error messaging when API calls fail
The build status updates are now resilient to transient network issues
while preserving the custom status checks that may be used by branch
protection rules or external monitoring.
Remove duplicate 'panting' in VLM lab image description output.
The text incorrectly read 'panting or panting' when describing
the dog in the garden scene.
- Lead with 2025 goal to reach 10,000 GitHub stars
- Add TinyTorch December release with compelling tagline
- Streamline MIT Press announcement
- Simplify Support Our Mission section on index page
- Remove redundant messaging and awkward star definitions
- Maintain consistent educational mission framing
GitHub release UI already displays the title, so including it in the
markdown body creates visual redundancy. Updated generator to start
directly with description paragraph followed by Key Highlights section.
All existing releases (v0.1.0 through v0.4.1) have been updated to
follow this cleaner format.
PROBLEM:
- Generator was searching for specific commit messages ('Built site for gh-pages')
- Workflow changed message format to '🚀 Deploy release from commit...'
- This caused it to miss recent October publishes and look back to August
SOLUTION:
- ANY commit to gh-pages branch = publication
- Removed message filtering entirely
- Now uses: git log -n 1 origin/gh-pages (simple and reliable)
RESULT:
- Correctly finds Oct 20, 2025 as last publish (was finding Aug 6)
- Tracks 150 commits since last publish (not 1,491)
- Works regardless of commit message format changes
Bringing dev up to date with main branch to ensure workflow files
are synchronized before next publish. This includes the pre-commit
validation fix and all recent main merges.
Replace 'str | None' with 'Optional[str]' in validate_citations.py
for compatibility with Python 3.9 and earlier versions used in
pre-commit environments.
Completely rewrites release notes generation to parse and use actual changelog data:
BEFORE:
- Returned hardcoded generic text regardless of changelog content
- Had misleading fallback that ignored real changes
- No categorization or analysis
AFTER:
- Parses changelog sections (frontmatter, chapters, labs, appendix)
- Categorizes changes (content, infrastructure, bug fixes)
- Extracts specific items with chapter names and details
- Generates statistics from actual data (61 updates, 29 chapters, etc)
- Fails explicitly if changelog missing (no misleading fallbacks)
- Validates output quality (must be > 100 chars)
Release notes now accurately reflect what actually changed rather than
returning generic marketing text. Critical for proper release documentation.
Extensively refactors and improves content across the book, including chapters, labs, and frontmatter.
Key improvements include:
- Enhanced clarity, flow, and accuracy of content
- Standardized formatting and learning objectives
- Improved navigation with section IDs and cross-references
- Incorporated expert feedback and student insights
- Refined image handling and script naming conventions
- Added new content, figures, and concept maps
These changes aim to provide a more comprehensive and impactful learning experience.
Addresses script organization and maintainability:
- Merged generate_release_notes.py and release_notes.py into changelog-releasenotes.py
- Removed deprecated change_log.py (superseded by changelog-releasenotes.py)
- Added diagram-*.pdf to .gitignore (Quarto auto-generated cache files)
This consolidation simplifies the release workflow and eliminates duplicate code.
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.
Corrects answer redistribution logic in multiple-choice questions to properly update all references to the answer options being swapped, avoiding double-swapping issues.
Addresses an issue where answer text wasn't correctly updated when MCQ answer options were redistributed. It ensures references to option letters (A, B, C, D) are updated in both "The correct answer is X" and "Option X" contexts within the answer text.
Corrects factual errors and improves explanations in several
quizzes to enhance learning outcomes and reduce ambiguity.
This update ensures that the quizzes accurately assess
understanding of the course material and provide helpful feedback
to learners.
Updated the training-serving skew explanation in the main text to be clearer
(changed 'an infrastructure issue' to 'which is an infrastructure issue').
Also expanded the quiz section for 'How ML Systems Differ from Traditional
Software' with three additional questions covering:
- Failure mode differences between traditional software and ML systems (MCQ)
- Training-serving skew as an infrastructure vs algorithmic issue (TF)
- Monitoring requirements specific to ML systems (SHORT)
Addresses #1018
Co-authored-by: Nimo <nimo.naamani@gmail.com>
Moved the 'silent performance degradation' self-check question from the
'Defining ML Systems' section to the new 'How ML Systems Differ from
Traditional Software' section where the concept is actually explained.
Also added three additional questions to the new section to provide
comprehensive coverage of:
- Failure mode differences (MCQ)
- Training-serving skew as infrastructure issue (TF)
- Monitoring requirements for ML systems (SHORT)
Updated metadata to reflect 11 sections (was 10).
Addresses #1018
Co-authored-by: Nimo <nimo.naamani@gmail.com>
Ensures consistent rendering of the inspirational quote across various output formats (HTML and non-HTML).
This change improves the quote's presentation, making it visually appealing in HTML while maintaining readability in other formats.