Skip to content

Commit

Permalink
Revert "fix patched dependencies across repositories (spack#42463)" (s…
Browse files Browse the repository at this point in the history
…pack#47519)

This reverts commit da1d533.
  • Loading branch information
tgamblin authored Nov 9, 2024
1 parent 11d276a commit 7fbfb0f
Show file tree
Hide file tree
Showing 11 changed files with 12 additions and 80 deletions.
2 changes: 1 addition & 1 deletion lib/spack/spack/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -547,7 +547,7 @@ def setup_main_options(args):
key = syaml.syaml_str("repos")
key.override = True
spack.config.CONFIG.scopes["command_line"].sections["repos"] = syaml.syaml_dict(
[(key, [spack.paths.mock_packages_path, spack.paths.mock_packages_path2])]
[(key, [spack.paths.mock_packages_path])]
)
spack.repo.PATH = spack.repo.create(spack.config.CONFIG)

Expand Down
9 changes: 6 additions & 3 deletions lib/spack/spack/patch.py
Original file line number Diff line number Diff line change
Expand Up @@ -530,7 +530,7 @@ def update_package(self, pkg_fullname: str) -> None:

# update the index with per-package patch indexes
pkg_cls = self.repository.get_pkg_class(pkg_fullname)
partial_index = self._index_patches(pkg_cls)
partial_index = self._index_patches(pkg_cls, self.repository)
for sha256, package_to_patch in partial_index.items():
p2p = self.index.setdefault(sha256, {})
p2p.update(package_to_patch)
Expand All @@ -546,11 +546,14 @@ def update(self, other: "PatchCache") -> None:
p2p.update(package_to_patch)

@staticmethod
def _index_patches(pkg_class: Type["spack.package_base.PackageBase"]) -> Dict[Any, Any]:
def _index_patches(
pkg_class: Type["spack.package_base.PackageBase"], repository: "spack.repo.RepoPath"
) -> Dict[Any, Any]:
"""Patch index for a specific patch.
Args:
pkg_class: package object to get patches for
repository: repository containing the package
Returns:
The patch index for that package.
Expand All @@ -568,7 +571,7 @@ def _index_patches(pkg_class: Type["spack.package_base.PackageBase"]) -> Dict[An
for dependency in deps_by_name.values():
for patch_list in dependency.patches.values():
for patch in patch_list:
dspec_cls = spack.repo.PATH.get_pkg_class(dependency.spec.fullname)
dspec_cls = repository.get_pkg_class(dependency.spec.name)
patch_dict = patch.to_dict()
patch_dict.pop("sha256") # save some space
index[patch.sha256] = {dspec_cls.fullname: patch_dict}
Expand Down
1 change: 0 additions & 1 deletion lib/spack/spack/paths.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@
repos_path = os.path.join(var_path, "repos")
packages_path = os.path.join(repos_path, "builtin")
mock_packages_path = os.path.join(repos_path, "builtin.mock")
mock_packages_path2 = os.path.join(repos_path, "builtin.mock2")

#
# Writable things in $spack/var/spack
Expand Down
16 changes: 5 additions & 11 deletions lib/spack/spack/test/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -575,11 +575,6 @@ def mock_repo_path():
yield spack.repo.from_path(spack.paths.mock_packages_path)


@pytest.fixture(scope="session")
def mock_repo_path2():
yield spack.repo.from_path(spack.paths.mock_packages_path2)


def _pkg_install_fn(pkg, spec, prefix):
# sanity_check_prefix requires something in the install directory
mkdirp(prefix.bin)
Expand All @@ -593,20 +588,19 @@ def mock_pkg_install(monkeypatch):


@pytest.fixture(scope="function")
def mock_packages(mock_repo_path, mock_repo_path2, mock_pkg_install, request):
"""Use the 'builtin.mock' and 'builtin.mock2' repositories instead of 'builtin'"""
def mock_packages(mock_repo_path, mock_pkg_install, request):
"""Use the 'builtin.mock' repository instead of 'builtin'"""
ensure_configuration_fixture_run_before(request)
with spack.repo.use_repositories(mock_repo_path, mock_repo_path2) as mock_repo:
with spack.repo.use_repositories(mock_repo_path) as mock_repo:
yield mock_repo


@pytest.fixture(scope="function")
def mutable_mock_repo(request):
def mutable_mock_repo(mock_repo_path, request):
"""Function-scoped mock packages, for tests that need to modify them."""
ensure_configuration_fixture_run_before(request)
mock_repo = spack.repo.from_path(spack.paths.mock_packages_path)
mock_repo2 = spack.repo.from_path(spack.paths.mock_packages_path2)
with spack.repo.use_repositories(mock_repo, mock_repo2) as mock_repo_path:
with spack.repo.use_repositories(mock_repo) as mock_repo_path:
yield mock_repo_path


Expand Down
6 changes: 0 additions & 6 deletions lib/spack/spack/test/patch.py
Original file line number Diff line number Diff line change
Expand Up @@ -499,9 +499,3 @@ def test_invalid_from_dict(mock_packages, config):
}
with pytest.raises(spack.fetch_strategy.ChecksumError, match="sha256 checksum failed for"):
spack.patch.from_dict(dictionary)


@pytest.mark.regression("43097")
def test_cross_repo_patch(mock_packages, config):
cross_repo_patch = Spec("patch-a-foreign-dependency")
cross_repo_patch.concretize()
7 changes: 0 additions & 7 deletions var/spack/repos/builtin.mock/README.md

This file was deleted.

This file was deleted.

This file was deleted.

6 changes: 0 additions & 6 deletions var/spack/repos/builtin.mock2/README.md

This file was deleted.

This file was deleted.

2 changes: 0 additions & 2 deletions var/spack/repos/builtin.mock2/repo.yaml

This file was deleted.

0 comments on commit 7fbfb0f

Please sign in to comment.