diff options
author | Tom Scogland <scogland1@llnl.gov> | 2022-11-07 15:00:22 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-07 15:00:22 -0800 |
commit | 6241cdb27be0ed81a517f1601feac1b7e327170c (patch) | |
tree | 68caab8eb5992a218f0e276619ae3b70c153e086 /bin | |
parent | 28d669cb39b155e73fea532ea4d8100a921041b0 (diff) | |
download | spack-6241cdb27be0ed81a517f1601feac1b7e327170c.tar.gz spack-6241cdb27be0ed81a517f1601feac1b7e327170c.tar.bz2 spack-6241cdb27be0ed81a517f1601feac1b7e327170c.tar.xz spack-6241cdb27be0ed81a517f1601feac1b7e327170c.zip |
encode development requirements in pyproject.toml (#32616)
Add a `project` block to the toml config along with development and CI
dependencies and a minimal `build-system` block, doing basically
nothing, so that spack can be bootstrapped to a full development
environment with:
```shell
$ hatch -e dev shell
```
or for a minimal environment without hatch:
```shell
$ python3 -m venv venv
$ source venv/bin/activate
$ python3 -m pip install --upgrade pip
$ python3 -m pip install -e '.[dev]'
```
This means we can re-use the requirements list throughout the workflow
yaml files and otherwise maintain this list in *one place* rather than
several disparate ones. We may be stuck with a couple more temporarily
to continue supporting python2.7, but aside from that it's less places
to get out of sync and a couple new bootstrap options.
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/spack | 48 |
1 files changed, 2 insertions, 46 deletions
@@ -49,52 +49,8 @@ spack_prefix = os.path.dirname(os.path.dirname(spack_file)) spack_lib_path = os.path.join(spack_prefix, "lib", "spack") sys.path.insert(0, spack_lib_path) -# Add external libs -spack_external_libs = os.path.join(spack_lib_path, "external") - -if sys.version_info[:2] <= (2, 7): - sys.path.insert(0, os.path.join(spack_external_libs, "py2")) - -sys.path.insert(0, spack_external_libs) - -# Here we delete ruamel.yaml in case it has been already imported from site -# (see #9206 for a broader description of the issue). -# -# Briefly: ruamel.yaml produces a .pth file when installed with pip that -# makes the site installed package the preferred one, even though sys.path -# is modified to point to another version of ruamel.yaml. -if "ruamel.yaml" in sys.modules: - del sys.modules["ruamel.yaml"] - -if "ruamel" in sys.modules: - del sys.modules["ruamel"] - -# The following code is here to avoid failures when updating -# the develop version, due to spurious argparse.pyc files remaining -# in the libs/spack/external directory, see: -# https://github.com/spack/spack/pull/25376 -# TODO: Remove in v0.18.0 or later -try: - import argparse -except ImportError: - argparse_pyc = os.path.join(spack_external_libs, "argparse.pyc") - if not os.path.exists(argparse_pyc): - raise - try: - os.remove(argparse_pyc) - import argparse # noqa: F401 - except Exception: - msg = ( - "The file\n\n\t{0}\n\nis corrupted and cannot be deleted by Spack. " - "Either delete it manually or ask some administrator to " - "delete it for you." - ) - print(msg.format(argparse_pyc)) - sys.exit(1) - - -import spack.main # noqa: E402 +from spack_installable.main import main # noqa: E402 # Once we've set up the system path, run the spack main method if __name__ == "__main__": - sys.exit(spack.main.main()) + sys.exit(main()) |