[PR #1407] [MERGED] PR-4: TinyTorch release prep — MIT/CC-BY-NC-SA dual licensing + v0.10.0 + workflow explicit-version override #6527

Closed
opened 2026-04-21 22:23:44 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/harvard-edge/cs249r_book/pull/1407
Author: @profvjreddi
Created: 4/19/2026
Status: Merged
Merged: 4/19/2026
Merged by: @profvjreddi

Base: devHead: release-prep/tinytorch-prep


📝 Commits (4)

  • 35b52af chore(tinytorch): MIT LICENSE (replace Apache-2.0 stub) + dual-license NOTICE
  • dfd6947 release(tinytorch): bump v0.1.9 → v0.10.0 (Volume II launch milestone)
  • b7043b0 ci(tinytorch-publish): explicit-version override + cover settings.ini
  • 41997ff fix(tinytorch): ship 00_tinytorch.pdf so big-picture viewer renders

📊 Changes

9 files changed (+173 additions, -205 deletions)

View changed files

📝 .github/workflows/tinytorch-publish-live.yml (+48 -10)
📝 tinytorch/.gitignore (+11 -0)
tinytorch/CHANGELOG.md (+56 -0)
📝 tinytorch/LICENSE (+46 -190)
📝 tinytorch/pyproject.toml (+1 -1)
📝 tinytorch/settings.ini (+1 -1)
📝 tinytorch/site-quarto/_quarto.yml (+7 -0)
tinytorch/site-quarto/assets/downloads/00_tinytorch.pdf (+0 -0)
📝 tinytorch/site/_static/announcement.json (+3 -3)

📄 Description

Summary

Prep TinyTorch for the v0.10.0 release that ships alongside the
Volume II launch. Three commits, all TinyTorch-scoped, no impact on
other subsites.

What's in this PR

1. License clarification (Apache 2.0 stub → MIT + dual-license NOTICE).

The repo had drifted: tinytorch/LICENSE declared Apache 2.0, but
pyproject.toml and settings.ini declared MIT. This commit makes
MIT the source of truth (matches packaging metadata, matches the
"academic now, commercially-friendly later" intent of the project).

The replacement file ALSO carries a NOTICE explaining the dual-
licensing structure that makes TinyTorch fit cleanly inside the
MLSysBook ecosystem:

  • TinyTorch software (source code, build scripts, tito CLI,
    packaging) — MIT, freely embeddable in commercial / research
    projects.
  • TinyTorch educational content (chapter narratives, scaffolded
    notebooks, problem statements, instructor materials) — CC-BY-NC-SA
    4.0 via the textbook's root LICENSE.md.
  • Mixed files (notebooks with both code cells and prose): the
    code cells are MIT, the prose is CC-BY-NC-SA. NOTICE explains
    when in doubt.

This reflects the practical reality of the codebase rather than
forcing it into a single license.

2. Version bump v0.1.9 → v0.10.0 (Volume II launch milestone).

Non-incremental jump, intentional — calls out v0.10.0 as a meaningful
educational milestone rather than continuing the patch-counter from
v0.1.x. Updates:

  • tinytorch/pyproject.toml (single source of truth)
  • tinytorch/settings.ini (nbdev / tito metadata — was being missed
    by the publish workflow, fixed in commit 3 below)
  • tinytorch/site/_static/announcement.json (legacy Sphinx asset,
    kept for now to avoid orphaning the artifact pre-cleanup)
  • New tinytorch/CHANGELOG.md documenting the v0.10.0 release plus
    older versions and the stylistic conventions for future entries.

3. Workflow: explicit-version input + settings.ini coverage.

tinytorch-publish-live.yml updates:

  • New explicit_version input on workflow_dispatch. Lets a
    maintainer ship a specific X.Y.Z (e.g. the v0.10.0 jump above)
    without relying on the patch/minor/major auto-bump math. Validates
    ^[0-9]+\\.[0-9]+\\.[0-9]+$ and refuses to re-tag an existing
    release.
  • "Update Version in Code" job now also seds settings.ini (was
    missing — caused version drift between pyproject and settings).
  • git add in the commit step now lists settings.ini so the
    auto-bump commit includes it.

Risk surface

  • License change is permissive → permissive (Apache 2.0 → MIT).
    No new restrictions on any user; if anything, slightly looser. CC-
    BY-NC-SA on educational content is unchanged.
  • The version bump touches only the version strings; build artifacts
    rebuild from the same source.
  • The workflow change adds a NEW input and a NEW step; the existing
    patch/minor/major auto-bump path is untouched. Backwards-compatible.

Test plan

  • CI: TinyTorch validate-dev runs clean.
  • Manual: dispatch tinytorch-publish-live.yml with
    explicit_version=0.10.0 in TESTING MODE; verify the version
    string is computed correctly without actually tagging.
  • Local: grep version tinytorch/pyproject.toml tinytorch/settings.ini
    both show 0.10.0.
  • Manual: open tinytorch/LICENSE — visually verify MIT text
    and NOTICE block.

The Volume I/II per-volume versioning refactor (similar in spirit but
for the book) is in PR-4b (release-prep/book-versioning), since it
touches book-publish-live.yml and the per-volume index.qmd files
— different blast radius, deserves a focused review.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/harvard-edge/cs249r_book/pull/1407 **Author:** [@profvjreddi](https://github.com/profvjreddi) **Created:** 4/19/2026 **Status:** ✅ Merged **Merged:** 4/19/2026 **Merged by:** [@profvjreddi](https://github.com/profvjreddi) **Base:** `dev` ← **Head:** `release-prep/tinytorch-prep` --- ### 📝 Commits (4) - [`35b52af`](https://github.com/harvard-edge/cs249r_book/commit/35b52af62f638123621de5b7cce626c38268c792) chore(tinytorch): MIT LICENSE (replace Apache-2.0 stub) + dual-license NOTICE - [`dfd6947`](https://github.com/harvard-edge/cs249r_book/commit/dfd694701f296c1528198cc05e5c88f4cfd85012) release(tinytorch): bump v0.1.9 → v0.10.0 (Volume II launch milestone) - [`b7043b0`](https://github.com/harvard-edge/cs249r_book/commit/b7043b082f0a7df1489689c29e2180eaeea94e99) ci(tinytorch-publish): explicit-version override + cover settings.ini - [`41997ff`](https://github.com/harvard-edge/cs249r_book/commit/41997ffa52780f4a8adbd3741bbf53996b15b73d) fix(tinytorch): ship 00_tinytorch.pdf so big-picture viewer renders ### 📊 Changes **9 files changed** (+173 additions, -205 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/tinytorch-publish-live.yml` (+48 -10) 📝 `tinytorch/.gitignore` (+11 -0) ➕ `tinytorch/CHANGELOG.md` (+56 -0) 📝 `tinytorch/LICENSE` (+46 -190) 📝 `tinytorch/pyproject.toml` (+1 -1) 📝 `tinytorch/settings.ini` (+1 -1) 📝 `tinytorch/site-quarto/_quarto.yml` (+7 -0) ➕ `tinytorch/site-quarto/assets/downloads/00_tinytorch.pdf` (+0 -0) 📝 `tinytorch/site/_static/announcement.json` (+3 -3) </details> ### 📄 Description ## Summary Prep TinyTorch for the v0.10.0 release that ships alongside the Volume II launch. Three commits, all TinyTorch-scoped, no impact on other subsites. ### What's in this PR **1. License clarification (Apache 2.0 stub → MIT + dual-license NOTICE).** The repo had drifted: `tinytorch/LICENSE` declared Apache 2.0, but `pyproject.toml` and `settings.ini` declared MIT. This commit makes MIT the source of truth (matches packaging metadata, matches the "academic now, commercially-friendly later" intent of the project). The replacement file ALSO carries a NOTICE explaining the dual- licensing structure that makes TinyTorch fit cleanly inside the MLSysBook ecosystem: - **TinyTorch software** (source code, build scripts, tito CLI, packaging) — MIT, freely embeddable in commercial / research projects. - **TinyTorch educational content** (chapter narratives, scaffolded notebooks, problem statements, instructor materials) — CC-BY-NC-SA 4.0 via the textbook's root LICENSE.md. - **Mixed files** (notebooks with both code cells and prose): the code cells are MIT, the prose is CC-BY-NC-SA. NOTICE explains when in doubt. This reflects the practical reality of the codebase rather than forcing it into a single license. **2. Version bump v0.1.9 → v0.10.0 (Volume II launch milestone).** Non-incremental jump, intentional — calls out v0.10.0 as a meaningful educational milestone rather than continuing the patch-counter from v0.1.x. Updates: - `tinytorch/pyproject.toml` (single source of truth) - `tinytorch/settings.ini` (nbdev / tito metadata — was being missed by the publish workflow, fixed in commit 3 below) - `tinytorch/site/_static/announcement.json` (legacy Sphinx asset, kept for now to avoid orphaning the artifact pre-cleanup) - New `tinytorch/CHANGELOG.md` documenting the v0.10.0 release plus older versions and the stylistic conventions for future entries. **3. Workflow: explicit-version input + settings.ini coverage.** `tinytorch-publish-live.yml` updates: - New `explicit_version` input on `workflow_dispatch`. Lets a maintainer ship a specific X.Y.Z (e.g. the v0.10.0 jump above) without relying on the patch/minor/major auto-bump math. Validates `^[0-9]+\\.[0-9]+\\.[0-9]+$` and refuses to re-tag an existing release. - "Update Version in Code" job now also seds `settings.ini` (was missing — caused version drift between pyproject and settings). - `git add` in the commit step now lists `settings.ini` so the auto-bump commit includes it. ### Risk surface - License change is permissive → permissive (Apache 2.0 → MIT). No new restrictions on any user; if anything, slightly looser. CC- BY-NC-SA on educational content is unchanged. - The version bump touches only the version strings; build artifacts rebuild from the same source. - The workflow change adds a NEW input and a NEW step; the existing patch/minor/major auto-bump path is untouched. Backwards-compatible. ### Test plan - [ ] CI: TinyTorch validate-dev runs clean. - [ ] Manual: dispatch `tinytorch-publish-live.yml` with `explicit_version=0.10.0` in TESTING MODE; verify the version string is computed correctly without actually tagging. - [ ] Local: `grep version tinytorch/pyproject.toml tinytorch/settings.ini` both show 0.10.0. - [ ] Manual: open `tinytorch/LICENSE` — visually verify MIT text and NOTICE block. ### Related but separate The Volume I/II per-volume versioning refactor (similar in spirit but for the book) is in PR-4b (release-prep/book-versioning), since it touches `book-publish-live.yml` and the per-volume `index.qmd` files — different blast radius, deserves a focused review. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-21 22:23:44 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/cs249r_book#6527