Split debugging side quest into mini-course; add -dump-hashes lesson#958
Open
pinin4fjords wants to merge 2 commits into
Open
Split debugging side quest into mini-course; add -dump-hashes lesson#958pinin4fjords wants to merge 2 commits into
pinin4fjords wants to merge 2 commits into
Conversation
Restructure the Troubleshooting Workflows side quest as a two-lesson mini-course (matching the plugin_development pattern), and add new coverage of cache-invalidation debugging using -dump-hashes. - index.md becomes a short landing page (overview, prerequisites, lesson plan, learning objectives split by lesson) - 01_common_errors.md is the existing catalog of syntax, channel and process errors (was sections 1-3 of the original) - 02_debugging_toolkit.md is rewritten around a single spine pipeline (sample_processing.nf) so each tool is applied in sequence: work-dir forensics, -preview, debug true, -stub-run, -dump-hashes, systematic method, and a practical exercise on buggy_workflow.nf - new -dump-hashes section walks three experiments (script comment, resource directive, channel map change) and shows in each case which hash component changes and why The old single-page index.md was 2659 lines; splitting and re-anchoring around one spine pipeline makes the second half navigable rather than a slog. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
✅ Deploy Preview for nextflow-training ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Contributor
|
Nextflow linting complete!
💡 Tip: Click filename locations to go directly to that code. View all 53 issuesView formatting changes<...*[Comment body truncated]*
|
Found during /run-tutorial walkthrough of the new mini-course: Documentation fixes: - hl_lines corrections in lesson 2 (§1.3, §3.1, §2.2, §5.4): some were off by 1-5 lines, highlighting blank lines or closing quotes instead of the meaningful content. Recounted from line 1 of each snippet. - §2.2 syntax error block: updated from v1 parser format to v2 format matching what training environments actually produce (NXF_SYNTAX_PARSER=v2 / strict syntax parser default) - §2.2 "Broken" block: added placeholder comment so it matches "Working" line count, letting both highlight the same conceptual position - Process names (COUNT_LINES, REPORT) and directives (memory, cpus) backticked in prose (was bare in several places) - Two bare ??? "Command output" admonitions in §5 changed to ??? success "Command output" for consistency Mini-course structure (matching plugin_development pattern): - Added summary.md - course-wide recap with error/tool cheat sheets and three "easy to forget" reminders - Added next_steps.md - what to do next, resources, links to other training - Lesson 2 tail trimmed to a "continue to summary" button rather than repeating the recap inline - mkdocs.yml nav updated to include summary.md and next_steps.md Verified end-to-end via Docker (DooD): - L2 §1: missing-output failure + work-dir inspection + fix + success - L2 §2: -preview on working pipeline + preview catching missing brace - L2 §3: debug true + echo streams to terminal - L2 §4: -stub-run runs without docker - L2 §5: baseline -dump-hashes, comment busts cache, memory directive preserves cache, upstream .map change cascades downstream - L2 §7: buggy_workflow.nf produces the documented initial error - L1 spot-checks: bad_syntax, invalid_process, no_such_var, bad_resources, bad_channel_shape all produce their documented errors Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Restructures the Troubleshooting Workflows side quest as a two-lesson mini-course (matching the
plugin_developmentpattern), and adds new coverage of cache-invalidation debugging with-dump-hashes.The previous single-page side quest was 2659 lines and a slog to read end-to-end. Splitting it into a catalog (Part 1) and a toolkit walkthrough (Part 2) lets readers stop at a sensible boundary, and gives the new
-dump-hashescontent a natural home alongside the other CLI debugging flags.Changes
index.mdis now a short landing page: overview, prerequisites, lesson plan, learning objectives split by lesson, link to Part 1.01_common_errors.mdcarries the existing catalog of syntax, channel and process errors (formerly sections 1-3 of the original).02_debugging_toolkit.mdis rewritten end-to-end around a single spine pipeline (sample_processing.nf). Each tool is applied in sequence:-previewfor parse-before-run validationdebug truefor live process output-stub-runfor fast iteration without containers-dump-hashesfor cache invalidation — new, with three experiments (script comment, resource directive, channel map change) showing exactly which hash component changes and whybuggy_workflow.nf(carried over from before)side-quests/debugging/sample_processing.nf— the spine pipeline used throughout Part 2. Ships intentionally broken (output filename mismatch), so Part 2 opens with a real forensic walkthrough.mkdocs.ymlnav:debugging/index.mdbecomes a nested "Troubleshooting Workflows" section, likeplugin_development.Why the spine pipeline
Each toolkit section in the previous version used a different example file (
missing_output.nf,bad_syntax.nf,bad_channel_shape_viewed_debug.nf,missing_software_with_stub.nf). Threading one pipeline through Part 2 lets the lesson feel like a single development journey: you debug it, validate it, instrument it, iterate on it, and then investigate its caching. The cumulative pedagogical effect matches the style ofworking_with_files,metadataandsplitting_and_grouping.Test plan
uv run .github/check_headings.py)npx prettier@3.2.5 --check)nextflow run sample_processing.nf -profile docker(verified)-previewon broken pipeline reports compilation error (verified)debug true+echostreams to terminal (verified)-stub-runsucceeds without-profile docker(verified)-dump-hashesExperiment 1 (comment in script) busts cache and changes script hash (verified)-dump-hashesExperiment 2 (memory directive) does not bust cache (verified)-dump-hashesExperiment 3 (upstream.mapchange) cascades to all downstream tasks (verified)🤖 Generated with Claude Code