nf-core / tools

Python package with helper tools for the nf-core community.
https://nf-co.re
MIT License
242 stars 191 forks source link

No nf-core modules found #3069

Closed mandysulli closed 4 months ago

mandysulli commented 4 months ago

Description of the bug

Hello, I am trying to run nf-core lint on my pipeline, but I keep getting an error message about no nf-core modules found. However, I do have modules from https://github.com/nf-core/modules.git installed, but it seems to have an issue retrieving them this is what is in my modules.json looks like: { "name": "m/cli", "homePage": "https://github.com/m/cli", "repos": { "https://github.com/nf-core/modules.git": { "modules": { "nf-core": { "custom/dumpsoftwareversions": { "branch": "master", "git_sha": "8ec825f465b9c17f9d83000022995b4f7de6fe93", "installed_by": ["modules"] }, "fastqc": { "branch": "master", "git_sha": "c9488585ce7bd35ccd2a30faa2371454c8112fb9", "installed_by": ["modules"] }, "multiqc": { "branch": "master", "git_sha": "8ec825f465b9c17f9d83000022995b4f7de6fe93", "installed_by": ["modules"] } } } } } }

If use 'nf-core modules update given_module' then it says they are all up to date, but if I use 'nf-core modules lint given_module" then I get the same error.

Command used and terminal output

$ nf-core lint
                                          ,--./,-.
          ___     __   __   __   ___     /,-._.--~\
    |\ | |__  __ /  ` /  \ |__) |__         }  {
    | \| |       \__, \__/ |  \ |___     \`-._,-`-,
                                          `._,._,'

    nf-core/tools version 2.14.1 - https://nf-co.re

INFO     Testing pipeline: .
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /usr/local/bin/nf-core:8 in <module>                                                             │
│                                                                                                  │
│   5 from nf_core.__main__ import run_nf_core                                                     │
│   6 if __name__ == '__main__':                                                                   │
│   7 │   sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])                         │
│ ❱ 8 │   sys.exit(run_nf_core())                                                                  │
│   9                                                                                              │
│                                                                                                  │
│ /usr/local/lib/python3.12/site-packages/nf_core/__main__.py:150 in run_nf_core                   │
│                                                                                                  │
│    147 │   │   │   log.debug(f"Could not check latest version: {e}")                             │
│    148 │   │   stderr.print("\n")                                                                │
│    149 │   # Launch the click cli                                                                │
│ ❱  150 │   nf_core_cli(auto_envvar_prefix="NFCORE")                                              │
│    151                                                                                           │
│    152                                                                                           │
│    153 @tui()                                                                                    │
│                                                                                                  │
│ /usr/local/lib/python3.12/site-packages/rich_click/rich_command.py:367 in __call__               │
│                                                                                                  │
│   364 │   │   # Include this here because I run into a false warning                             │
│   365 │   │   # in the PyCharm IDE otherwise; for some reason PyCharm doesn't                    │
│   366 │   │   # seem to think RichGroups are callable. (No issues with Mypy, though.)            │
│ ❱ 367 │   │   return super().__call__(*args, **kwargs)                                           │
│   368                                                                                            │
│   369                                                                                            │
│   370 class RichCommandCollection(CommandCollection, RichGroup):                                 │
│                                                                                                  │
│ /usr/local/lib/python3.12/site-packages/click/core.py:1157 in __call__                           │
│                                                                                                  │
│   1154 │                                                                                         │
│   1155 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:                           │
│   1156 │   │   """Alias for :meth:`main`."""                                                     │
│ ❱ 1157 │   │   return self.main(*args, **kwargs)                                                 │
│   1158                                                                                           │
│   1159                                                                                           │
│   1160 class Command(BaseCommand):                                                               │
│                                                                                                  │
│ /usr/local/lib/python3.12/site-packages/rich_click/rich_command.py:152 in main                   │
│                                                                                                  │
│   149 │   │   try:                                                                               │
│   150 │   │   │   try:                                                                           │
│   151 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:                   │
│ ❱ 152 │   │   │   │   │   rv = self.invoke(ctx)                                                  │
│   153 │   │   │   │   │   if not standalone_mode:                                                │
│   154 │   │   │   │   │   │   return rv                                                          │
│   155 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!                                │
│                                                                                                  │
│ /usr/local/lib/python3.12/site-packages/click/core.py:1688 in invoke                             │
│                                                                                                  │
│   1685 │   │   │   │   super().invoke(ctx)                                                       │
│   1686 │   │   │   │   sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)                    │
│   1687 │   │   │   │   with sub_ctx:                                                             │
│ ❱ 1688 │   │   │   │   │   return _process_result(sub_ctx.command.invoke(sub_ctx))               │
│   1689 │   │                                                                                     │
│   1690 │   │   # In chain mode we create the contexts step by step, but after the                │
│   1691 │   │   # base command has been invoked.  Because at that point we do not                 │
│                                                                                                  │
│ /usr/local/lib/python3.12/site-packages/click/core.py:1434 in invoke                             │
│                                                                                                  │
│   1431 │   │   │   echo(style(message, fg="red"), err=True)                                      │
│   1432 │   │                                                                                     │
│   1433 │   │   if self.callback is not None:                                                     │
│ ❱ 1434 │   │   │   return ctx.invoke(self.callback, **ctx.params)                                │
│   1435 │                                                                                         │
│   1436 │   def shell_complete(self, ctx: Context, incomplete: str) -> t.List["CompletionItem"]:  │
│   1437 │   │   """Return a list of completions for the incomplete value. Looks                   │
│                                                                                                  │
│ /usr/local/lib/python3.12/site-packages/click/core.py:783 in invoke                              │
│                                                                                                  │
│    780 │   │                                                                                     │
│    781 │   │   with augment_usage_errors(__self):                                                │
│    782 │   │   │   with ctx:                                                                     │
│ ❱  783 │   │   │   │   return __callback(*args, **kwargs)                                        │
│    784 │                                                                                         │
│    785 │   def forward(                                                                          │
│    786 │   │   __self, __cmd: "Command", *args: t.Any, **kwargs: t.Any  # noqa: B902             │
│                                                                                                  │
│ /usr/local/lib/python3.12/site-packages/click/decorators.py:33 in new_func                       │
│                                                                                                  │
│    30 │   """                                                                                    │
│    31 │                                                                                          │
│    32 │   def new_func(*args: "P.args", **kwargs: "P.kwargs") -> "R":                            │
│ ❱  33 │   │   return f(get_current_context(), *args, **kwargs)                                   │
│    34 │                                                                                          │
│    35 │   return update_wrapper(new_func, f)                                                     │
│    36                                                                                            │
│                                                                                                  │
│ /usr/local/lib/python3.12/site-packages/nf_core/__main__.py:635 in lint                          │
│                                                                                                  │
│    632 │                                                                                         │
│    633 │   # Run the lint tests!                                                                 │
│    634 │   try:                                                                                  │
│ ❱  635 │   │   lint_obj, module_lint_obj, subworkflow_lint_obj = run_linting(                    │
│    636 │   │   │   dir,                                                                          │
│    637 │   │   │   release,                                                                      │
│    638 │   │   │   fix,                                                                          │
│                                                                                                  │
│ /usr/local/lib/python3.12/site-packages/nf_core/lint/__init__.py:613 in run_linting              │
│                                                                                                  │
│   610 │   if len(module_lint_obj.all_local_components) > 0:                                      │
│   611 │   │   module_lint_obj.lint_modules(module_lint_obj.all_local_components, local=True)     │
│   612 │   if len(module_lint_obj.all_remote_components) > 0:                                     │
│ ❱ 613 │   │   module_lint_obj.lint_modules(module_lint_obj.all_remote_components, local=False)   │
│   614 │   # Run the subworkflows lint tests                                                      │
│   615 │   if subworkflow_lint_obj is not None:                                                   │
│   616 │   │   if len(subworkflow_lint_obj.all_local_components) > 0:                             │
│                                                                                                  │
│ /usr/local/lib/python3.12/site-packages/nf_core/modules/lint/__init__.py:185 in lint_modules     │
│                                                                                                  │
│   182 │   │   │                                                                                  │
│   183 │   │   │   for mod in modules:                                                            │
│   184 │   │   │   │   progress_bar.update(lint_progress, advance=1, test_name=mod.component_na   │
│ ❱ 185 │   │   │   │   self.lint_module(mod, progress_bar, registry=registry, local=local, fix_   │
│   186 │                                                                                          │
│   187 │   def lint_module(self, mod, progress_bar, registry, local=False, fix_version=False):    │
│   188 │   │   """                                                                                │
│                                                                                                  │
│ /usr/local/lib/python3.12/site-packages/nf_core/modules/lint/__init__.py:225 in lint_module      │
│                                                                                                  │
│   222 │   │   │   │   if test_name == "main_nf":                                                 │
│   223 │   │   │   │   │   getattr(self, test_name)(mod, fix_version, self.registry, progress_b   │
│   224 │   │   │   │   else:                                                                      │
│ ❱ 225 │   │   │   │   │   getattr(self, test_name)(mod)                                          │
│   226 │   │   │                                                                                  │
│   227 │   │   │   self.passed += [LintResult(mod, *m) for m in mod.passed]                       │
│   228 │   │   │   warned = [LintResult(mod, *m) for m in mod.warned]                             │
│                                                                                                  │
│ /usr/local/lib/python3.12/site-packages/nf_core/modules/lint/module_changes.py:53 in             │
│ module_changes                                                                                   │
│                                                                                                  │
│   50 │   )                                                                                       │
│   51 │   modules_repo = nf_core.modules.modules_repo.ModulesRepo(remote_url=module.repo_url,     │
│   52 │                                                                                           │
│ ❱ 53 │   for f, same in modules_repo.component_files_identical(                                  │
│   54 │   │   module.component_name, tempdir, module.git_sha, "modules"                           │
│   55 │   ).items():                                                                              │
│   56 │   │   if same:                                                                            │
│                                                                                                  │
│ /usr/local/lib/python3.12/site-packages/nf_core/synced_repo.py:321 in component_files_identical  │
│                                                                                                  │
│   318 │   │   if commit is None:                                                                 │
│   319 │   │   │   self.checkout_branch()                                                         │
│   320 │   │   else:                                                                              │
│ ❱ 321 │   │   │   self.checkout(commit)                                                          │
│   322 │   │   component_files = ["main.nf", "meta.yml"]                                          │
│   323 │   │   files_identical = {file: True for file in component_files}                         │
│   324 │   │   component_dir = self.get_component_dir(component_name, component_type)             │
│                                                                                                  │
│ /usr/local/lib/python3.12/site-packages/nf_core/synced_repo.py:247 in checkout                   │
│                                                                                                  │
│   244 │   │   │   │   log.debug(f"Overwriting local changes in '{self.local_repo_dir}'")         │
│   245 │   │   │   │   self.repo.git.checkout(self.branch, force=True)                            │
│   246 │   │   │   else:                                                                          │
│ ❱ 247 │   │   │   │   raise e                                                                    │
│   248 │                                                                                          │
│   249 │   def component_exists(self, component_name, component_type, checkout=True, commit=Non   │
│   250 │   │   """                                                                                │
│                                                                                                  │
│ /usr/local/lib/python3.12/site-packages/nf_core/synced_repo.py:237 in checkout                   │
│                                                                                                  │
│   234 │   │   │   commit (str): Git SHA of the commit                                            │
│   235 │   │   """                                                                                │
│   236 │   │   try:                                                                               │
│ ❱ 237 │   │   │   self.repo.git.checkout(commit)                                                 │
│   238 │   │   except GitCommandError as e:                                                       │
│   239 │   │   │   if (                                                                           │
│   240 │   │   │   │   self.fullname                                                              │
│                                                                                                  │
│ /usr/local/lib/python3.12/site-packages/git/cmd.py:986 in <lambda>                               │
│                                                                                                  │
│    983 │   │   """                                                                               │
│    984 │   │   if name.startswith("_"):                                                          │
│    985 │   │   │   return super().__getattribute__(name)                                         │
│ ❱  986 │   │   return lambda *args, **kwargs: self._call_process(name, *args, **kwargs)          │
│    987 │                                                                                         │
│    988 │   def set_persistent_git_options(self, **kwargs: Any) -> None:                          │
│    989 │   │   """Specify command line options to the git executable for subsequent              │
│                                                                                                  │
│ /usr/local/lib/python3.12/site-packages/git/cmd.py:1598 in _call_process                         │
│                                                                                                  │
│   1595 │   │   call.append(dashify(method))                                                      │
│   1596 │   │   call.extend(args_list)                                                            │
│   1597 │   │                                                                                     │
│ ❱ 1598 │   │   return self.execute(call, **exec_kwargs)                                          │
│   1599 │                                                                                         │
│   1600 │   def _parse_object_header(self, header_line: str) -> Tuple[str, str, int]:             │
│   1601 │   │   """                                                                               │
│                                                                                                  │
│ /usr/local/lib/python3.12/site-packages/git/cmd.py:1388 in execute                               │
│                                                                                                  │
│   1385 │   │   # END handle debug printing                                                       │
│   1386 │   │                                                                                     │
│   1387 │   │   if with_exceptions and status != 0:                                               │
│ ❱ 1388 │   │   │   raise GitCommandError(redacted_command, status, stderr_value, stdout_value)   │
│   1389 │   │                                                                                     │
│   1390 │   │   if isinstance(stdout_value, bytes) and stdout_as_string:  # Could also be output  │
│   1391 │   │   │   stdout_value = safe_decode(stdout_value)                                      │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
GitCommandError: Cmd('git') failed due to: exit code(1)
  cmdline: git checkout 8ec825f465b9c17f9d83000022995b4f7de6fe93
  stderr: 'error: The following untracked working tree files would be overwritten by checkout:
        .github/check_duplicate_md5s.py
        modules/nf-core/bases2fastq/environment.yml
        modules/nf-core/busco/environment.yml
        modules/nf-core/busco/main.nf
        modules/nf-core/busco/meta.yml
        modules/nf-core/cellpose/environment.yml
        modules/nf-core/cellranger/count/environment.yml
        modules/nf-core/cellranger/mkfastq/environment.yml
        modules/nf-core/cellranger/mkgtf/environment.yml
        modules/nf-core/cellranger/mkref/environment.yml
        modules/nf-core/cellranger/mkvdjref/environment.yml
        modules/nf-core/cellranger/multi/environment.yml
        modules/nf-core/cellranger/vdj/environment.yml
        modules/nf-core/deepvariant/environment.yml
        modules/nf-core/fastp/tests/nextflow.config
        modules/nf-core/gatk4/cnnscorevariants/environment.yml
        modules/nf-core/gatk4/determinegermlinecontigploidy/environment.yml
        modules/nf-core/gatk4/germlinecnvcaller/environment.yml
        modules/nf-core/gatk4/postprocessgermlinecnvcalls/environment.yml
        modules/nf-core/isoseq3/cluster/environment.yml
        modules/nf-core/isoseq3/cluster/main.nf
        modules/nf-core/isoseq3/cluster/meta.yml
        modules/nf-core/isoseq3/refine/environment.yml
        modules/nf-core/isoseq3/refine/main.nf
        modules/nf-core/isoseq3/refine/meta.yml
        modules/nf-core/kallisto/quant/tests/paired_end.config
        modules/nf-core/kallisto/quant/tests/single_end.config
        modules/nf-core/mcquant/environment.yml
        modules/nf-core/merqury/environment.yml
        modules/nf-core/merqury/main.nf
        modules/nf-core/merqury/meta.yml
        modules/nf-core/merquryfk/ploidyplot/environment.yml
        modules/nf-core/sentieon/Dockerfile
        modules/nf-core/sentieon/setup.md
        modules/nf-core/spaceranger/count/environment.yml
        modules/nf-core/spaceranger/mkgtf/environment.yml
        modules/nf-core/spaceranger/mkref/environment.yml
        subworkflows/nf-core/fastq_align_bamcmp_bwa/nextflow.config
        subworkflows/nf-core/fastq_align_dna/README.md
        subworkflows/nf-core/utils_nextflow_pipeline/tests/main.functions.nf.test
        subworkflows/nf-core/utils_nextflow_pipeline/tests/main.functions.nf.test.snap
        subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test.snap
        subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test.snap
        tests/modules/nf-core/admixture/main.nf
        tests/modules/nf-core/admixture/nextflow.config
        tests/modules/nf-core/admixture/test.yml
        tests/modules/nf-core/affy/justrma/main.nf
        tests/modules/nf-core/affy/justrma/nextflow.config
        tests/modules/nf-core/affy/justrma/test.yml
        tests/modules/nf-core/agat/convertspgff2tsv/main.nf
        tests/modules/nf-core/agat/convertspgff2tsv/nextflow.config
        tests/modules/nf-core/agat/convertspgff2tsv/test.yml
        tests/modules/nf-core/agat/convertspgxf2gxf/main.nf
        tests/modules/nf-core/agat/convertspgxf2gxf/nextflow.config
        tests/modules/nf-core/agat/convertspgxf2gxf/test.yml
        tests/modules/nf-core/ampcombi/main.nf
        tests/modules/nf-core/ampcombi/nextflow.config
        tests/modules/nf-core/ampcombi/test.yml
        tests/modules/nf-core/amrfinderplus/run/main.nf
        tests/modules/nf-core/amrfinderplus/run/nextflow.config
        tests/modules/nf-core/amrfinderplus/run/test.yml
        tests/modules/nf-core/amrfinderplus/update/main.nf
        tests/modules/nf-core/amrfinderplus/update/nextflow.config
        tests/modules/nf-core/amrfinderplus/update/test.yml
        tests/modules/nf-core/annotsv/annotsv/main.nf
        tests/modules/nf-core/annotsv/annotsv/nextflow.config
        tests/modules/nf-core/annotsv/annotsv/test.yml
        tests/modules/nf-core/annotsv/installannotations/main.nf
        tests/modules/nf-core/annotsv/installannotations/nextflow.config
        tests/modules/nf-core/annotsv/installannotations/test.yml
        tests/modules/nf-core/antismash/antismashlite/main.nf
        tests/modules/nf-core/antismash/antismashlite/nextflow.config
        tests/modules/nf-core/antismash/antismashlite/test.yml
        tests/modules/nf-core/antismash/antismashlitedownloaddatabases/main.nf
        tests/modules/nf-core/antismash/antismashlitedownloaddatabases/nextflow.config
        tests/modules/nf-core/antismash/antismashlitedownloaddatabases/test.yml
        tests/modules/nf-core/ariba/getref/main.nf
        tests/modules/nf-core/ariba/getref/nextflow.c
Aborting'

System information

Nextflow version: nextflow/23.10.0 Hardware: HPC - interactive session OS: biolinux Version of nf-core/tools : 2.14.1

mashehu commented 4 months ago

The problem is that you have a broken/changed, therefore you get the git error (it tries to update the cache via git pull but you have some uncommite changes there (probably because of a unsuccessful update run). Can you try to remove it with rm -r ~/.config/nfcore then it should work

mandysulli commented 4 months ago

That worked for v2.14.1. I ran it and realized I should probably be running v2.12.1 since that is the version I used to make the pipeline, but running nf-core lint with v2.12.1 won't work even after running rm -r ~/.config/nfcore. Now I receive this error:


                                          ,--./,-.
          ___     __   __   __   ___     /,-._.--~\
    |\ | |__  __ /  ` /  \ |__) |__         }  {
    | \| |       \__, \__/ |  \ |___     \`-._,-`-,
                                          `._,._,'

    nf-core/tools version 2.12.1 - https://nf-co.re
    There is a new version of nf-core/tools available! (2.14.1)

╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /opt/conda/bin/nf-core:10 in <module>                                                            │
│                                                                                                  │
│    7                                                                                             │
│    8 if __name__ == '__main__':                                                                  │
│    9 │   sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])                       │
│ ❱ 10 │   sys.exit(run_nf_core())                                                                 │
│   11                                                                                             │
│                                                                                                  │
│ /opt/conda/lib/python3.11/site-packages/nf_core/__main__.py:141 in run_nf_core                   │
│                                                                                                  │
│    138 │   │   │   log.debug(f"Could not check latest version: {e}")                             │
│    139 │   │   stderr.print("\n")                                                                │
│    140 │   # Launch the click cli                                                                │
│ ❱  141 │   nf_core_cli(auto_envvar_prefix="NFCORE")                                              │
│    142                                                                                           │
│    143                                                                                           │
│    144 @tui()                                                                                    │
│                                                                                                  │
│ /opt/conda/lib/python3.11/site-packages/click/core.py:1157 in __call__                           │
│                                                                                                  │
│   1154 │                                                                                         │
│   1155 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:                           │
│   1156 │   │   """Alias for :meth:`main`."""                                                     │
│ ❱ 1157 │   │   return self.main(*args, **kwargs)                                                 │
│   1158                                                                                           │
│   1159                                                                                           │
│   1160 class Command(BaseCommand):                                                               │
│                                                                                                  │
│ /opt/conda/lib/python3.11/site-packages/rich_click/rich_command.py:126 in main                   │
│                                                                                                  │
│   123 │   │   try:                                                                               │
│   124 │   │   │   try:                                                                           │
│   125 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:                   │
│ ❱ 126 │   │   │   │   │   rv = self.invoke(ctx)                                                  │
│   127 │   │   │   │   │   if not standalone_mode:                                                │
│   128 │   │   │   │   │   │   return rv                                                          │
│   129 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!                                │
│                                                                                                  │
│ /opt/conda/lib/python3.11/site-packages/click/core.py:1688 in invoke                             │
│                                                                                                  │
│   1685 │   │   │   │   super().invoke(ctx)                                                       │
│   1686 │   │   │   │   sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)                    │
│   1687 │   │   │   │   with sub_ctx:                                                             │
│ ❱ 1688 │   │   │   │   │   return _process_result(sub_ctx.command.invoke(sub_ctx))               │
│   1689 │   │                                                                                     │
│   1690 │   │   # In chain mode we create the contexts step by step, but after the                │
│   1691 │   │   # base command has been invoked.  Because at that point we do not                 │
│                                                                                                  │
│ /opt/conda/lib/python3.11/site-packages/click/core.py:1434 in invoke                             │
│                                                                                                  │
│   1431 │   │   │   echo(style(message, fg="red"), err=True)                                      │
│   1432 │   │                                                                                     │
│   1433 │   │   if self.callback is not None:                                                     │
│ ❱ 1434 │   │   │   return ctx.invoke(self.callback, **ctx.params)                                │
│   1435 │                                                                                         │
│   1436 │   def shell_complete(self, ctx: Context, incomplete: str) -> t.List["CompletionItem"]:  │
│   1437 │   │   """Return a list of completions for the incomplete value. Looks                   │
│                                                                                                  │
│ /opt/conda/lib/python3.11/site-packages/click/core.py:783 in invoke                              │
│                                                                                                  │
│    780 │   │                                                                                     │
│    781 │   │   with augment_usage_errors(__self):                                                │
│    782 │   │   │   with ctx:                                                                     │
│ ❱  783 │   │   │   │   return __callback(*args, **kwargs)                                        │
│    784 │                                                                                         │
│    785 │   def forward(                                                                          │
│    786 │   │   __self, __cmd: "Command", *args: t.Any, **kwargs: t.Any  # noqa: B902             │
│                                                                                                  │
│ /opt/conda/lib/python3.11/site-packages/click/decorators.py:33 in new_func                       │
│                                                                                                  │
│    30 │   """                                                                                    │
│    31 │                                                                                          │
│    32 │   def new_func(*args: "P.args", **kwargs: "P.kwargs") -> "R":                            │
│ ❱  33 │   │   return f(get_current_context(), *args, **kwargs)                                   │
│    34 │                                                                                          │
│    35 │   return update_wrapper(new_func, f)                                                     │
│    36                                                                                            │
│                                                                                                  │
│ /opt/conda/lib/python3.11/site-packages/nf_core/__main__.py:607 in lint                          │
│                                                                                                  │
│    604 │                                                                                         │
│    605 │   # Run the lint tests!                                                                 │
│    606 │   try:                                                                                  │
│ ❱  607 │   │   lint_obj, module_lint_obj, subworkflow_lint_obj = run_linting(                    │
│    608 │   │   │   dir,                                                                          │
│    609 │   │   │   release,                                                                      │
│    610 │   │   │   fix,                                                                          │
│                                                                                                  │
│ /opt/conda/lib/python3.11/site-packages/nf_core/lint/__init__.py:94 in run_linting               │
│                                                                                                  │
│    91 │   lint_obj._list_files()                                                                 │
│    92 │                                                                                          │
│    93 │   # Create the modules lint object                                                       │
│ ❱  94 │   module_lint_obj = nf_core.modules.lint.ModuleLint(pipeline_dir, hide_progress=hide_p   │
│    95 │   # Create the subworkflows lint object                                                  │
│    96 │   try:                                                                                   │
│    97 │   │   subworkflow_lint_obj = nf_core.subworkflows.lint.SubworkflowLint(pipeline_dir, h   │
│                                                                                                  │
│ /opt/conda/lib/python3.11/site-packages/nf_core/modules/lint/__init__.py:51 in __init__          │
│                                                                                                  │
│    48 │   │   registry=None,                                                                     │
│    49 │   │   hide_progress=False,                                                               │
│    50 │   ):                                                                                     │
│ ❱  51 │   │   super().__init__(                                                                  │
│    52 │   │   │   component_type="modules",                                                      │
│    53 │   │   │   dir=dir,                                                                       │
│    54 │   │   │   fail_warned=fail_warned,                                                       │
│                                                                                                  │
│ /opt/conda/lib/python3.11/site-packages/nf_core/components/lint/__init__.py:100 in __init__      │
│                                                                                                  │
│    97 │   │   │   │   │   │   )                                                                  │
│    98 │   │   │   │   │   )                                                                      │
│    99 │   │   │   if not self.all_remote_components:                                             │
│ ❱ 100 │   │   │   │   raise LookupError(                                                         │
│   101 │   │   │   │   │   f"No {self.component_type} from {self.modules_repo.remote_url} insta   │
│   102 │   │   │   │   )                                                                          │
│   103 │   │   │   local_component_dir = Path(self.dir, self.component_type, "local")             │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
LookupError: No modules from https://github.com/nf-core/modules.git installed in pipeline.
mashehu commented 4 months ago

can you post your nf-core.yml here please?

mandysulli commented 4 months ago

Yes!

lint:
  files_exist:
  - CODE_OF_CONDUCT.md
  - assets/nf-core-cli_logo_light.png
  - docs/images/nf-core-cli_logo_light.png
  - docs/images/nf-core-cli_logo_dark.png
  - .github/ISSUE_TEMPLATE/config.yml
  - .github/workflows/awstest.yml
  - .github/workflows/awsfulltest.yml
  files_unchanged:
  - CODE_OF_CONDUCT.md
  - assets/nf-core-cli_logo_light.png
  - docs/images/nf-core-cli_logo_light.png
  - docs/images/nf-core-cli_logo_dark.png
  - .github/ISSUE_TEMPLATE/bug_report.yml
  multiqc_config:
  - report_comment
  nextflow_config:
  - manifest.name
  - manifest.homePage
repository_type: pipeline
template:
  prefix: mira
  skip: []
mashehu commented 4 months ago

okay, looks okay and you have modules (i.e. main.nf files etc) in modules/nf-core?

mandysulli commented 4 months ago

Yes. Here is the setup: image

mirpedrol commented 4 months ago

Hi @mandysulli, is running nf-core modules lint <module_name> working for you with v2.12.1? Could you also try to run the commands with the nf-core --verbose flag and share the output here? Regarding linting with v2.12.1 or v2.14.1, if you don't see errors with the latest version, I would advise to use this one.

mandysulli commented 4 months ago

nf-core modules lint <module_name> wasn't working with v2.12.1, but I think you are right about using the latest version. I am just updating my lay out and proceeding with v2.14.1 now. That is working fine. Thanks for the help.