Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ import java.nio.file.Path
class DefaultRemoteModuleResolver implements RemoteModuleResolver {

@Override
Path resolve(String moduleName, Path baseDir) {

Path resolve(String moduleName) {
def baseDir = Global.session?.baseDir ?: Path.of('.')
final config = Global.config ?: new ConfigBuilder().setBaseDir(baseDir).build()
final registryConfig = config.navigate('registry') as RegistryConfig

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ class ModuleResolver {
// Install to modules directory (will compute directory checksum for future integrity checks)
InstalledModule installed = storage.installModule(reference, version, tempFile, downloadUrl)

log.info "Module ${reference}@${version} installed successfully at ${installed.mainFile.parent}"
log.info "Module ${reference}@${version} installed successfully at ${installed.mainFile.parent.toAbsolutePath().toString()}"
Comment thread
jorgee marked this conversation as resolved.
Outdated
return installed.mainFile
}
finally {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ class IncludeDef {
Path resolveRemoteModulePath(String moduleName) {
// Use SPI to get the remote module resolver implementation
def resolver = RemoteModuleResolverProvider.getInstance()
return resolver.resolve(moduleName, session.baseDir)
return resolver.resolve(moduleName)
}

@PackageScope
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@
public class FallbackRemoteModuleResolver implements RemoteModuleResolver {

@Override
public Path resolve(String moduleName, Path baseDir) {
public Path resolve(String moduleName) {
final Path baseDir = Path.of("modules");
if (!Files.exists(baseDir.resolve(moduleName))) {
throw new IllegalStateException("Module '" + moduleName + "' not locally found at 'modules' folder - use 'nextflow install' to download module files");
}
Expand All @@ -42,4 +43,4 @@ public Path resolve(String moduleName, Path baseDir) {
public int getPriority() {
return Integer.MIN_VALUE; // Fallback has lowest possible priority
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,10 @@ public interface RemoteModuleResolver {
* </ol>
*
* @param moduleName The module reference string (e.g., '@scope/name' or '@scope/name@version')
* @param baseDir The base directory for the project (used to locate the modules directory)
* @return Path to the resolved module's main.nf file
* @throws IllegalArgumentException if the module reference is invalid or resolution fails
*/
Path resolve(String moduleName, Path baseDir);
Path resolve(String moduleName);

/**
* Get the priority of this resolver. Higher priority resolvers are tried first.
Expand All @@ -65,4 +64,4 @@ public interface RemoteModuleResolver {
default int getPriority() {
return 0;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -74,17 +74,9 @@ private SourceUnit resolveInclude(IncludeNode node, SourceUnit sourceUnit, Funct
if( source.startsWith("plugin/") )
return null;

var parent = Path.of(sourceUnit.getSource().getURI()).getParent();

// Resolve remote module paths (scope/name format, not starting with local prefixes)
if( isRemoteModule(source) ) {
var modules = Path.of("./modules");
var resolver = RemoteModuleResolverProvider.getInstance();
resolver.resolve(source, modules.getParent());
parent = modules;
}

var includeUri = getIncludeUri(parent, source);
var includeUri = isRemoteModule(source) ?
RemoteModuleResolverProvider.getInstance().resolve(source).normalize().toUri() :
getIncludeUri(Path.of(sourceUnit.getSource().getURI()).getParent(), source);
if( compiler.getSource(includeUri) != null )
return null;
if( !Files.exists(Path.of(includeUri)) )
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import java.util.List;
import java.util.Set;

import nextflow.module.spi.RemoteModuleResolverProvider;
import nextflow.script.ast.FunctionNode;
import nextflow.script.ast.IncludeNode;
import nextflow.script.ast.ScriptNode;
Expand Down Expand Up @@ -86,9 +87,9 @@ public void visitInclude(IncludeNode node) {
return;
}

var isRemoteModule = ModuleResolver.isRemoteModule(source);
var parent = isRemoteModule ? Path.of("modules") : Path.of(uri).getParent();
var includeUri = getIncludeUri(parent, source);
var includeUri = ModuleResolver.isRemoteModule(source) ?
RemoteModuleResolverProvider.getInstance().resolve(source).normalize().toUri() :
getIncludeUri(Path.of(sourceUnit.getSource().getURI()).getParent(), source);
if( !isIncludeStale(node, includeUri) )
return;
changed = true;
Expand Down
Loading