Commit 81ee050
committed
Restructure Instruqt assignments and add wrap-up resource chapter
This commit consolidates a top-level review pass over the eight chapter
assignment files plus a new ninth chapter, syncs the assignment text
with a TODO-numbering rework happening in `workshop-nexus-intro-code`,
and fixes a Semgrep finding in the image build workflow.
Assignment structure. Every chapter loses its `# Chapter N: ...` H1.
Instruqt was rendering the YAML `title:` as the page header and the
markdown H1 stacked underneath, producing the title twice on every
page. The H1 is gone now; the YAML title is the single source.
Section header rename. `## Why this chapter exists` (which read as
weak in the lab UI) is now `## What You're Solving` across all eight
chapters.
Solution tab moves to the rightmost position. In chapters 2-7 the
Solution tab was at index 1, immediately next to the Code Editor, and
attendees were misclicking and editing the finished file. Solution
now sits after every other tab (Worker terminals, Starter, Temporal
UI). Every `(tab-N)` button reference in those chapters was
renumbered to absorb the index shift. The "Stuck on a TODO" callouts
gained a "(rightmost)" pointer and were converted from `[!TIP]` to
`[!NOTE]` so Instruqt renders them as admonitions.
Wrap-up rename and knowledge-check removal. `## Wrapping up` is now
`## Key Takeaways` everywhere, and the trailing `> [!NOTE] Knowledge
check:` blockquotes have been dropped from every chapter. The
chapter-by-chapter quizzing role moves to the live AhaSlides deck;
the in-lab text now ends on a forward-looking summary instead of
unanswered questions.
"Stop the Worker" steps removed. Each chapter's per-challenge
`cleanup-workshop` already runs `pkill -f "payments.worker"` and
`pkill -f "compliance.worker"` between challenges, so the trailing
`## Step N: Stop the Worker(s)` step in chapters 1, 3, 4, 5, 6, 7,
and 8 was redundant busywork. Those steps are gone; the surviving
steps are still in correct numerical order.
TODO sub-letter sync with the code repo. The companion change in
`workshop-nexus-intro-code` rewrote exercise files to follow the
"strip exactly what the user is asked to write; one TODO per
insertion point; sub-letters when a logical step touches multiple
locations" standard documented in `tmp/lessons-learned.md`. The
assignment text mirrors that numbering:
- Ch 2: Step 1 now walks TODOs 1a (decorator), 1b
(`check_compliance` Operation), 1c (`submit_review` Operation).
- Ch 3: Step 1 walks 2a (class decorator), 2b
(`check_compliance` body), 2c (`submit_review` stub).
- Ch 4: Step 1 walks 4a (remove unused import), 4b (replace activity
call with Nexus call). Step 2 walks 5a (worker import), 5b
(Activities list).
- Ch 5: Step 2 walks 7a (convert handler) and 7b (delete dead
import).
- Ch 6: Step 1 walks 10a (init state), 10b (run-method branching),
10c (Update handler + validator). Step 2 walks 11a (`WorkflowHandle`
import), 11b (`submit_review` body). Step 3 walks 12a/12b in
`payments/workflows.py` and 12c/12d in `payments/worker.py` for the
cross-file `ReviewCallerWorkflow` change.
- Ch 7: Step 1 walks 13a (top-level `nexusrpc` import) and 13b
(failure-injection branches).
Code-Editor file path test. Chapter 2's Code Editor tab `path:` now
points at `…/exercise/shared/service.py` directly instead of the
chapter directory, to test whether Instruqt's `code` tab will open a
specific file by default. The Instruqt docs only describe `path:` as
a directory location, so this is a speculative experiment; if it
works, the same change will roll out to the chapters that have a
single primary edit target.
New chapter 09-what-next. Added a Multiple Choice (`type: quiz`)
challenge as the wrap-up after the polyglot demo. The body is a
resource page with links to docs.temporal.io/nexus, learn.temporal.io,
the per-language samples repos, the workshop's own code repo,
follow-up patterns we did not have time to teach (in-workflow
cancellation, `asyncio.shield`, Worker Versioning), and the
community channels. The single answer is "Do you plan on using
Nexus?" (Yes / No, both marked correct so the chapter passes either
way and the response captures intent without gating progress). The
old chapter-8 `> [!TIP] Where to go next` block was removed since
those links now live in the wrap-up chapter.
Loader-message tweak. `track.yml` line 33 dropped "the tardigrade"
from the rehydrating Ziggy message, matching the wording on the
other 30+ Ziggy lines.
Build workflow Semgrep fix. `.github/workflows/build-image.yml` was
flagged by Semgrep `yaml.github-actions.security.run-shell-injection`
for interpolating `${{ github.ref_name }}` and `${{ env.IMAGE }}`
directly into the `Compute image tags` shell script. The step now
binds `REF_NAME` via a step-level `env:` block and reads `IMAGE`
through its job-level env definition, so neither value is
string-substituted into the shell. Semantics are unchanged.
AhaSlides documentation tweak. `aha.md` updated to reflect that the
Pattern Roulette spinner (slide 5) is now skipped during
presentation. The slide remains in the deck (id 150153117) with
`skip_when_presenting=True`; downstream slide numbering is unchanged.
justfile. Added `slides-install`, `slides-dev`, and `slides-build`
recipes for the Slidev deck. The `slides/` directory itself is not
in this commit.1 parent aacc34e commit 81ee050
13 files changed
Lines changed: 435 additions & 449 deletions
File tree
- .github/workflows
- instruqt
- 01-run-monolith
- 02-service-contract
- 03-sync-handler
- 04-caller-swap
- 05-async-operations
- 06-updates
- 07-lifecycle
- 08-polyglot-demo
- 09-what-next
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| 44 | + | |
| 45 | + | |
44 | 46 | | |
45 | | - | |
46 | | - | |
| 47 | + | |
| 48 | + | |
47 | 49 | | |
48 | | - | |
| 50 | + | |
49 | 51 | | |
50 | 52 | | |
51 | 53 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
47 | | - | |
| 47 | + | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
55 | | - | |
| 55 | + | |
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | | - | |
52 | | - | |
53 | 51 | | |
54 | 52 | | |
55 | 53 | | |
| |||
60 | 58 | | |
61 | 59 | | |
62 | 60 | | |
63 | | - | |
| 61 | + | |
64 | 62 | | |
65 | 63 | | |
66 | 64 | | |
| |||
230 | 228 | | |
231 | 229 | | |
232 | 230 | | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
237 | | - | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
242 | | - | |
243 | | - | |
244 | | - | |
245 | | - | |
246 | | - | |
247 | | - | |
248 | | - | |
249 | | - | |
| 231 | + | |
250 | 232 | | |
251 | 233 | | |
252 | 234 | | |
| |||
259 | 241 | | |
260 | 242 | | |
261 | 243 | | |
262 | | - | |
263 | | - | |
264 | | - | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | | - | |
269 | | - | |
270 | | - | |
271 | | - | |
272 | | - | |
273 | | - | |
274 | | - | |
275 | | - | |
276 | | - | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
| 31 | + | |
37 | 32 | | |
38 | 33 | | |
39 | 34 | | |
| |||
44 | 39 | | |
45 | 40 | | |
46 | 41 | | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
53 | | - | |
54 | 52 | | |
55 | 53 | | |
56 | 54 | | |
57 | 55 | | |
58 | 56 | | |
59 | | - | |
| 57 | + | |
60 | 58 | | |
61 | 59 | | |
62 | 60 | | |
| |||
96 | 94 | | |
97 | 95 | | |
98 | 96 | | |
99 | | - | |
100 | | - | |
| 97 | + | |
| 98 | + | |
101 | 99 | | |
102 | 100 | | |
103 | 101 | | |
104 | 102 | | |
105 | 103 | | |
106 | | - | |
107 | | - | |
108 | | - | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
109 | 107 | | |
110 | | - | |
| 108 | + | |
111 | 109 | | |
112 | 110 | | |
113 | 111 | | |
114 | | - | |
115 | | - | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
116 | 116 | | |
117 | | - | |
| 117 | + | |
| 118 | + | |
118 | 119 | | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
123 | 124 | | |
124 | | - | |
125 | | - | |
126 | | - | |
| 125 | + | |
127 | 126 | | |
128 | | - | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
129 | 132 | | |
130 | | - | |
131 | | - | |
132 | | - | |
| 133 | + | |
133 | 134 | | |
134 | | - | |
135 | | - | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
136 | 143 | | |
137 | 144 | | |
138 | 145 | | |
| |||
168 | 175 | | |
169 | 176 | | |
170 | 177 | | |
171 | | - | |
| 178 | + | |
172 | 179 | | |
173 | 180 | | |
174 | 181 | | |
| |||
214 | 221 | | |
215 | 222 | | |
216 | 223 | | |
217 | | - | |
| 224 | + | |
218 | 225 | | |
219 | 226 | | |
220 | 227 | | |
| |||
227 | 234 | | |
228 | 235 | | |
229 | 236 | | |
230 | | - | |
| 237 | + | |
231 | 238 | | |
232 | 239 | | |
233 | 240 | | |
| |||
246 | 253 | | |
247 | 254 | | |
248 | 255 | | |
249 | | - | |
250 | | - | |
251 | | - | |
252 | | - | |
253 | | - | |
254 | | - | |
255 | | - | |
256 | | - | |
257 | | - | |
258 | | - | |
0 commit comments