summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorHarmen Stoppels <me@harmenstoppels.nl>2024-07-01 11:24:16 +0200
committerGitHub <noreply@github.com>2024-07-01 11:24:16 +0200
commit6b0fefff2956dbd88f541e1f079ce71e2141b194 (patch)
tree8b018477ce01448aea2a5e81d8e28880262d4a87 /lib
parentf613316282f777f1731298f21345791e2ddf85ad (diff)
downloadspack-6b0fefff2956dbd88f541e1f079ce71e2141b194.tar.gz
spack-6b0fefff2956dbd88f541e1f079ce71e2141b194.tar.bz2
spack-6b0fefff2956dbd88f541e1f079ce71e2141b194.tar.xz
spack-6b0fefff2956dbd88f541e1f079ce71e2141b194.zip
Use composite stage also for develop specs (#44950)
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/package_base.py9
-rw-r--r--lib/spack/spack/stage.py9
-rw-r--r--lib/spack/spack/test/patch.py7
3 files changed, 9 insertions, 16 deletions
diff --git a/lib/spack/spack/package_base.py b/lib/spack/spack/package_base.py
index fff859efd0..30aeb0bd7c 100644
--- a/lib/spack/spack/package_base.py
+++ b/lib/spack/spack/package_base.py
@@ -1141,10 +1141,9 @@ class PackageBase(WindowsRPath, PackageViewMixin, RedistributionMixin, metaclass
if not link_format:
link_format = "build-{arch}-{hash:7}"
stage_link = self.spec.format_path(link_format)
- return DevelopStage(compute_stage_name(self.spec), dev_path, stage_link)
-
- # To fetch the current version
- source_stage = self._make_root_stage(self.fetcher)
+ source_stage = DevelopStage(compute_stage_name(self.spec), dev_path, stage_link)
+ else:
+ source_stage = self._make_root_stage(self.fetcher)
# all_stages is source + resources + patches
all_stages = StageComposite()
@@ -1473,10 +1472,8 @@ class PackageBase(WindowsRPath, PackageViewMixin, RedistributionMixin, metaclass
return
checksum = spack.config.get("config:checksum")
- fetch = self.stage.needs_fetching
if (
checksum
- and fetch
and (self.version not in self.versions)
and (not isinstance(self.version, GitVersion))
):
diff --git a/lib/spack/spack/stage.py b/lib/spack/spack/stage.py
index 9e2328700f..a635d95aeb 100644
--- a/lib/spack/spack/stage.py
+++ b/lib/spack/spack/stage.py
@@ -346,8 +346,6 @@ class Stage(LockableStagingDir):
similar, and are intended to persist for only one run of spack.
"""
- #: Most staging is managed by Spack. DevelopStage is one exception.
- needs_fetching = True
requires_patch_success = True
def __init__(
@@ -772,8 +770,6 @@ class StageComposite(pattern.Composite):
"cache_mirror",
"steal_source",
"disable_mirrors",
- "needs_fetching",
- "requires_patch_success",
]
)
@@ -813,6 +809,10 @@ class StageComposite(pattern.Composite):
return self[0].archive_file
@property
+ def requires_patch_success(self):
+ return self[0].requires_patch_success
+
+ @property
def keep(self):
return self[0].keep
@@ -823,7 +823,6 @@ class StageComposite(pattern.Composite):
class DevelopStage(LockableStagingDir):
- needs_fetching = False
requires_patch_success = False
def __init__(self, name, dev_path, reference_link):
diff --git a/lib/spack/spack/test/patch.py b/lib/spack/spack/test/patch.py
index 3710c58303..80c1ca3536 100644
--- a/lib/spack/spack/test/patch.py
+++ b/lib/spack/spack/test/patch.py
@@ -270,12 +270,9 @@ def trigger_bad_patch(pkg):
def test_patch_failure_develop_spec_exits_gracefully(
mock_packages, config, install_mockery, mock_fetch, tmpdir, mock_stage
):
- """
- ensure that a failing patch does not trigger exceptions
- for develop specs
- """
+ """ensure that a failing patch does not trigger exceptions for develop specs"""
- spec = Spec("patch-a-dependency " "^libelf dev_path=%s" % str(tmpdir))
+ spec = Spec(f"patch-a-dependency ^libelf dev_path={tmpdir}")
spec.concretize()
libelf = spec["libelf"]
assert "patches" in list(libelf.variants.keys())