diff options
author | Greg Becker <becker33@llnl.gov> | 2020-10-15 17:23:16 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-15 17:23:16 -0700 |
commit | 7a6268593ce957a54bbe8fbcb7b3e1ea1b71ee2c (patch) | |
tree | 2c0a02fbce875022ad4af6eca844646be0a99dea /var | |
parent | 2ed39dfd8eeaf34757cabe1bb761ffc9057ca35f (diff) | |
download | spack-7a6268593ce957a54bbe8fbcb7b3e1ea1b71ee2c.tar.gz spack-7a6268593ce957a54bbe8fbcb7b3e1ea1b71ee2c.tar.bz2 spack-7a6268593ce957a54bbe8fbcb7b3e1ea1b71ee2c.tar.xz spack-7a6268593ce957a54bbe8fbcb7b3e1ea1b71ee2c.zip |
Environments: specify packages for developer builds (#15256)
* allow environments to specify dev-build packages
* spack develop and spack undevelop commands
* never pull dev-build packges from bincache
* reinstall dev_specs when code has changed; reinstall dependents too
* preserve dev info paths and versions in concretization as special variant
* move install overwrite transaction into installer
* move dev-build argument handling to package.do_install
now that specs are dev-aware, package.do_install can add
necessary args (keep_stage=True, use_cache=False) to dev
builds. This simplifies driving logic in cmd and env._install
* allow 'any' as wildcard for variants
* spec: allow anonymous dependencies
raise an error when constraining by or normalizing an anonymous dep
refactor concretize_develop to remove dev_build variant
refactor tests to check for ^dev_path=any instead of +dev_build
* fix variant class hierarchy
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/repos/builtin.mock/packages/dependent-of-dev-build/package.py | 17 | ||||
-rw-r--r-- | var/spack/repos/builtin.mock/packages/dev-build-test-dependent/package.py | 29 |
2 files changed, 46 insertions, 0 deletions
diff --git a/var/spack/repos/builtin.mock/packages/dependent-of-dev-build/package.py b/var/spack/repos/builtin.mock/packages/dependent-of-dev-build/package.py new file mode 100644 index 0000000000..9079fa766a --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/dependent-of-dev-build/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +class DependentOfDevBuild(Package): + homepage = "example.com" + url = "fake.com" + + version('0.0.0', sha256='0123456789abcdefgh') + + depends_on('dev-build-test-install') + + def install(self, spec, prefix): + with open(prefix.filename, 'w') as f: + f.write("This file is installed") diff --git a/var/spack/repos/builtin.mock/packages/dev-build-test-dependent/package.py b/var/spack/repos/builtin.mock/packages/dev-build-test-dependent/package.py new file mode 100644 index 0000000000..e6a5b8351f --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/dev-build-test-dependent/package.py @@ -0,0 +1,29 @@ +# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +class DevBuildTestDependent(Package): + homepage = "example.com" + url = "fake.com" + + version('0.0.0', sha256='0123456789abcdefgh') + + phases = ['edit', 'install'] + + filename = 'dev-build-test-file.txt' + original_string = "This file should be edited" + replacement_string = "This file has been edited" + + depends_on('dev-build-test-install') + + def edit(self, spec, prefix): + with open(self.filename, 'r+') as f: + assert f.read() == self.original_string + f.seek(0) + f.truncate() + f.write(self.replacement_string) + + def install(self, spec, prefix): + install(self.filename, prefix) |