TinyTorch educational deep learning framework now lives at tinytorch/
Structure:
- tinytorch/src/ - Source modules (single source of truth)
- tinytorch/tito/ - CLI tool
- tinytorch/tests/ - Test suite
- tinytorch/site/ - Jupyter Book website
- tinytorch/milestones/ - Historical ML implementations
- tinytorch/datasets/ - Educational datasets (tinydigits, tinytalks)
- tinytorch/assignments/ - NBGrader assignments
- tinytorch/instructor/ - Teaching materials
Workflows (with tinytorch- prefix):
- tinytorch-ci.yml - CI/CD pipeline
- tinytorch-publish-dev.yml - Dev site deployment
- tinytorch-publish-live.yml - Live site deployment
- tinytorch-build-pdf.yml - PDF generation
- tinytorch-release-check.yml - Release validation
Repository Variables added:
- TINYTORCH_ROOT = tinytorch
- TINYTORCH_SRC = tinytorch/src
- TINYTORCH_SITE = tinytorch/site
- TINYTORCH_TESTS = tinytorch/tests
All workflows use \${{ vars.TINYTORCH_* }} for path configuration.
Note: tinytorch/site/_static/favicon.svg kept as SVG (valid for favicons)
10 KiB
TinyTorch Release Process
Overview
This document describes the complete release process for TinyTorch, combining automated CI/CD checks with manual agent-driven reviews.
Release Types
Patch Release (0.1.X)
- Bug fixes
- Documentation updates
- Minor improvements
- Timeline: 1-2 days
Minor Release (0.X.0)
- New module additions
- Feature enhancements
- Significant improvements
- Timeline: 1-2 weeks
Major Release (X.0.0)
- Complete module sets
- Breaking API changes
- Architectural updates
- Timeline: 1-3 months
Two-Track Quality Assurance
Track 1: Automated CI/CD (Continuous)
GitHub Actions runs on every commit and PR:
Every Push/PR:
├── Educational Validation (Module structure, objectives)
├── Implementation Validation (Time, difficulty, tests)
├── Test Validation (All tests, coverage)
├── Package Validation (Builds, installs)
├── Documentation Validation (ABOUT.md, checkpoints)
└── Systems Analysis (Memory, performance, production)
Trigger: Automatic on push/PR
Duration: 15-20 minutes
Pass Criteria: All 6 quality gates green
Track 2: Agent-Driven Review (Pre-Release)
Specialized AI agents provide deep review before releases:
TPM Coordinates:
├── Education Reviewer
│ ├── Pedagogical effectiveness
│ ├── Learning objective alignment
│ ├── Cognitive load assessment
│ └── Assessment quality
│
├── Module Developer
│ ├── Implementation standards
│ ├── Code quality patterns
│ ├── Testing completeness
│ └── PyTorch API alignment
│
├── Quality Assurance
│ ├── Comprehensive test validation
│ ├── Edge case coverage
│ ├── Performance testing
│ └── Integration stability
│
└── Package Manager
├── Module integration
├── Dependency resolution
├── Export/import validation
└── Build verification
Trigger: Manual (via TPM)
Duration: 2-4 hours
Pass Criteria: All agents approve
Complete Release Workflow
Phase 1: Development (Ongoing)
-
Feature Development
- Implement modules following DEFINITIVE_MODULE_PLAN.md
- Write tests immediately after each function
- Ensure NBGrader compatibility
- Add checkpoint markers to long modules
-
Local Validation
# Run validators locally python .github/scripts/validate_time_estimates.py python .github/scripts/validate_difficulty_ratings.py python .github/scripts/validate_testing_patterns.py python .github/scripts/check_checkpoints.py # Run tests pytest tests/ -v -
Commit & Push
git add . git commit -m "feat: Add [feature] to [module]" git push origin feature-branch
Phase 2: Pre-Release Review (1-2 days)
-
Create Release Branch
git checkout -b release/v0.X.Y git push origin release/v0.X.Y -
Automated CI/CD Check
- GitHub Actions runs automatically
- Review workflow results
- Fix any failures
-
Agent-Driven Comprehensive Review
Invoke TPM for multi-agent review:
Request to TPM: "I need a comprehensive quality review of all 20 TinyTorch modules for release v0.X.Y. Please coordinate: 1. Education Reviewer - pedagogical validation 2. Module Developer - implementation standards 3. Quality Assurance - testing validation 4. Package Manager - integration health Run these in parallel and provide: - Consolidated findings report - Prioritized action items - Estimated effort for fixes - Timeline for completion Release Type: [patch/minor/major] Target Date: [YYYY-MM-DD]" -
Review Agent Reports
- Education Reviewer report
- Module Developer report
- Quality Assurance report
- Package Manager report
-
Address Findings
- Fix HIGH priority issues immediately
- Schedule MEDIUM priority for next sprint
- Document LOW priority as future improvements
Phase 3: Release Candidate (1 day)
-
Create Release Candidate
git tag -a v0.X.Y-rc1 -m "Release candidate 1 for v0.X.Y" git push origin v0.X.Y-rc1 -
Final Validation
- Run full test suite
- Build documentation
- Test package installation
- Manual smoke testing
-
Stakeholder Review (if applicable)
- Share RC with instructors
- Collect feedback
- Make final adjustments
Phase 4: Release (1 day)
-
Manual Release Check Trigger
Via GitHub UI:
- Go to Actions → TinyTorch Release Check
- Click "Run workflow"
- Select:
- Branch:
release/v0.X.Y - Release Type:
[patch/minor/major] - Check Level:
comprehensive
- Branch:
-
Review Release Report
- All quality gates pass
- Download release report artifact
- Verify all validations green
-
Merge to Main
git checkout main git merge --no-ff release/v0.X.Y git push origin main -
Create Official Release
git tag -a v0.X.Y -m "Release v0.X.Y: [Description]" git push origin v0.X.Y -
GitHub Release
- Go to Releases → Draft a new release
- Select tag:
v0.X.Y - Title:
TinyTorch v0.X.Y - Description: Include release report summary
- Attach artifacts (wheels, documentation)
- Publish release
-
Package Distribution
# Build distribution packages python -m build # Upload to PyPI (if applicable) python -m twine upload dist/*
Phase 5: Post-Release (Ongoing)
-
Documentation Updates
- Update README.md with new version
- Update CHANGELOG.md
- Rebuild Jupyter Book
- Deploy to mlsysbook.github.io
-
Communication
- Announce on GitHub
- Update course materials
- Notify instructors
- Social media (if applicable)
-
Monitoring
- Watch for issues
- Respond to feedback
- Plan next release
Quality Gates Reference
Must Pass for ALL Releases
✅ All automated CI/CD checks pass ✅ Test coverage ≥80% ✅ All agent reviews approved ✅ Documentation complete ✅ No HIGH priority issues
Additional for Major Releases
✅ All 20 modules validated ✅ Complete integration testing ✅ Performance benchmarks meet targets ✅ Comprehensive stakeholder review
Checklist Templates
Patch Release Checklist
## Pre-Release
- [ ] Local validation passes
- [ ] Automated CI/CD passes
- [ ] Bug fix validated
- [ ] Tests updated
## Release
- [ ] Release branch created
- [ ] RC tested
- [ ] Merged to main
- [ ] Tag created
- [ ] GitHub release published
## Post-Release
- [ ] Documentation updated
- [ ] CHANGELOG updated
- [ ] Issue closed
Minor Release Checklist
## Pre-Release
- [ ] All local validations pass
- [ ] Automated CI/CD passes
- [ ] Agent reviews complete (all 4)
- [ ] High priority issues fixed
- [ ] New modules validated
- [ ] Integration tests pass
## Release
- [ ] Release branch created
- [ ] RC tested
- [ ] Stakeholder review (if needed)
- [ ] Merged to main
- [ ] Tag created
- [ ] GitHub release published
- [ ] Package uploaded (if applicable)
## Post-Release
- [ ] Documentation updated
- [ ] CHANGELOG updated
- [ ] Jupyter Book rebuilt
- [ ] Announcement sent
Major Release Checklist
## Pre-Release (1-2 weeks)
- [ ] All local validations pass
- [ ] Automated CI/CD passes
- [ ] Comprehensive agent review (TPM-coordinated)
- [ ] Education Reviewer approved
- [ ] Module Developer approved
- [ ] Quality Assurance approved
- [ ] Package Manager approved
- [ ] ALL modules validated (20/20)
- [ ] Complete integration testing
- [ ] Performance benchmarks met
- [ ] Documentation complete
- [ ] All HIGH/MEDIUM issues resolved
## Release Candidate (3-5 days)
- [ ] RC1 created and tested
- [ ] Stakeholder feedback collected
- [ ] Final adjustments made
- [ ] RC2 validated (if needed)
## Release
- [ ] Release branch created
- [ ] Comprehensive check run
- [ ] All quality gates green
- [ ] Merged to main
- [ ] Tag created
- [ ] GitHub release published
- [ ] Package uploaded to PyPI
- [ ] Backup created
## Post-Release (1 week)
- [ ] Documentation updated everywhere
- [ ] CHANGELOG complete
- [ ] Jupyter Book rebuilt and deployed
- [ ] All stakeholders notified
- [ ] Social media announcement
- [ ] Course materials updated
- [ ] Monitor for issues
Emergency Hotfix Process
For critical bugs in production:
-
Create hotfix branch from main
git checkout main git checkout -b hotfix/v0.X.Y+1 -
Fix the issue
- Minimal changes only
- Focus on critical bug
- Add regression test
-
Fast-track validation
# Quick validation python .github/scripts/validate_time_estimates.py pytest tests/ -v -k "test_affected_module" -
Release immediately
git checkout main git merge --no-ff hotfix/v0.X.Y+1 git tag -a v0.X.Y+1 -m "Hotfix: [Description]" git push origin main --tags -
Backport to release branches if needed
Tools & Resources
GitHub Actions
- Workflow:
.github/workflows/release-check.yml - Scripts:
.github/scripts/*.py - Documentation:
.github/workflows/README.md
Agent Coordination
- TPM:
.claude/agents/technical-program-manager.md - Agents:
.claude/agents/ - Workflow:
DEFINITIVE_MODULE_PLAN.md
Validation
- Time:
validate_time_estimates.py - Difficulty:
validate_difficulty_ratings.py - Tests:
validate_testing_patterns.py - Checkpoints:
check_checkpoints.py
Version Numbering
TinyTorch follows Semantic Versioning:
Format: MAJOR.MINOR.PATCH
- MAJOR: Breaking changes, complete module sets
- MINOR: New features, module additions
- PATCH: Bug fixes, documentation
Examples:
0.1.0→0.1.1: Bug fix (patch)0.1.1→0.2.0: New module (minor)0.9.0→1.0.0: All 20 modules complete (major)
Contact & Support
Questions about releases?
- Check this document first
- Review workflow README:
.github/workflows/README.md - Consult TPM agent for complex scenarios
- File issue on GitHub for workflow improvements
Last Updated: 2024-11-24 Version: 1.0.0 Maintainer: TinyTorch Team