diff --git a/tinytorch/site/_toc.yml b/tinytorch/site/_toc.yml index 361d72722..cf3a7f767 100644 --- a/tinytorch/site/_toc.yml +++ b/tinytorch/site/_toc.yml @@ -107,7 +107,9 @@ parts: # Community - Collapsible section - caption: ๐Ÿค Community chapters: + - file: team + title: "Team" - file: community title: "Ecosystem" - file: credits - title: "Credits & Acknowledgments" + title: "Acknowledgments" diff --git a/tinytorch/site/credits.md b/tinytorch/site/credits.md index dfe2602a2..26f0ee3df 100644 --- a/tinytorch/site/credits.md +++ b/tinytorch/site/credits.md @@ -1,4 +1,4 @@ -# Credits & Acknowledgments +# Acknowledgments **TinyTorch stands on the shoulders of giants.** @@ -77,22 +77,132 @@ TinyTorch combines inspiration from these projects into a comprehensive ML syste -## Community Contributors +## ML Systems Book Contributors -TinyTorch is built by students, educators, and ML engineers who believe in accessible systems education. +TinyTorch is part of the broader [ML Systems Book](https://mlsysbook.ai) ecosystem. These contributors have helped build the educational foundation that TinyTorch extends. -**[View all contributors on GitHub](https://github.com/harvard-edge/cs249r_book/graphs/contributors)** +```{raw} html + +
+ + hzeljko + Zeljko Hrcek + + + Mjrovai + Marcelo Rovai + + + jasonjabbour + Jason Jabbour + + + uchendui + Ike Uchendu + + + Naeemkh + Naeem K. + + + Sara-Khosravi + Sara Khosravi + + + didier-durand + Didier Durand + + + 18jeffreyma + Jeffrey Ma + + + V0XNIHILI + Douwe dB + + + shanzehbatool + Shanzeh B. + + + eliasab16 + Elias + + + JaredP94 + Jared Ping + + + ishapira1 + Itai Shapira + + + jaysonzlin + Jayson Lin + + + sophiacho1 + Sophia Cho + + + alxrod + Alex Rodriguez + + + korneelf1 + Korneel VdB + + + colbybanbury + Colby Banbury + + + zishenwan + Zishen Wan + +
+``` -## How to Contribute - -TinyTorch is open source and welcomes contributions: - -- **Found a bug?** Report it on [GitHub Issues](https://github.com/harvard-edge/cs249r_book/issues) -- **Improved documentation?** Submit a pull request -- **Built something cool?** Share it in [GitHub Discussions](https://github.com/harvard-edge/cs249r_book/discussions) - -**[See contribution guidelines](https://github.com/harvard-edge/cs249r_book/blob/main/CONTRIBUTING.md)** +**[View all 40+ contributors on GitHub โ†’](https://github.com/harvard-edge/cs249r_book/graphs/contributors)** ## License diff --git a/tinytorch/site/scripts/generate_contributors.py b/tinytorch/site/scripts/generate_contributors.py new file mode 100644 index 000000000..4fd0828be --- /dev/null +++ b/tinytorch/site/scripts/generate_contributors.py @@ -0,0 +1,119 @@ +#!/usr/bin/env python3 +""" +Generate contributor data for TinyTorch site. + +Fetches contributor info from GitHub API and outputs markdown/JSON for the site. +Run this in CI or manually to update the contributors list. + +Usage: + python3 scripts/generate_contributors.py > _data/contributors.json + python3 scripts/generate_contributors.py --markdown >> credits.md +""" + +import json +import subprocess +import sys +from dataclasses import dataclass +from typing import Optional + + +@dataclass +class Contributor: + login: str + contributions: int + avatar_url: str + html_url: str + name: Optional[str] = None + + +def fetch_contributors(repo: str = "harvard-edge/cs249r_book", limit: int = 50) -> list[Contributor]: + """Fetch contributors from GitHub API using gh CLI.""" + cmd = [ + "gh", "api", f"repos/{repo}/contributors", + "--paginate", + "--jq", '.[] | select(.type == "User") | {login, contributions, avatar_url, html_url}' + ] + + result = subprocess.run(cmd, capture_output=True, text=True) + if result.returncode != 0: + print(f"Error fetching contributors: {result.stderr}", file=sys.stderr) + return [] + + contributors = [] + for line in result.stdout.strip().split('\n'): + if line: + data = json.loads(line) + contributors.append(Contributor(**data)) + + # Sort by contributions and limit + contributors.sort(key=lambda c: c.contributions, reverse=True) + return contributors[:limit] + + +def fetch_user_names(contributors: list[Contributor]) -> list[Contributor]: + """Fetch real names for top contributors.""" + for c in contributors[:20]: # Only fetch names for top 20 to avoid rate limits + cmd = ["gh", "api", f"users/{c.login}", "--jq", ".name"] + result = subprocess.run(cmd, capture_output=True, text=True) + if result.returncode == 0 and result.stdout.strip(): + c.name = result.stdout.strip() + return contributors + + +def generate_json(contributors: list[Contributor]) -> str: + """Generate JSON output.""" + return json.dumps([ + { + "login": c.login, + "name": c.name or c.login, + "contributions": c.contributions, + "avatar_url": c.avatar_url, + "html_url": c.html_url + } + for c in contributors + ], indent=2) + + +def generate_markdown(contributors: list[Contributor]) -> str: + """Generate markdown contributor grid.""" + lines = [] + lines.append("") + lines.append("") + lines.append("```{raw} html") + lines.append('
') + + for c in contributors: + display_name = c.name or c.login + lines.append(f''' + {c.login} + {display_name} + {c.contributions} + ''') + + lines.append('
') + lines.append("```") + + return "\n".join(lines) + + +def main(): + import argparse + parser = argparse.ArgumentParser(description="Generate contributor data") + parser.add_argument("--markdown", action="store_true", help="Output markdown instead of JSON") + parser.add_argument("--limit", type=int, default=50, help="Max contributors to include") + parser.add_argument("--with-names", action="store_true", help="Fetch real names (slower)") + args = parser.parse_args() + + contributors = fetch_contributors(limit=args.limit) + + if args.with_names: + contributors = fetch_user_names(contributors) + + if args.markdown: + print(generate_markdown(contributors)) + else: + print(generate_json(contributors)) + + +if __name__ == "__main__": + main() diff --git a/tinytorch/site/team.md b/tinytorch/site/team.md new file mode 100644 index 000000000..1a1e358b6 --- /dev/null +++ b/tinytorch/site/team.md @@ -0,0 +1,306 @@ +# Team + +**Meet the people building TinyTorch.** + +TinyTorch is built by a passionate community dedicated to making ML systems education accessible to everyone. + +```{raw} html + + +
+ ๐Ÿชฒ Bug Hunter + ๐Ÿง‘โ€๐Ÿ’ป Code Warrior + โœ๏ธ Documentation + ๐ŸŽจ Design + ๐Ÿง  Ideas + ๐Ÿ”Ž Reviewer + ๐Ÿงช Testing + ๐Ÿ› ๏ธ Tooling +
+ +
+
+ + Vijay Janapa Reddi + +
+
Vijay Janapa Reddi
+
๐Ÿค“ Nerdy Professor ยท Harvard University
+
Gordon McKay Professor of Electrical Engineering at Harvard. Passionate about creating the next generation of AI engineers.
+
๐Ÿชฒ ๐Ÿง‘โ€๐Ÿ’ป ๐ŸŽจ โœ๏ธ ๐Ÿง  ๐Ÿ”Ž ๐Ÿงช ๐Ÿ› ๏ธ
+
+
+ +
Community Staff
+ +
+ + Andrea Garavagno +
Andrea Garavagno
+
๐Ÿงญ Tech Lead
+
+ + + Kari Janapareddi +
Kari Janapareddi
+
๐Ÿ‘‘ Chief of Staff
+
+ + + Kai Kleinbard +
Kai Kleinbard
+
๐ŸŒ Web Wizard
+
+
+ +
Contributors
+ + Dang Truong + Dang Truong + ๐Ÿชฒ ๐Ÿง‘โ€๐Ÿ’ป โœ๏ธ ๐Ÿงช + + + Didier Durand + Didier Durand + ๐Ÿชฒ ๐Ÿง‘โ€๐Ÿ’ป โœ๏ธ + + + Karthik Dani + Karthik Dani + ๐Ÿชฒ ๐Ÿง‘โ€๐Ÿ’ป + + + Avik De + Avik De + ๐Ÿชฒ ๐Ÿงช + + + rnjema + rnjema + ๐Ÿง‘โ€๐Ÿ’ป ๐Ÿ› ๏ธ + + + joeswagson + joeswagson + ๐Ÿง‘โ€๐Ÿ’ป ๐Ÿ› ๏ธ + + + Amir Alasady + Amir Alasady + ๐Ÿชฒ + + + jettythek + jettythek + ๐Ÿง‘โ€๐Ÿ’ป + + + Takosaga + Takosaga + ๐Ÿชฒ + + + wzz + wzz + ๐Ÿชฒ + + + Ng Bo Lin + Ng Bo Lin + โœ๏ธ + + + keo-dara + keo-dara + ๐Ÿชฒ + + + Wayne Norman + Wayne Norman + ๐Ÿชฒ + + + Ilham Rafiqin + Ilham Rafiqin + ๐Ÿชฒ + +
+``` + +## Join the Team + +TinyTorch is open source and we welcome contributors of all experience levels! + +**Ways to get involved:** + +- ๐Ÿชฒ **Found a bug?** [Report it on GitHub](https://github.com/harvard-edge/cs249r_book/issues) +- ๐Ÿ’ก **Have an idea?** [Start a discussion](https://github.com/harvard-edge/cs249r_book/discussions) +- ๐Ÿง‘โ€๐Ÿ’ป **Want to contribute code?** [See our contributing guide](https://github.com/harvard-edge/cs249r_book/blob/main/CONTRIBUTING.md) +- โœ๏ธ **Improve documentation?** Submit a pull request + +**Get recognized:** Comment on any issue or PR with `@all-contributors please add @username for bug, code, doc, or ideas` + + +## Contact + +- **GitHub Issues**: [Report bugs or request features](https://github.com/harvard-edge/cs249r_book/issues) +- **GitHub Discussions**: [Ask questions or share ideas](https://github.com/harvard-edge/cs249r_book/discussions) +- **Project Lead**: [Prof. Vijay Janapa Reddi](https://scholar.harvard.edu/vijay-janapa-reddi) ยท Harvard University