POC: Remote module inclusion#6815
POC: Remote module inclusion#6815jorgee wants to merge 17 commits into251117-module-system-implementationfrom
Conversation
|
Updated the PoC for remote module inclusion, working with V2 and V1 syntax parsers and |
|
@jorgee can you please include a super short "how to test" in a comment? |
|
To test this branch you need to do the following:
|
1785870 to
2432e90
Compare
Signed-off-by: jorgee <jorge.ejarque@seqera.io>
Signed-off-by: jorgee <jorge.ejarque@seqera.io>
Signed-off-by: jorgee <jorge.ejarque@seqera.io>
3b6e77c to
c38b4a8
Compare
* Fix JGit resources not being closed in CLI commands AssetManager now implements Closeable and CLI commands wrap manager usage in try-finally blocks to ensure JGit resources are properly released. This prevents ~90 second shutdown delays caused by JGit shutdown hooks cleaning up unclosed Repository objects. Signed-off-by: Claude Opus 4.5 <noreply@anthropic.com> Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com> * Improve res handling [ci fast] Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com> * Fix unclosed JGit resources in SCM strategies - Use cached getBareGit() instead of Git.open() in revisionToCommitWithBareRepo() - Cache legacy Git object to avoid repeated unclosed Git.open() calls - Close Git objects returned by clone commands - Wrap FileRepository in try-with-resources in createSharedClone() - Use try-with-resources for RevWalk/TreeWalk in LocalRepositoryProvider Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com> --------- Signed-off-by: Claude Opus 4.5 <noreply@anthropic.com> Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
|
Trying this I get |
|
I miss to check it. Fixed in the last commit. I have also added the fix in #6768 |
Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
|
This looks going into the right direction, first comments:
|
e46c0a5 to
400737a
Compare
…sistency (#6833) Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
400737a to
61f9954
Compare
Signed-off-by: jorgee <jorge.ejarque@seqera.io>
Signed-off-by: jorgee <jorge.ejarque@seqera.io>
Signed-off-by: jorgee <jorge.ejarque@seqera.io>
61f9954 to
a483d3e
Compare
|
Updated from source branch:
To test, you must run with registry branch |
This has been merged, isn't it? |
…on' of github.com:nextflow-io/nextflow into 251117-module-system-implementation-with-remote-inclusion
|
Yes, it has been merged to |
Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
|
Push a small change, to fix compilation on my side |
|
Nice the info command, suggest command can be improved: This is what mcp is suggesting |
|
Run supports nextflow.config, great |
|
Likely this error message is not needed because there's already the dump of the failing command |
|
Regarding the RegistryConfig i'd like to align with with one used by the gradle plugin it should be fairly simple declare as the auth it should be assumed the first is the primary, and publish (auth) would only be allowed for it. wdyt? |
|
I'd also keep |
This pull request introduces a new Service Provider Interface (SPI) for resolving remote Nextflow modules using the
@scope/namesyntax. The changes provide an implementation that can work with Syntax parser V1 and V2 without coupling Nextflow runtime classes to nf-lang. It also includes a fallback resolver which check if the module files exists in case any resolver is loaded.Remote Module Resolution SPI Integration:
RemoteModuleResolverSPI interface innextflow.module.spi, defining methods for resolving remote modules and specifying resolver priority.RemoteModuleResolverProviderclass, which uses Java's ServiceLoader to discover and select the highest-priority resolver, with a fallback if none are found.FallbackRemoteModuleResolver) that throws an informative error if no SPI resolver is available.DefaultRemoteModuleResolver) via the SPI mechanism inMETA-INF/services/nextflow.module.spi.RemoteModuleResolver.Default Resolver Implementation and Testing:
DefaultRemoteModuleResolveras the default SPI implementation, handling local and remote module resolution, version constraints, and registry integration.DefaultRemoteModuleResolverto verify SPI loading and priority behavior.Module Inclusion Logic Updates:
IncludeDef.groovy,ModuleResolver.java,ResolveIncludeVisitor.java) to use the SPI resolver for@scope/namereferences and ensure correct path resolution. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]