Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
b0cc9ba
Compiled packages (#20)
henryiii Jul 10, 2026
713fb31
feat: add basic package chapter and slides (#17)
henryiii Jul 10, 2026
33c6f13
docs: split binding tools into C++ and Rust pages (#24)
henryiii Jul 10, 2026
dee43a0
Dynamic metadata (#22)
LecrisUT Jul 11, 2026
07bb56d
Add overrides (#21)
LecrisUT Jul 11, 2026
314b650
docs: rename compiled chapter to avoid slug collision (#25)
henryiii Jul 11, 2026
461adf1
docs: add pybind11 binding examples and walkthrough (#26)
henryiii Jul 11, 2026
c931432
docs: add nanobind intro and show both binding tools in tabs (#27)
henryiii Jul 11, 2026
c0f35c0
docs: add free-threading page with pure, pybind11, and nanobind examp…
henryiii Jul 11, 2026
0bc6a8f
docs: add slides for the binding-tools chapter (#29)
henryiii Jul 11, 2026
b63f682
chore: gitignore .venv directories
henryiii Jul 11, 2026
0781030
docs: add lazy imports chapter and slides (#30)
henryiii Jul 11, 2026
99caa5c
feat: add first half of Rust, PyO3, and Maturin chapter
thewtex Jul 11, 2026
08dbb70
feat: add second half of Rust, PyO3, and Maturin chapter
thewtex Jul 11, 2026
ac24e0e
docs: re-paste pixi run develop transcript from a fresh verified run
thewtex Jul 11, 2026
58fd664
feat: add Marp slide deck for Rust, PyO3, and Maturin chapter
thewtex Jul 11, 2026
c94dcff
fix: trim Rust/PyO3 slides that overflowed the 720px slide box
thewtex Jul 11, 2026
db67b11
fix: restore faithful maturin output line on shipping-wheels slide
thewtex Jul 11, 2026
55ccca5
docs: add instructor notes for the Rust/PyO3/maturin chapter
thewtex Jul 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
_build
build
*.swp
_output
node_modules
Expand All @@ -8,6 +9,12 @@ node_modules
CLAUDE.md
.claude/

# Agent-local tool state
.serena/

# pixi environments
.pixi/*
!.pixi/config.toml

# Python virtual environments
.venv/
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ repos:
rev: "06507ab9500d4a9919b5ebd76d9d5b7074f15c1f" # frozen: v3.8.4
hooks:
- id: prettier
exclude: '\.md$' # Markdown is handled by rumdl
exclude: '(\.md$|(^|/)pixi\.lock$)' # Markdown is handled by rumdl; pixi.lock is generated by pixi (see .gitattributes)

- repo: https://github.com/codespell-project/codespell
rev: "2ccb47ff45ad361a21071a7eedda4c37e6ae8c5a" # frozen: v2.4.2
Expand Down
12 changes: 7 additions & 5 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## What this is

SIMPLE-Py is a workshop that teaches simple compiled Python packaging (C++, Rust, publishing). It is **content, not code**: a [MyST](https://mystmd.org/) book plus [Marp](https://marp.app/) slides, deployed to GitHub Pages. There is no Python package to build or test here — edits are to Markdown.
SIMPLE-Py is a workshop that teaches simple compiled Python packaging (C++, Rust, publishing). It is **content, not code**: a [MyST](https://mystmd.org/) book plus [Marp](https://marp.app/) slides, deployed to GitHub Pages. The book itself has no package to build or test (edits are to Markdown), though some chapters have runnable companion projects under `examples/`.

## Commands

Expand All @@ -19,11 +19,13 @@ prek -a --quiet # lint/format everything (ruff-format, blacken-docs, rumdl

## Structure

- **`content/`** — book chapters as Markdown, grouped by section directory (`basic-packaging/`, `compiled/`, `scikit-build/`, `other-tools/`, `interesting/`). Files are prefixed with an order number (`01_`, `02_`, …). Images live alongside their chapter, prefixed with the chapter stem (e.g. `04_distros-shipping.jpg`).
- **`myst.yml`** — book config and the **table of contents**. Adding or reordering a chapter file requires editing the `toc` here; the filesystem order is not authoritative.
- **`slides/`** — Marp decks (`marp: true` frontmatter, `theme: simplepy` → `slides/simplepy.css`). Named `<section>_<chapter>_<name>.md` where the leading digit ties the deck to its content section.
- **`content/`** - book chapters as Markdown, grouped by section directory (`basic-packaging/`, `compiled/`, `scikit-build/`, `other-tools/`, `interesting/`). Files are prefixed with an order number (`01_`, `02_`, …). Images live alongside their chapter, prefixed with the chapter stem (e.g. `04_distros-shipping.jpg`).
- **`myst.yml`** - book config and the **table of contents**. Adding or reordering a chapter file requires editing the `toc` here; the filesystem order is not authoritative.
- **`slides/`** - Marp decks (`marp: true` frontmatter, `theme: simplepy` → `slides/simplepy.css`). Named `<section>_<chapter>_<name>.md` where the leading digit ties the deck to its content section.
- **`examples/`** - runnable companion projects for chapters, named `<section>_<chapter>_<name>` like the slides (e.g. `2_04_rust_pyo3/` is a pixi-managed PyO3 extension). Each is self-contained: `pixi install`, then tasks like `pixi run test` or `pixi run bench` from inside the example directory.
- **`instructor-notes/`** - instructor-facing research notes and deep dives, with Obsidian-style frontmatter and `[[wiki-links]]`. Deliberately absent from the `myst.yml` toc, so they are never published into the book.

## Conventions

- `blacken-docs` formats Python code blocks inside Markdown, and `ruff-format` runs on code keep embedded code snippets valid and formatted.
- `blacken-docs` formats Python code blocks inside Markdown, and `ruff-format` runs on code - keep embedded code snippets valid and formatted.
- CI (`.github/workflows/cd.yml`) builds with `BASE_URL: /SIMPLE-Py` and deploys to Pages on push to `main`.
Loading