Skip to content

Commit f55364a

Browse files
AllenDowneyclaude
andcommitted
Project board: Tasks 1-4 done; open: attic deletion, packaging decision.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent b66332c commit f55364a

1 file changed

Lines changed: 27 additions & 24 deletions

File tree

‎PROJECT_BOARD.md‎

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,16 @@ This is the public repo for *Modeling and Simulation in Python* (No Starch, 2023
66

77
### Current focus (2026-10-13)
88

9-
- **Task 1:** Commit the February 2026 build-system work that is still only local (here and in ModSimPySolutions)
10-
- **Task 2:** One canonical `modsim.py`, one written workflow
11-
- **Task 3:** Clear the untracked junk out of the working tree (~230 MB)
12-
- **Task 4:** Remove tracked files nothing uses (incl. 26 MB of journal PDFs)
9+
Tasks 1–4 (cleanup) done 2026-10-13, except two open decisions:
1310

14-
Tasks 1 → 2 → 3 → 4 is the suggested order: commit what's real before deleting anything.
11+
- **Task 3:** delete `~/ModSimPy-attic/` once nothing has been missed
12+
- **Task 4:** retire or revive the `modsimpy` PyPI package
1513

1614
---
1715

1816
## Task 1: Commit the February 2026 build-system work
1917

20-
**Status:** Open (added 2026-10-13)
18+
**Status:** Done (2026-10-13)
2119

2220
**Background:** On 2026-02-01 the build was reworked for Python 3.13 / pandas 3 (`plan.md`): mamba environments, testing split from building, MkDocs API docs, Jupyter Book pinned below 2.0. The notebooks and the root `modsim.py` were pushed that day, but much of the tooling never was. Anyone working from GitHub (including CI) gets the old setup.
2321

@@ -32,15 +30,14 @@ Untracked **in ModSimPySolutions** (38 files): the build scripts themselves —
3230
### Checklist
3331

3432
- [x] `jb/` sources that built the live site (`_toc.yml`, `index.md`, `preface.md`, `build.sh`) and a working `jb/_config.yml` — committed 2026-10-13 (`c264192`). `myst_extended_syntax` (broken in Jupyter Book 1.0.4) replaced by an explicit `myst_enable_extensions` list; test builds with and without it were identical
35-
- [ ] Review the local diffs above (`git diff --no-ext-diff`; plain `git diff` fails on notebooks here because `nbdime` isn't installed) and commit them
36-
- [ ] Commit `environment-dev.yml`, `build.sh`, `mkdocs.yml`, `docs/`
37-
- [ ] Decide `nbextensions` in `requirements.txt`: it's the Jupyter classic-notebook extension package, not needed for JupyterLab / Notebook 7 and not in `environment.yml`; probably drop it
38-
- [ ] ModSimPySolutions: commit the build scripts; gitignore the generated files
39-
- [ ] Check the CI run triggered by `c264192` (it was still running when this board was written); `gh run list -R AllenDowney/ModSimPy -L 3`
33+
- [x] Review the local diffs above and commit them, with `environment-dev.yml`, `build.sh`, `mkdocs.yml`, `docs/index.md`, `chapters/test_run.sh` and the two `remove_soln.py` (`d0a3e79`). `docs/mkdocs.yml` (empty duplicate) and `chapters/push.sh` (repeats the end of `chapters/build.sh`) went to the attic
34+
- [x] `nbextensions`: dropped (local change reverted)
35+
- [x] ModSimPySolutions: committed `build.sh`, `chapters/build.sh`, `chapters/export_funcs.py`, the two `test.sh`, `.gitattributes`, `pyproject.toml`; generated files gitignored (`736489a`). The 2021 one-off notebook-editing scripts (`add_header.py`, `cap_titles.py`, `resub_all.py`, `remove_savefig.py`, `rename.py`), `glucose.md/.tex` and a stray `chapter` file went to the attic; `chapters/jntools.py` (2024 notebook utility, needs `astor` and `typer`) left untracked
36+
- [x] CI for `c264192` and `3d82e97` passed
4037

4138
## Task 2: One canonical `modsim.py`, one written workflow
4239

43-
**Status:** Open (added 2026-10-13)
40+
**Status:** Done (2026-10-13, `6143178`)
4441

4542
**Background:** There are 12 copies of `modsim.py` in the working tree. The six current ones are identical (root, `modsim/`, `chapters/`, `examples/`, `ModSimPySolutions/chapters/`, `ModSimPySolutions/examples/`); six older ones sit in `ModSimPyBook/` and `old_code/`. But the notes disagree about which copy is the source:
4643

@@ -56,13 +53,15 @@ So `make build` copies from `modsim/` outward and then, in the API-docs step, ba
5653

5754
### Checklist
5855

59-
- [ ] Pick the canonical copy (suggest `modsim/modsim.py`, next to `test_modsim.py`, as `plan.md` says) and make every script copy *from* it; drop the reverse copy in root `build.sh`
60-
- [ ] Merge `notes.txt` (the three-repo overview) and `plan.md` (the update workflow) into one "Development" section of `README.md`, then delete both; record here
61-
- [ ] `Makefile`: the `lint` and `format` targets point at `pacs` (copied from another project) and a `pyproject.toml` that doesn't exist; fix or remove them
56+
- [x] Canonical copy is `modsim/modsim.py`; the reverse copy in root `build.sh` is gone
57+
- [x] `notes.txt` and `plan.md` merged into the README's "Development" section (three repos, canonical `modsim.py`, files that must stay put, update steps, testing); `notes.txt` removed, `plan.md` in the attic
58+
- [x] `Makefile`: `lint` and `format` removed
59+
60+
Note: `make build` pushes several times (ModSimPySolutions, ModSimPy chapters and examples, `gh-pages`), and each push to `master` runs CI.
6261

6362
## Task 3: Clear the untracked junk out of the working tree
6463

65-
**Status:** Open (added 2026-10-13)
64+
**Status:** Done except deleting the attic (2026-10-13)
6665

6766
**Background:** None of this is in git; it only clutters the local copy (and makes `git status` unreadable: 74 untracked entries). Sizes as of 2026-10-13.
6867

@@ -86,13 +85,16 @@ So `make build` copies from `modsim/` outward and then, in the API-docs step, ba
8685

8786
### Checklist
8887

89-
- [ ] Move the legacy folders and stray files to `~/ModSimPy-attic/` (not deleted yet), check that `make build` still works, then delete the attic
90-
- [ ] `.gitignore`: add `ModSimPySolutions/`, `jb/_build/`, `jb/*.ipynb`, `jupyter_execute/`, `site/`, `.pytest_cache/`, `.vscode/`, and the notebook download outputs in `chapters/` and `examples/` (`*.csv`, `*.html`, `chap[0-9][0-9].py`, `modsim.py`), so `git status` shows only real changes
91-
- [ ] Git housekeeping: delete the local branches `main` (2023) and `version3` (2019; also on GitHub) — both fully merged into `master`; `git gc` (145 MB of loose objects vs a 34 MB pack)
88+
- [x] Legacy folders and stray files moved to `~/ModSimPy-attic/` (also `modsim/solvers/` and `modsim/docs/` from 2019). Checked without pushing: MkDocs API docs build, `modsim` tests pass (40), Jupyter Book builds
89+
- [ ] Delete `~/ModSimPy-attic/` once nothing has been missed
90+
- [x] `.gitignore` extended; `git status` is clean. `chapters/chapNN.py` stay tracked (`chapters/build.sh` commits them)
91+
- [x] Local branches `main` and `version3` deleted (`version3` is still on GitHub); `git gc` run (pack now 114 MB, mostly recent unreachable objects that later gc runs will prune)
92+
93+
Keep `modsim/__init__.py`: `mkdocs.yml` documents `::: modsim`, which imports the `modsim/` package.
9294

9395
## Task 4: Remove tracked files nothing uses
9496

95-
**Status:** Open (added 2026-10-13)
97+
**Status:** Done except the packaging decision (2026-10-13, `b66332c`)
9698

9799
**Background:** These are in git and on GitHub but nothing in the build or the notebooks uses them (checked against every `raw/master/…` URL in the ModSimPySolutions notebooks, 2026-10-13). Removing them from `master` doesn't shrink history; that would need a rewrite, which isn't worth it at 34 MB.
98100

@@ -105,10 +107,11 @@ So `make build` copies from `modsim/` outward and then, in the API-docs step, ba
105107

106108
### Checklist
107109

108-
- [ ] Remove `papers/`
109-
- [ ] Packaging decision (retire or revive)
110-
- [ ] Remove `_config.yml`; check and probably remove `apt.txt`
111-
- [ ] Check the remaining `data/` and `figs/` files against old notebook versions, then remove
110+
- [x] Remove `papers/`
111+
- [ ] Packaging decision (retire or revive). If retiring, remove `setup.py` and `README.rst` (the only Binder mention) but keep `modsim/__init__.py` (see Task 3)
112+
- [x] Removed `_config.yml` and `apt.txt` (nothing links to Binder)
113+
- [x] `data/`: kept. Old notebook versions in history download `baseball_drag.csv`, `glucose_insulin.csv`, `World_population_estimates2/3.csv` and `.html` from it. `figs/`: removed `golden*` and `secant*`; only `baseball_drag.png` was ever downloaded
114+
- [x] Root `chap18.py` kept
112115

113116
## Task 5: Page-view counter and Jupyter Book config
114117

0 commit comments

Comments
 (0)