Skip to content

Commit 16fafd4

Browse files
committed
Pass hook manager by Compatibility
Signed-off-by: Uilian Ries <uilianries@gmail.com>
1 parent 58cae01 commit 16fafd4

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

conans/client/graph/compatibility.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from conan.internal.cache.home_paths import HomePaths
66
from conans.client.graph.compute_pid import run_validate_package_id
77
from conans.client.loader import load_python_file
8+
from conans.client.hook_manager import HookManager
89
from conan.internal.errors import conanfile_exception_formatter, scoped_traceback
910
from conan.errors import ConanException
1011
from conans.client.migrations import CONAN_GENERATED_COMMENT
@@ -106,13 +107,15 @@ def _should_migrate_file(file_path):
106107

107108
class BinaryCompatibility:
108109

109-
def __init__(self, compatibility_plugin_folder):
110+
def __init__(self, cache_folder):
111+
compatibility_plugin_folder = HomePaths(cache_folder).compatibility_plugin_path
110112
compatibility_file = os.path.join(compatibility_plugin_folder, "compatibility.py")
111113
if not os.path.exists(compatibility_file):
112114
raise ConanException("The 'compatibility.py' plugin file doesn't exist. If you want "
113115
"to disable it, edit its contents instead of removing it")
114116
mod, _ = load_python_file(compatibility_file)
115117
self._compatibility = mod.compatibility
118+
self._hook_manager = HookManager(HomePaths(cache_folder).hooks_path)
116119

117120
def compatibles(self, conanfile):
118121
compat_infos = []
@@ -143,7 +146,7 @@ def compatibles(self, conanfile):
143146
conanfile.settings = c.settings
144147
conanfile.settings_target = c.settings_target
145148
conanfile.options = c.options
146-
run_validate_package_id(conanfile)
149+
run_validate_package_id(conanfile, self._hook_manager)
147150
pid = c.package_id()
148151
if pid not in result and not c.invalid:
149152
result[pid] = c

conans/client/graph/graph_binaries.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ def __init__(self, conan_app, global_conf):
3232
self._remote_manager = conan_app.remote_manager
3333
# These are the nodes with pref (not including PREV) that have been evaluated
3434
self._evaluated = {} # {pref: [nodes]}
35-
compat_folder = HomePaths(conan_app.cache_folder).compatibility_plugin_path
36-
self._compatibility = BinaryCompatibility(compat_folder)
35+
self._compatibility = BinaryCompatibility(conan_app.cache_folder)
3736
unknown_mode = global_conf.get("core.package_id:default_unknown_mode", default="semver_mode")
3837
non_embed = global_conf.get("core.package_id:default_non_embed_mode", default="minor_mode")
3938
# recipe_revision_mode already takes into account the package_id

0 commit comments

Comments
 (0)