compspec-spack


Namecompspec-spack JSON
Version 0.0.1 PyPI version JSON
download
home_pagehttps://github.com/compspec/compspec-spack
SummarySubsystem graph generation for a spack install
upload_time2024-06-05 07:54:58
maintainerVanessa Sochat
docs_urlNone
authorVanessa Sochat
requires_pythonNone
licenseLICENSE
keywords compatibility compspec spack subsystem scheduling hpc
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Compspec Spack

<p align="center">
  <img height="300" src="https://raw.githubusercontent.com/compspec/spec/main/img/compspec-circle.png">
</p>

[![PyPI version](https://badge.fury.io/py/compspec-spack.svg)](https://badge.fury.io/py/compspec-spack)

A compspec (Composition spec) is a specification and model for comparing things. Compspec spack is
a plugin for extraction of [spack](https://github.com/spack/spack) subsystem metadata about software installed
on a system (for a system or user spack install) that can be used for scheduling and other purposes.
It output Json Graph Format version 2. To learn more:

 - [Compspec](https://github.com/compspec/compspec): the Python library that discovers and loads this plugin.


## Usage

Install compspec and the plugin here:

```bash
pip install compspec
pip install compspec-spack
```

Then run an extraction with spack. You will want to provide the root to the spack install to describe:

```bash
compspec extract spack /path/to/spack
```

To save to file:

```bash
compspec extract --outfile spack-subsystem.json spack /path/to/spack
```


<details>

<summary>compspec-spack output</summary>

```console
{
    "graph": {
        "nodes": {
            "spack0": {
                "metadata": {
                    "type": "spack",
                    "basename": "spack",
                    "name": "spack0",
                    "id": 0,
                    "uniq_id": 0,
                    "containment": {
                        "paths": "/spack0"
                    },
                    "size": 1,
                    "unit": "",
                    "rank": 0,
                    "exclusive": false
                },
                "label": "spack0"
            },
            "package1": {
                "metadata": {
                    "type": "package",
                    "basename": "package",
                    "name": "package0",
                    "id": 1,
                    "uniq_id": 1,
                    "containment": {
                        "paths": "/spack0/package0"
                    },
                    "size": 1,
                    "unit": "",
                    "rank": 0,
                    "exclusive": false,
                    "attributes": {
                        "name": "perl",
                        "version": "5.38.0",
                        "platform": "linux",
                        "target": "skylake",
                        "os": "ubuntu22.04",
                        "vendor": "GenuineIntel",
                        "compiler_version": "11.4.0",
                        "compiler": "gcc"
                    }
                },
...
    "edges": [
        {
                "source": "package7721",
                "target": "library7786",
                "metadata": {
                    "name": {
                        "containment": "contains"
                    }
                }
            },
            {
                "source": "library7786",
                "target": "package7721",
                "metadata": {
                    "name": {
                        "containment": "in"
                    }
                }
            }
        ]
    },
    "metadata": {
        "install_name": "compat-experiment",
        "spack_root": "/home/vanessa/Desktop/Code/flux/spack/opt/spack"
    }

```
</details>

Note that this output can get very large, even when we compress attributes for packages (nodes) at the level of the node! I do think we need to have libraries / binaries as separate nodes, hence why it gets so big.


### Development

If you open the [Development container](.devcontainer) in VSCode, you'll find spack on the path:

```bash
$ which spack
```

This allows us to easily develop and test the compatibility plugin. You can also just clone spack locally.

#### TODO

- Add python extraction example
- Testing gloob gloob gloob

## License

HPCIC DevTools is distributed under the terms of the MIT license.
All new contributions must be made under this license.

See [LICENSE](https://github.com/converged-computing/cloud-select/blob/main/LICENSE),
[COPYRIGHT](https://github.com/converged-computing/cloud-select/blob/main/COPYRIGHT), and
[NOTICE](https://github.com/converged-computing/cloud-select/blob/main/NOTICE) for details.

SPDX-License-Identifier: (MIT)

LLNL-CODE- 842614

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/compspec/compspec-spack",
    "name": "compspec-spack",
    "maintainer": "Vanessa Sochat",
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "compatibility, compspec, spack, subsystem, scheduling, hpc",
    "author": "Vanessa Sochat",
    "author_email": "vsoch@users.noreply.github.com",
    "download_url": "https://files.pythonhosted.org/packages/37/e9/2466e47af0c47f4ae2090eb5928b51d1dd8fc8816af2060c6c85f396a414/compspec-spack-0.0.1.tar.gz",
    "platform": null,
    "description": "# Compspec Spack\n\n<p align=\"center\">\n  <img height=\"300\" src=\"https://raw.githubusercontent.com/compspec/spec/main/img/compspec-circle.png\">\n</p>\n\n[![PyPI version](https://badge.fury.io/py/compspec-spack.svg)](https://badge.fury.io/py/compspec-spack)\n\nA compspec (Composition spec) is a specification and model for comparing things. Compspec spack is\na plugin for extraction of [spack](https://github.com/spack/spack) subsystem metadata about software installed\non a system (for a system or user spack install) that can be used for scheduling and other purposes.\nIt output Json Graph Format version 2. To learn more:\n\n - [Compspec](https://github.com/compspec/compspec): the Python library that discovers and loads this plugin.\n\n\n## Usage\n\nInstall compspec and the plugin here:\n\n```bash\npip install compspec\npip install compspec-spack\n```\n\nThen run an extraction with spack. You will want to provide the root to the spack install to describe:\n\n```bash\ncompspec extract spack /path/to/spack\n```\n\nTo save to file:\n\n```bash\ncompspec extract --outfile spack-subsystem.json spack /path/to/spack\n```\n\n\n<details>\n\n<summary>compspec-spack output</summary>\n\n```console\n{\n    \"graph\": {\n        \"nodes\": {\n            \"spack0\": {\n                \"metadata\": {\n                    \"type\": \"spack\",\n                    \"basename\": \"spack\",\n                    \"name\": \"spack0\",\n                    \"id\": 0,\n                    \"uniq_id\": 0,\n                    \"containment\": {\n                        \"paths\": \"/spack0\"\n                    },\n                    \"size\": 1,\n                    \"unit\": \"\",\n                    \"rank\": 0,\n                    \"exclusive\": false\n                },\n                \"label\": \"spack0\"\n            },\n            \"package1\": {\n                \"metadata\": {\n                    \"type\": \"package\",\n                    \"basename\": \"package\",\n                    \"name\": \"package0\",\n                    \"id\": 1,\n                    \"uniq_id\": 1,\n                    \"containment\": {\n                        \"paths\": \"/spack0/package0\"\n                    },\n                    \"size\": 1,\n                    \"unit\": \"\",\n                    \"rank\": 0,\n                    \"exclusive\": false,\n                    \"attributes\": {\n                        \"name\": \"perl\",\n                        \"version\": \"5.38.0\",\n                        \"platform\": \"linux\",\n                        \"target\": \"skylake\",\n                        \"os\": \"ubuntu22.04\",\n                        \"vendor\": \"GenuineIntel\",\n                        \"compiler_version\": \"11.4.0\",\n                        \"compiler\": \"gcc\"\n                    }\n                },\n...\n    \"edges\": [\n        {\n                \"source\": \"package7721\",\n                \"target\": \"library7786\",\n                \"metadata\": {\n                    \"name\": {\n                        \"containment\": \"contains\"\n                    }\n                }\n            },\n            {\n                \"source\": \"library7786\",\n                \"target\": \"package7721\",\n                \"metadata\": {\n                    \"name\": {\n                        \"containment\": \"in\"\n                    }\n                }\n            }\n        ]\n    },\n    \"metadata\": {\n        \"install_name\": \"compat-experiment\",\n        \"spack_root\": \"/home/vanessa/Desktop/Code/flux/spack/opt/spack\"\n    }\n\n```\n</details>\n\nNote that this output can get very large, even when we compress attributes for packages (nodes) at the level of the node! I do think we need to have libraries / binaries as separate nodes, hence why it gets so big.\n\n\n### Development\n\nIf you open the [Development container](.devcontainer) in VSCode, you'll find spack on the path:\n\n```bash\n$ which spack\n```\n\nThis allows us to easily develop and test the compatibility plugin. You can also just clone spack locally.\n\n#### TODO\n\n- Add python extraction example\n- Testing gloob gloob gloob\n\n## License\n\nHPCIC DevTools is distributed under the terms of the MIT license.\nAll new contributions must be made under this license.\n\nSee [LICENSE](https://github.com/converged-computing/cloud-select/blob/main/LICENSE),\n[COPYRIGHT](https://github.com/converged-computing/cloud-select/blob/main/COPYRIGHT), and\n[NOTICE](https://github.com/converged-computing/cloud-select/blob/main/NOTICE) for details.\n\nSPDX-License-Identifier: (MIT)\n\nLLNL-CODE- 842614\n",
    "bugtrack_url": null,
    "license": "LICENSE",
    "summary": "Subsystem graph generation for a spack install",
    "version": "0.0.1",
    "project_urls": {
        "Homepage": "https://github.com/compspec/compspec-spack"
    },
    "split_keywords": [
        "compatibility",
        " compspec",
        " spack",
        " subsystem",
        " scheduling",
        " hpc"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2a32f5bdf08241c76ec729b137e25b353437b0401320834e842b4eb1d9ba0846",
                "md5": "7c17abe9f7333b6750ec5a8b71fab35a",
                "sha256": "b329fa37b6de413114ba8eb97990bb1f65e8ac1e94edef9cc6435db24228f756"
            },
            "downloads": -1,
            "filename": "compspec_spack-0.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7c17abe9f7333b6750ec5a8b71fab35a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 10815,
            "upload_time": "2024-06-05T07:54:56",
            "upload_time_iso_8601": "2024-06-05T07:54:56.899128Z",
            "url": "https://files.pythonhosted.org/packages/2a/32/f5bdf08241c76ec729b137e25b353437b0401320834e842b4eb1d9ba0846/compspec_spack-0.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "37e92466e47af0c47f4ae2090eb5928b51d1dd8fc8816af2060c6c85f396a414",
                "md5": "ece1605ebe1876a4a0c6c09ccc7a0347",
                "sha256": "a3bbee41c6408550cb56b796ef3e39db037ecb761ce6b20633993f880938f4fa"
            },
            "downloads": -1,
            "filename": "compspec-spack-0.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "ece1605ebe1876a4a0c6c09ccc7a0347",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 8070,
            "upload_time": "2024-06-05T07:54:58",
            "upload_time_iso_8601": "2024-06-05T07:54:58.524566Z",
            "url": "https://files.pythonhosted.org/packages/37/e9/2466e47af0c47f4ae2090eb5928b51d1dd8fc8816af2060c6c85f396a414/compspec-spack-0.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-05 07:54:58",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "compspec",
    "github_project": "compspec-spack",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "compspec-spack"
}
        
Elapsed time: 0.25802s