{
  "id": "spack",
  "name": "Spack",
  "homepage": "https://spack.io",
  "description": "Package manager for supercomputers.",
  "executables": [
    "spack"
  ],
  "dotfiles": {
    "paths": [
      "~/.spack/config.yaml",
      "~/.spack/concretizer.yaml",
      "~/.spack/include.yaml",
      "~/.spack/mirrors.yaml",
      "~/.spack/modules.yaml",
      "~/.spack/packages.yaml",
      "~/.spack/*/compilers.yaml",
      "~/.spack/repos.yaml",
      "~/.spack/toolchains.yaml"
    ],
    "secret": []
  },
  "commands": {
    "format": 1,
    "label": "Spack",
    "description": "Build and install packages from specs. Environment-only, buildcache-mode, CDash and log options of spack install are left out; other spack subcommands are not covered.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "install"
        ],
        "label": "Install packages",
        "description": "Concretize and install one or more package specs.",
        "source": [
          {
            "id": "help",
            "kind": "help",
            "url": "https://spack.readthedocs.io/en/latest/command_index.html",
            "revision": "1.3.0.dev0",
            "evidence": "spack install [-h] [--only {package,dependencies}] [-u UNTIL] [-p CONCURRENT_PACKAGES] [-j JOBS] [--overwrite]\nPositional arguments\nspec  package spec\n--only {package,dependencies}  select the mode of installation\n-j, --jobs JOBS  explicitly set number of parallel jobs\n--overwrite  reinstall an existing spec, even if it has dependents\n--fail-fast  stop all builds if any build fails (default is best effort)\n--keep-stage  don't remove the build stage if installation succeeds\n--use-cache  check for pre-built Spack packages in mirrors (default)\n--no-cache  do not check for pre-built Spack packages in mirrors\n--cache-only  only install package from binary mirrors\n--show-log-on-error  print full build log to stderr if build fails\n-n, --no-checksum  do not use checksums to verify downloaded files (unsafe)\n-v, --verbose  display verbose build output while installing\n--test {root,all}  run tests on only root packages or all packages\n-y, --yes-to-all  assume \"yes\" is the answer to every confirmation request\n-U, --fresh  do not reuse installed deps; build newest configuration\n--reuse  reuse installed packages/buildcaches when possible\n"
          }
        ],
        "field": [
          {
            "id": "specs",
            "label": "Package specs",
            "description": "For example zlib@1.3 +shared %gcc.",
            "type": "string",
            "position": 0,
            "multiple": true,
            "min": 0,
            "sources": [
              "help"
            ]
          },
          {
            "id": "only",
            "label": "Install",
            "type": "enum",
            "option": [
              "--only"
            ],
            "choices": [
              {
                "value": "package",
                "label": "Package only"
              },
              {
                "value": "dependencies",
                "label": "Dependencies only"
              }
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "jobs",
            "label": "Parallel jobs",
            "type": "integer",
            "option": [
              "--jobs",
              "-j"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "overwrite",
            "label": "Reinstall existing",
            "type": "boolean",
            "option": [
              "--overwrite"
            ],
            "effect": "overwrite",
            "sources": [
              "help"
            ]
          },
          {
            "id": "fail_fast",
            "label": "Stop on first failure",
            "type": "boolean",
            "option": [
              "--fail-fast"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "keep_stage",
            "label": "Keep build stage",
            "type": "boolean",
            "option": [
              "--keep-stage"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "no_cache",
            "label": "Skip binary mirrors",
            "type": "boolean",
            "option": [
              "--no-cache"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "cache_only",
            "label": "Binary mirrors only",
            "type": "boolean",
            "option": [
              "--cache-only"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "no_checksum",
            "label": "Skip checksum verification (unsafe)",
            "type": "boolean",
            "option": [
              "--no-checksum",
              "-n"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "verbose",
            "label": "Verbose build output",
            "type": "boolean",
            "option": [
              "--verbose",
              "-v"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "show_log_on_error",
            "label": "Show log on error",
            "type": "boolean",
            "option": [
              "--show-log-on-error"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "test",
            "label": "Run tests",
            "type": "enum",
            "option": [
              "--test"
            ],
            "choices": [
              {
                "value": "root",
                "label": "Root packages"
              },
              {
                "value": "all",
                "label": "All packages"
              }
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "fresh",
            "label": "Build fresh (no reuse)",
            "type": "boolean",
            "option": [
              "--fresh",
              "-U"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "reuse",
            "label": "Reuse installed",
            "type": "boolean",
            "option": [
              "--reuse"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "install",
            "label": "Install a package",
            "fields": [
              "specs",
              "jobs",
              "verbose"
            ],
            "required": [
              "specs"
            ]
          },
          {
            "id": "binary",
            "label": "Install from binary mirrors only",
            "fields": [
              "specs",
              "cache_only"
            ],
            "required": [
              "specs"
            ],
            "set": {
              "cache_only": [
                true
              ]
            }
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "specs",
              "only",
              "jobs",
              "verbose",
              "overwrite"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "fail_fast",
              "keep_stage",
              "no_cache",
              "cache_only",
              "no_checksum",
              "show_log_on_error",
              "test",
              "fresh",
              "reuse"
            ]
          }
        ]
      }
    ]
  }
}
