Repository navigation
Add Types and Records side quest (Nextflow 26.10) - #997
Draft
pinin4fjords wants to merge 2 commits into
Draft
pinin4fjords wants to merge 2 commits into
pinin4fjords wants to merge 2 commits into
Conversation
New side quest teaching static typing on Nextflow 26.04: the nextflow.enable.types flag, typed process inputs and outputs, records (literals, record types, destructured inputs, merging with +), typed workflows with Channel<T> and Value<T>, and using nextflow lint to catch interface mistakes. Built around one evolving greeting pipeline whose untyped meta maps silently produce wrong output when a samplesheet column is renamed. Adds the nav entry, the side quest index row and a forward pointer from the metadata side quest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Rework the side quest after review and learner walkthroughs: - Load the samplesheet through a Channel<Person> param, so a renamed column is rejected at load time with the missing field named, and have the learner fix the sheet and rerun from the cache. - Keep record types in a shared types.nf, carry metadata through outputs with `+` (the record form of meta + [...]), and contrast it with destructured inputs that select a subset of fields. - Explain structural record matching, typed take:/emit: as the workflow's documented interface, and Channel vs Value. - Show nextflow lint catching a misspelled field and a wrongly typed argument before anything runs. - Explain the type-check warning seen partway through the migration. - Trim to fit the one-hour estimate, and replace version-specific caveats with a single note that the quest requires Nextflow 26.10. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
❌ Deploy Preview for nextflow-training failed. Why did it fail? →
|
Contributor
|
Nextflow linting complete!
💡 Tip: Click filename locations to go directly to that code. View all 45 issuesView formatting changes
|
4 tasks
This branch has not been deployed
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
Adds a new side quest, Types and Records, in the "Deep Dives into Dataflow" group after Metadata. It teaches Nextflow's static typing through one evolving greeting pipeline:
null, Alice!.nextflow.enable.typesflag, typed process inputs and outputs, and the one-file rule for mixing typed and legacy definitions.types.nf.Channel<Person>param that loads and validates the samplesheet. The bad sheet is rejected at load and names the missing field.+to carry metadata through, the record version ofmeta + [...].take:/emit:with record types, structural matching,ChannelvsValue, and named emits read as fields.nextflow lintcatches a misspelled field and a wrongly typed argument before anything runs.The PR also adds the nav entry, a row in the side-quest index, and a forward pointer from the end of the Metadata side quest. It is the prerequisite for Part 2 of the upcoming Composing Pipelines course.
Requires Nextflow 26.10
The quest targets Nextflow 26.10.
Channel<T>params loaded from samplesheets, and the type checks shown, are not in 26.04. The page carries one "requires Nextflow 26.10 or later" note and no comparisons between versions.Draft until 26.10 is released. Before merging:
NXF_VERto the 26.10 release in the devcontainer files.TODO(26.10)comment at the top of the page.Testing
mkdocsbuild with no warnings.🤖 Generated with Claude Code