-
Notifications
You must be signed in to change notification settings - Fork 753
Fix leading **/ glob to match zero-or-more directories #6654
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
✅ Deploy Preview for nextflow-docs-staging canceled.
|
|
@claude review please |
|
Claude finished @robsyme's task —— View job PR Review: Fix leading **/ glob to match zero-or-more directoriesTodo List:
Review SummaryThis PR successfully addresses issue #6653 by transforming leading Code AnalysisCore Change (
|
Java's glob pattern `**/foo` requires at least one directory component
before `foo`, but users expect it to also match `foo` at the root level.
This change transforms leading `**/` patterns to `{,**/}` which means
"either nothing OR any number of directories", correctly matching:
- `foo` (zero directories)
- `bar/foo` (one directory)
- `bar/baz/foo` (multiple directories)
This fixes issues where `files("path/**/subdir/*.txt")` would fail to
find files in `path/subdir/` while finding files in `path/x/subdir/`.
Fixes #5948
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <[email protected]>
Signed-off-by: Rob Syme <[email protected]>
b2a0ab4 to
2ab4883
Compare
Extract InterOp files directly from the input channel rather than emitting them from BCLCONVERT/BCL2FASTQ process outputs. This avoids passing files through a process unchanged, allowing downstream consumers to access InterOp data immediately without waiting for demultiplexing to complete. This also resolves an issue where Fusion could not collect InterOp files nested within staged input directories (nextflow-io/nextflow#5948). The {,**/} glob pattern is used instead of **/ because Java's glob requires **/ to match at least one directory, but we need to match InterOp directories at both the root level and in subdirectories. Once nextflow-io/nextflow#6654 is merged, this can be simplified to **/.
…ficiency Extract InterOp files directly from the input channel rather than emitting them from BCLCONVERT/BCL2FASTQ process outputs. This avoids passing files through a process unchanged, allowing downstream consumers to access InterOp data immediately without waiting for demultiplexing to complete. This also resolves an issue where Fusion could not collect InterOp files nested within staged input directories (nextflow-io/nextflow#5948). The {,**/} glob pattern is used instead of **/ because Java's glob requires **/ to match at least one directory, but we need to match InterOp directories at both the root level and in subdirectories. Once nextflow-io/nextflow#6654 is merged, this can be simplified to **/. Changes: - Remove interop output from BCLCONVERT and BCL2FASTQ modules - Remove redundant cp commands that copied InterOp files - Update meta.yml files to reflect removed outputs - Extract InterOp files from input channel in BCL_DEMULTIPLEX subworkflow Signed-off-by: Rob Syme <[email protected]>
|
Closing since stating #6653 is not planned anymore |
Summary
**/glob patterns to{,**/}inFileHelper.visitFiles()so they match files at the root level (zero directories) as well as in subdirectoriesTest plan
should match files at root and subdirectories with double-star globvisitFilestests still passCloses #6653