You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
bactopia-scaffold - scaffold Bactopia components (modules, subworkflows, workflows) from bioconda/conda-forge packages with subcommands: lookup, test-data, module, subworkflow, tool
New Lint Rules
W021 - Workflow params block: Value<Path> / Value<Path?> wrappers must be replaced with bare Path / Path? (FAIL)
S025 - Subworkflow take: block: Value<Path> / Value<Path?> wrappers must be replaced with bare Path / Path? (FAIL)
S026 - All emit channels must have a corresponding @output tag (FAIL/WARN)
S027 - @output field descriptions must not exist for channel.empty() emits (FAIL)
Bug Fixes
Fixed _infer_scope classifying run-scope subworkflows as sample scope when sample_outputs was declared but empty
Fixed _extract_tool_info returning build hash as version for conda specs with build strings (e.g., midas=1.3.2=pyh7cba7a3_7)
Hardcoded merlin subworkflow as sample scope (dynamic dispatcher with no fixed output fields)
Enhancements
bactopia-lint gains --subworkflow and --workflow filter options to complement existing --module
Lint runner now supports subworkflow_filter and workflow_filter for fine-grained single-component linting
Extracted shared bactopia.conda module for Anaconda API queries (bioconda/conda-forge version lookup, container ref construction, component existence checking); refactored bactopia-update to use it
bactopia-catalog improved scope inference and tool info extraction
Workflow param parser now captures type annotations (e.g., String, Value<Path>)
Subworkflow take: block inputs are now parsed with name, type, and line number
GroovyDoc parser now tracks per-@output field presence (doc_output_has_fields)
Structure parser now detects channel.empty() emit channels (empty_emit_channels)